Напоминаю: Об основах и тонкостях электроники и схемотехники читайте в настольной книге электронщика: П.Хоровиц, У.Хилл. Искусство схемотехники на РУССКОМ языке.
Я советую прошивать микроконтроллер прямо из программатора встроенного в компилятор CodeVisionAVR через простейший адаптер - буквально "пять проводков" соединяющих принтерный порт ПК с прошиваемым микроконтроллером AVR.
ПОДРОБНО: Результат написания и компиляции программы - файл-прошивку с расширением .hex (и возможно файл с содержимым для
EEPROM МК) нужно записать ("зашить") в МК . МК AVR многократно программируются прямо в устройстве в котором будут работать - такое программирование называют - "ин систем программинн" или ISP.
Для этого установите на плате вашего устройства 6 контактов, а лучше 6-ти штырьковый разъем для ISP
EEPROM МК) нужно записать ("зашить") в МК . МК AVR многократно программируются прямо в устройстве в котором будут работать - такое программирование называют - "ин систем программинн" или ISP.
Для этого установите на плате вашего устройства 6 контактов, а лучше 6-ти штырьковый разъем для ISP
вид сверху платы на штырьки.
выводы подсоединить к МК в соответствии с указанными названиями. |
Подробней по ISP разъемам посмотрите Апликейшн Ноут AVR910.
Вывод 2 нужно подключить к + питания МК если вы собираетесь использовать программатор питающийся от вашего же устройства - например фирменный ISP AVR.
Для "5 проводов" этот вывод не подключается. Для программирования достаточно 5 контактов. Соответственно и разъем который вы будете использовать может быть любым удобным для размещения на плате и имеющий минимум 5 контактов. Все контакты ISP разъема подсоединяются к ножкам МК в соответствии с названиями.
ВНИМАНИЕ ! в ATmega64 и ATmega128 выводы MOSI и MISO не применяют для ISP Внимательно смотрите ДатаШит ! Например для ATmega128 сигналы MISOподключают к ножке PE1, MOSI подключают к ножке PE0
| ||
Я советую вам пользоваться интерфейсом программирования встроенным в компилятор CodeVisionAVR и конечно же в нем разрабатывать программу для МК. Дело в том, что вам вряд ли удастся сразу написать программу без ошибок, даже после прогона в софт эмуляторе - симуляторе ваше устройство может делать не то, что вы от него ожидаете - значит в программу нужно будет вносить изменения и снова зашивать в МК , и так раз 20 и более.
Вы можете в компиляторе CodeVisionAVR открыть меню "Проджект -> Конфига -> Афта Мэйк" и отметить чек бокс "Program the chip" затем ОК. Еще нужно в меню "Сеттинс -> Программер" выбрать ваш адаптер (подробней ниже) для программирования. Теперь после безошибочной компиляции программы вам будет доступна кнопка "Program" - нажмите на нее и произойдет программирование МК - т.е. файл .hex будет загружен в память программ МК. Затем МК будет "сброшен" (на ножку RESET будет подан лог. 0 а затем опять "1") и начнет выполнять только что прошитую (загруженную в него) программу. Вам даже не нужно будет отсоединять адаптер программирования от вашего устройства если вы не используете в устройстве последовательный интерфейс SPI. ... и так до окончательной отладки устройства.
В А Ж Н О ! В диалоге настройки программирования не трогайте галочки установки фьюзов МК если не разобрались четко что они делают! Иначе вы можете отключить режим ISP или внутренний RC-генератор и для следующего программирования вам понадобится ставить кварц с конденсаторами или даже искать Параллельный программатор для AVR. Но популярному ATtiny2313 даже параллельный программатор не поможет!
| ||
в ATmegaXXX с завода включен внутренний RC генератор на частоте 1 МГц ( уточните это по ДШ и его возможные частоты ) Если вам нужна другая частота или нужно включить внешний кварцевый или керамический резонатор - вам нужно запрограммировать некоторые фьюзы по таблицам из ДШ или по таблице фьюзов на стр. 2
З а п о м н и т е :
- НЕ запрограммированный фьюз 1
- ЗАпрограммированный фьюз 0
Пример: Чтобы включить в ATmega16 внешний кварцевый резонатор с частотой от 3 до 8 МГц с конденсаторами (по схеме рис. 12 ДШ) найдите в ДШ раздел "System Clock".
В таблице 2 указаны комбинации фьюзов для разных источников тактового сигнала. Далее написано что с завода МК поставляется с такой комбинацией фьюзов
SKSEL 0001 SUT 10 CKOPT 1
По таблице 4 находим :
Для кварца с частотой от 3 до 8 МГц нужны конденсаторы от 12 до 22 пФ и вот такая комбинация фьюзов :
SKSEL 1111 SUT 10 CKOPT 1
Установка фьюзов в программаторе компилятора CVAVR
Для прошивания МК нажмите кнопку "Program All"
Для использования ATmega16 (и других мег) с внешним кварцевым или керамическим резонатором на частотах выше 8 МГц вам нужно установить фьюзы как в примере выше но запрограммировать CKOPT - значит сделать его "0". Т.е. вам нужна такая комбинация:
SKSEL 1111 SUT 10 CKOPT 0
CKOPT 0 - нужен и тогда когда вы хотите подключить к XTAL2 другой микроконтроллер или тактируемый прибор.
Фьюзы SUT - определяют запуск генератора тактового сигнала, в большинстве случаев их установку можно оставить "как с завода" - SUT 10 - более детально это описано в даташите в таблицах до 12.
Для соединения компьютера с ISP разъемом устройства на AVR Советую сделать адаптер от STK200 - это "правильные 5 проводков" с микросхемой буфером снижающим вероятность случайного повреждения порта ПК. В установках компилятора CodeVisionAVR интерфейс "5-проводков" называется "Канда системз STK200+/300"
Для соединения компьютера с ISP разъемом устройства на AVR Советую сделать адаптер от STK200 - это "правильные 5 проводков" с микросхемой буфером снижающим вероятность случайного повреждения порта ПК. В установках компилятора CodeVisionAVR интерфейс "5-проводков" называется "Канда системз STK200+/300"
Программа узнаёт адаптер STK200 по перемычкам на разъеме параллельного порта к которому он подключается - должны быть соединены двумя перемычками пары выводы: 2 и 12, 3 и 11.
Внимание! Для программирования к МК должно быть подключено питание. Например +4...+5 вольт ко всем выводам МК в названии которых есть VCC и 0 вольт ко всем выводам GND (это "общий" провод). Пример тут
| ||
Попробуйте поискать полезную инормацию в Гугле - ее там море ! Учитесь искать!
Если в МК нет внутреннего генератора тактового сигнала (например старые AVR серии AT90sXXXX или мега побывавшая в чьих то шаловливых руках изменивших фьюзы до того как попасть к вам) то нужно подключить кварц на 1 - 8 МГц и два конденсатора от 15 до 33 пФ. Либо подать тактовый сигнал 1-1.5 МГц от внешнего источника - например генератора на микросхеме 74hc14 или на таймере LM555.
Программатор AVReAl может программировать МК без кварца и без конденсаторов. Он выводит тактовый сигнал на выв. 5 LPT его нужно подать на ножку XTAL1 МК и добавить в командной строке AVReAL специальный ключ "-o0". Программатор AVReAl позволяет назначать какие ножки LPT порта использовать - это будет полезно когда часть ножек LPT вы уже спалите :-)
Программатор AVReAl может программировать МК без кварца и без конденсаторов. Он выводит тактовый сигнал на выв. 5 LPT его нужно подать на ножку XTAL1 МК и добавить в командной строке AVReAL специальный ключ "-o0". Программатор AVReAl позволяет назначать какие ножки LPT порта использовать - это будет полезно когда часть ножек LPT вы уже спалите :-)
(Тактовый сигнал генерирует и программатор на USB по ссылке внизу этой страницы.)
Еще очень советую поставить подтягивающий резистор 10 кОм от ножки Reset МК на питание VCC и конденсатор 0.01-0.33 мкФ (в апноутах AVR040 и AVR042 рекомендуют 0.01 мкФ) отReset на GND - как в схеме к задаче 7 курса.
Я использую самый простой вариант адаптера STK200 - "для самых ленивых" - пять поводков соединяющих линии параллельного (LPT) порта ПК и AVR так же как на схеме STK200 выше, но без микросхемы буфера. Лучше все же токоограничительные резисторы от 150 до 270 ом впаять Проводки не более 15 см длиной !
| ||
Адаптер "5-проводков" прекрасно работает с компилятором CodeVision
Советую для изготовления адаптера взять " принтерный" шнур - он длинный и экранированный, а не экранированные проводки не стоит делать более 10-15 см.
| ||
Для питания устройства при программировании и отладке можно кроме сетевого адаптера использовать:
- - батарейку на 6 вольт с 2 диодами последовательно для понижения напряжения...
- - можно три батарейки по 1,5 вольт последовательно соединить
- ... а можно +5 вольт взять с вывода 1 гейм порта компьютера или осторожно из гнезда USB.
Желательно питать устройство от ПК! В этом случае "земля" вашего устройства будет соединена с корпусом ПК и можно будет безопасно подключать и отключать разъем программирующего адаптера.
ВНИМАНИЕ! Всегда старайтесь первыми соединить "земли" устройств, а затем питание и потом уже сигнальные линии.
| ||
Не поленитесь: спаяйте адаптер STK200 на микросхеме буфере по рисункам внизу страницы - так как LPT порт компьютера более нежен чем COM - соответственно его спалить проще...
Если вы хотите использовать ножки МК SCK, MOSI, MISO в вашем устройстве то подключайте другие компоненты к ним через резисторы 4.7 КОм - чтобы не мешать программированию. Так рекомендовано в апноуте AVR042 Для Мега64, -128, -256 вместо MOSI и MISO используются другие ножки для ISP программирования !
| ||
Если у вас нет LPT порта сделайте Аналог "5 проводков" для COM-порта
Или соберите простой, дешевый USB программатор для AVR
Или соберите похожий программатор USB программатор AVR и AT89s
Вот топик об успешной сборке этого интерфейса для программирования на ATmega8. Это новый вариант платы для него. Архив с разводкой платы Внимание ! Этот программатор выдает тактовый сигнал 1 МГц и меньше для прошивки МК без кварца и с выключенным внутренним генератором. тактовый сигнал выводится на контакт "LED". Его нужно подвести к ножкеXTAL1.
Существуют специальные программы "бутлодеры" которые записываются в микроконтроллер способами перечисленными выше и после этого микроконтроллер может сам, при включении, закачивать в себя программу (например из ПК через адаптер UART rs232 COM port - схема в задаче 4 курса) и запускать ее выполнение. Есть много бесплатных загрузчиков
| ||
Программатор AVR микроконтроллеров. LPT программатор.
Кликни чтобы увеличить
Принципиальная схема программатора на LPT порт показана на рисунке. В качестве шинного формирователя используется микросхема 74HC244 (К1564АП5), 74LS244 (К555АП5) либо 74ALS244 (К1533АП5), хотя может использоваться любой другой неинвертирующий шинный формирователь с тремя состояниями (в этом случае может потребоваться соответствующее изменение схемы).Светодиод VD1 индицирует режим записи микроконтроллера,
светодиод VD2 - чтения,
светодиод VD3 - наличие питания схемы.
Напряжение, необходимое для питания схема берёт с разъёма ISP, т.е. от программируемого устройства. Эта схема является переработанной схемой программатора STK200/300 (добавлены светодиоды для удобства работы), поэтому она совместима со всеми программами программаторов на PC, работающих со схемой STK200/300. Для работы с этим программатором используйте программу CVAVR
Программатор можно выполнить на печатной плате и поместить её в корпус разъёма LPT, как показано на рисунках:
Для работы с программатором удобно использовать удлинитель LPT порта, который несложно изготовить самому (к примеру, из кабеля Centronix для принтера), главное "не жалеть" проводников для земли (18-25 ноги разъёма) или купить. Кабель между программатором и программируемой микросхемой не должен превышать 20-30 см.
светодиод VD2 - чтения,
светодиод VD3 - наличие питания схемы.
Напряжение, необходимое для питания схема берёт с разъёма ISP, т.е. от программируемого устройства. Эта схема является переработанной схемой программатора STK200/300 (добавлены светодиоды для удобства работы), поэтому она совместима со всеми программами программаторов на PC, работающих со схемой STK200/300. Для работы с этим программатором используйте программу CVAVR
Программатор можно выполнить на печатной плате и поместить её в корпус разъёма LPT, как показано на рисунках:
AVR miniICE -
Это профессиональное средство для программирования и отладки программы МК ATmega фирмы Atmel в реальном устройстве. Он полностью совместимый с оригинальным AVR JTAG ICE.
Автор данного устройства Milan Kostomlatsky kosta@mcu.cz
Оригинальное описание находится здесь
Пример реализации: на макетке
Комментариев нет:
Отправить комментарий
Создайте свой комментарий.