Главная  Микроконтроллеры 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [ 47 ] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

4.5. Программатор

Одним из самых необходимых устройств для работы с микроконтроллерами является программатор. Это специальный прибор, позволяющий оттранслированную программу занести непосредственно в, память микроконтроллера. Без него вся работа будет только теорией.

Существуют различные виды программаторов. Различаются они по сложности, цене, программному обеспечению для работы. Для микроконтроллеров семейства AVR можно вьщелить наиболее удачные программаторы - AS1 производства фирмы Аргуссофт, и AVReAl - самодельный, сконструированный Александром Редчу-ком. Последний отличается исключительной простотой в изготовлении и качеством работы, не уступающим промышленным программаторам.

В этой главе читатели могут познакомиться со схемой программатора, которая может работать с программой AVReAl, и научиться пользоваться этим программатором.

Программа avreal.exe с авторским описанием работы с ней находится на компакт-диске, прилагаемом к книге.

Программатор AVReAl может работать с различными схемами программаторов. Остановимся на схеме, совместимой с использованной в стартовой плате STK200 фирмы Atmel. Почему именно эта схема? Потому что она же может работать совместно с компилятором языка С CodeVision AVR.

Схема программатора показана на рис. 4.12.

Легко увидеть, что схема действительно предельно проста. Тем не менее она позволяет осуществлять все необходимые операции: проверять память микроконтроллера на наличие в ней программы, стирать ее содержимое, зашивать новую программу и т. д.

outp(PRG RDB(&leds[l]), PORTB):

for (i=0: i<255; i++) /• Цикл временной задержки •/

for(j=0; j<255;i++) /* Вложенный цикл временной задержки •/

1<++; /" Любая операция (чтобы "занять" процессор) •/

>

>

>



D1/20

D1.1

74НС244

ед522

TIiH

D1.2 ,74НС244

R1 7к

MOSI

MISO

D1/10<-

DB25M

Рис. 4.12. Схема программатора ATMEL STK200/STK300


Рис. 4.13. Внешний вид программатора

Внешний ВИД собранного программатора показан на рис. 4.13.

Программатор работает с портом LPT1, 2 или 3. Если у вас порт LPT занят (например, принтером), можно купить на радиорынке отдельную плату с LPT-портом от старого компьютера, настроить ее на адрес порта LPT2 или 3 и подключать программатор к ней.

Следует иметь в виду, что длина проводов, соединяющих программатор и схему с микроконтроллером, не должна превышать 15...20 см. При большей длине начинают очень сильно влиять навод-




Рис. 4.14. Разъем IDC10

номерам на этом разъеме.

Следует стараться использовать на всех своих схемах с микроконтроллерами AVR один тип разъема программирования и его цо-колевку - в этом случае можно будет пользоваться одним программатором для любых схем.

Описание программатора avreal

Автор программатора и настоящего описания: Александр Редчук. (E-mail: real@real.kiev.ua).

AVReAl - программатор At90sXXXX через LPT.

Новые версии, описание и FAQ лежат на

http: www.ln.com.ua/~real/avreal;

http: www.chat.ru/~avreal.

ки на провода и возникают ошибки при работе программатора. Для удобства работы следует приобрести удлинитель порта LPT и подключить программатор к нему.

В качестве разъема для программирования рекомендую разъем типа IDC10. На рис. 4.14 изображен внешний вид этого разъема и его цоколевка. Номера выводов на схеме программатора соответствуют



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [ 47 ] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

0.001