СРЕДА РАЗРАБОТКИ WinAVR
Последняя версия WinAVR имеет название WinAVR-20100110 . Вы можете скачать ее из файлового архива myROBOT.ru по следующей ссылке: Последняя версия WinAVR также доступна по адресу http://sourceforge.net/projects/winavr/. Там же можно прочитать информацию о WinAVR, новости и отзывы.
Инсталляционный пакет WinAVR представляет собой один исполняемый файл, который необходимо запустить, чтобы установить WinAVR. Вначале будет предложено ознакомиться с GNU GPL лицензией, потом следует выбрать место установки WinAVR. По умолчанию инсталляционный пакет предлагает установить WinAVR в одноименную папку на диске C «C:\WinAVR-20100110». Лучшим выбром будет оставить все без изменений и проинсталлировать WinAVR в предлагаемую директорию. Если же вы решили выбрать другое место, то следует руководствоваться правилом: имена папок или путь не должны содержать пробелов и кириллических символов.
После инсталляции WinAVR будет предложено ознакомиться с файлом WinAVR-user-manual.html, а в меню «Пуск» появятся следующие ярлыки: Очень удобно будет скопировать ярлык «Programmers Notepad [WinAVR]» на «Рабочий стол» для быстрого доступа. В Windows 10 и Windows 8.1 может понадобиться установить небольшой патч myROBOT WinAVR Patch, который устраняет проблему совместимости WinAVR с Windows 10, Windows 8.1. (подробнее о патче можно прочитать в статье «Совместимость WinAVR и Windows 10. Устраняем ошибки работы WinAVR в Windows 10»). Патч ничего не меняет и не затрагивает в операционной системе, а лишь исправляет неправильную работу одного из файлов в самой WinAVR.
После установки WinAVR полезно перезагрузить компьютер, чтобы пути к компилятору и библиотекам, прописанные инсталлятором в конфигурационном файле и реестре, вошли в силу. WinAVRМощная среда разработки с открытым исходным кодом, созданная с целью написания программ для микроконтроллеров серии AVR от компании Atmel. WinAVR состоит из GNU GCC компилятора, поддерживающего языки C, C+ и Objective-C, обеспечивая полный цикл разработки для AVR/AVR32 и дополнительных инструментов, каждый из которых выполняет определенную задачу, помогая написанию программного обеспечения для микроконтроллеров. Наиболее важные из них: Работать с WinAVR очень просто, в возникающих вопросах помогает разобраться полный набор документации. Программа создает компактный, довольно приличный код, по синтаксису напоминающий классический язык С. Среди недостатков – отсутствие настройки аппаратуры AVR с помощью исходного кода и интерфейса с другими устройствами. WinAVR может объединяться с фирменным программным обеспечением микроконтроллеров Atmel Studio. Вместе эти пакеты позволяют проводить разработку и интуитивную отладку программ, поддерживая все возможности чипов Atmel. Программное обеспечение выпущено под лицензией GNU и распространяется абсолютно бесплатно. Каждый пользователь может изменить или доработать программу по своему усмотрению. Кроме этого существует портативная версия пакета, не требующая установки, для хранения на внешнем носителе информации. Адресная строка места инсталляции WinAVR не должна содержать пробелы и кириллические символы. После установки программы появляется целая коллекция ярлыков, запускающая различные утилиты пакета. Основным из них является «Programmers Notepad». Инструкция и примеры лежат в папке WinAVR\doc\avr-libc. Язык интерфейса WinAVR английский и русификатора к нему нет. Программа поддерживает все 32-битные операционные системы Windows. Существует версия для работы в Linux-системах. Распространение программы: Freeware (бесплатная) Program avr with windows
Чем и как «прошить» МК AVR , ATmega, ATtiny. Как загрузить программу в микроконтроллер. Как запрограммировать микроконтроллер AVR . Я советую прошивать микроконтроллер AVR из удобного интерфейса программирования встроенного в компилятор CVAVR CodeVisionAVR Можно через простейший адаптер — буквально «пять проводков» ( схема ниже ) соединяющих принтерный порт ПК с прошиваемым микроконтроллером AVR. Но более удобны программаторы подключаемые в USB или COM порты ПК — особенно в USB . Книги по электронике и микроконтроллерам скачать в библиотеке Задачи-упражнения курса по AVR — там Результат написания и компиляции программы — файл-прошивку с расширением .hex (и возможно файл .e pp или .bin с содержимым для EEPROM МК) нужно записать («зашить» , » загрузить «, » прожечь «) в МК AVR . МК AVR можно (пере-) программировать не менее 10000 раз, при чем это можно делать прямо в устройстве в котором они будут работать — такое программирование называют «в системе» — «ин систем программин» или ISP. Компания ATMEL рекомендует установить на плате устройства специальный разъем для подключения программатора. Например 6 штырьков для ISP прошивания AVR Вид сверху платы на штырьки. или 10 штырьков в аналогичном порядке ( NC — значит не подключен ) Все контакты ISP разъема подсоединяются к ножкам МК в соответствии с названиями сигналов ! Исключения указаны ниже. Для ISP программирования достаточно 5 контактов. Соответственно и разъем который вы будете использовать может быть любым удобным для размещения на плате и имеющий минимум 5 контактов — например в один ряд. Я использую и считаю это очень удобным 6 штырьков расположенные в 1 ряд , в том порядке как расположены ножки программирования у ATmega16 ( рисунок есть на страничке 6 ) — при этом разводка линий программирования получается простейшей. Такой разъем легко применять и для 28 выводных AVR ATmega8 ATmega48 ATmega88 ATmega168 ATmega328 только сделать отдельный проводник для подключения к контакту RESET. 1) в ATmega64 и ATmega128 выводы MOSI и MISO не применяют для ISP программирования. Используются другие выводы МК ! Внимательно смотрите ДатаШит вашего МК ! в ATmega 128 ATmega64 сигналы ISP программатора MISO подключают к ножке PE1 MOSI подключают к ножке PE0 2) Вывод PEN нужно подключить к питанию VCC резистором 1-10 кОм 3) в ATmega 128 и ATmega64 есть FUSE бит совместимости со старым МК ATmega103 и с завода он запрограммирован в «0» на совместимость. Подробней о фьюзах ниже и на стр. 2 курса Трудно сразу написать правильно работающую программу, даже после прогона и отладки в софт эмуляторе — симуляторе VMLAB или PROTEUS ваше реальное устройство с реальным AVR может делать не то, что вы от него ожидаете. Значит в программу нужно будет вносить изменения, перекомпилировать и снова зашивать в МК AVR , и так раз 20 -40 и более поэтому разумно использовать отличный программатор AVR в уже имеющемся у вас CVAVR в котором вы правите программу. В меню CVAVR «Сеттинс -> Программер» вам надо выбрать ваш адаптер (подробней про адаптеры ниже!) для программирования. Вариант 1. Только если вы понимаете что такое фьюзы и знаете как правильно их установить . Вы можете в компиляторе CodeVisionAVR открыть меню «Проджект -> Конфига -> Афта Мэйк» и отметить чек бокс «Program the chip» . Появится окно программирования-прошивания AVR В этом окне надо установить параметры программирования — фьюз биты и лок биты — об этом подробней написано ниже . После установки параметров программирования нажмите ОК. Теперь после компиляции программы без ошибок в окне с результатами компиляции вам будет доступна кнопка «Program» — нажмите на нее и, если все подключено правильно, произойдет программирование МК — т.е. файл .hex будет загружен в память программ МК и (если используется в программе) файл EEPROM будет в нее загружен. Затем МК будет «сброшен» (на ножку RESET будет подан лог. 0 а затем опять «1») и AVR начнет выполнять уже новую, только что прошитую (загруженную в него) программу. Вам даже не нужно будет отсоединять адаптер программирования от вашего устройства если вы не используете в вашем устройстве последовательный интерфейс SPI . . и так до окончательной отладки устройства. Вариант 2. Если вы не устанавливали чек бокс «Program the chip» или Если вы хотите без компиляции прошить с помощью CVAVR готовые файлы прошивки .hex и возможно содержимое EEPROM в микроконтроллер AVR 1) запустите программатор CVAVR кнопочкой «МИКРОСХЕМА» правее «красного 2) Откройте меню «File» затем «Load FLASH» — выберете файл прошивки .hex который нужно прошить в AVR ( CVAVR поддерживает и другие форматы, а не только .hex ) и щелкните «Открыть». 3) Если у вас есть информация для загрузки в EEPROM AVR то откройте меню «File» затем «Load EEPROM» — выберете файл .epp ( CVAVR поддерживает и другие форматы) и щелкните «Открыть». Если вы не используете EEPROM или не меняете ее содержимое — поставьте галочку у » Preserve EEPROM » — это ускорит прошивание. 4) Установите параметры программирования — фьюз биты и лок биты. Лок биты устанавливают уровень защиты вашей программы от чтения из памяти AVR — это актуально для коммерческих изделий. Для защиты прошивки отключите отладочные интерфейсы JTAG или «уан вая» и установите » Programming and Verification disabled » . ГЛАВНОЕ это правильная установка фьюз битов — fuse AVR . 5 ) Запрограммируйте AVR не кнопкой » Program All «, а через меню «Program» — Стереть, потом FLASH, потом EEPROM и если надо и если вы уверены в их установке то и фьюзы. После прошивания, если вы сделали все правильно, AVR начнет выполнять уже новую программу. В диалоге настройки прошивания отключите программирование фьюзов МК уберите галочку у Program Fuse Bit(s) — если не разобрались четко, что они делают и как правильно их установить ! Иначе вы можете отключить режим ISP или внутренний RC-генератор и для следующего программирования вам понадобится ставить кварц с конденсаторами или даже искать: Но популярному AT tiny2313 даже параллельный программатор Parallel Programming does not work в ATmega XXX с завода включен внутренний RC генератор Если вам нужна другая частота или нужно включить внешний кварцевый или керамический резонатор — вам нужно при программировании МК установить фьюзы ( Fuses ) по таблицам из ДШ ( Даташит AVR на русском языке ) или по таблице фьюзов на стр. 2 или по таблице установки фьюзов ниже : НЕ запрограммированный фьюз 1 ЗАпрограммированный фьюз 0 Пример: Чтобы включить в ATmega16 внешний кварцевый резонатор (говорят просто — «кварц») с частотой от 3 до 8 МГц с конденсаторами ( по схеме рис. 12 ДШ ) найдите в ДШ раздел » System Clock » — «системный тактовый сигнал». В таблице 2 указаны комбинации фьюзов для разных источников тактового сигнала. CKSEL 0001 SUT 10 CKOPT 1 По таблице 4 находим : в ATmega 16 для кварца с частотой от 3 до 8 МГц нужны конденсаторы от 12 до 22 пФ и вот такая комбинация фьюзов : CKSEL 111 1 SUT 11 CKOPT 1 Вот скриншот с такой установкой фьюзов в программаторе компилятора CVAVR Сняв галочку Program Fuse Bit(s) вы c можете не менять установку фьюзов при прошивании AVR ! НЕ НАЖИМАЙТЕ кнопку » Program All » — она прошивает и фьюзы не смотря на отсутствие галочки. Обязательно . Прочитайте текущую комбинацию фьюзов в микроконтроллере — » Read » -> «Fuse bit(s)» и скопируйте ее в окно фьюзов. теперь при случайном нажатии кнопки «Програм ол» в МК прошъется та же комбинация фьюзов которая есть сейчас. Фьюз биты — фьюзы AVR — у которых нет галочки после прошивки AVR будут Реклама недорогих радиодеталей почтой: Вначале «Erase chip» — стереть чип. Затем » FLASH » — прошить программу в МК И если надо то «EEPROM» — прошить в EEPROM . Для использования ATmega16 (и других мег) с внешним кварцевым или керамическим резонатором на частотах выше 8 МГц вам нужно установить фьюзы как в примере выше, но запрограммировать CKOPT Т.е. вам нужна такая комбинация: CKSEL 111 1 SUT 11 CKOPT 0 CKOPT 0 — нужен и тогда когда вы хотите взять с XTAL2 тактовый сигнал для другого Фьюзы SUT — определяют быстроту запуска генератора тактового сигнала, Фьюзы ATt iny2313 описаны в конце следующей страницы курса. Интерфейс программирования AVR — Адаптер для соединения МК с ПК при прошивании. Для соединения компьютера с ISP разъемом устройства на AVR Советую сделать адаптер от STK200 — это «правильные 5 проводков» с микросхемой буфером снижающим вероятность случайного повреждения порта ПК. В установках компилятора CodeVisionAVR интерфейс «5-проводков» называется «Канда системз STK200+/300». Меню «сеттингс» — «программер». В этом же диалоге можно понизить частоту с которой программатор будет обмениваться с прошиваемым МК увеличивая множитель задержки. Частоту тактирования сигнала SCK программатором при прошивании можно установить в диалоге программирования в CVAVR. Снижение частоты на SCK повышает помехоустойчивость при прошивке. Программа узнаёт адаптер STK200 по перемычкам на разъеме параллельного порта к которому он подключается — должны быть соединены двумя перемычками пары выводы: 2 и 12, 3 и 11. Для программирования к МК должно быть подключено питание. Например +4. +5 .5 вольт ко всем выводам МК в названии которых есть VCC , а 0 вольт ко всем выводам GND (это «общий» провод). Обязательно поставьте подтягивающий резистор 10 кОм от ножки R ESET AVR на питание VCC и конденсатор 0.01-0.15 мкФ ( в а пноутах AVR040 и AVR042 рекомендуют 0.01 мкФ ) от R ESET на GND . Если в МК не т внутреннего генератора тактового сигнала (например старые AVR серии AT90sXXXX или мега побывавшая в чьих то шаловливых руках изменивших фьюзы до того как попасть к вам) то нужно подключить кварц Либо подать тактовый сигнал 0.8 -1.5 МГц от внешнего источника — Вот как сделать простой генератор тактовой частоты : Программатор AVReAl может программировать МК без кварца и без конденсаторов ! Он выводит тактовый сигнал на выв. 5 LPT его нужно подать на ножку XTAL1 МК и добавить в командной строке AVReAL специальный ключ «-o0». Программатор AVReAl позволяет назначать какие ножки LPT порта использовать — это будет полезно когда часть ножек LPT вы уже спалите Я использую самый простой вариант адаптера П ять поводков соединяющих линии параллельного (LPT) порта ПК и AVR так же как на схеме STK200 выше, но без микросхемы буфера. Лучше все же токоограничительные резисторы от 150 до 270 ом впаять Береженого бог бережет ! Проводки не более 15 см длиной ! Адаптер «5-проводков» прекрасно работает с компилятором CVAVR CodeVision AVR. Я проверял «проводки» при питании МК ATmega64L от 3,0 до 5,3 вольт, а так же с ATmega16, ATmega48, ATtiny26, ATtiny261, ATtiny13 , ATtiny 23 13 — программирует всегда без сбоев! Всё о прошивке AVR Прошивка AVR PIC прошивки Программирование PIC и AVR Советую для изготовления адаптера взять » принтерный» шнур — он длинный и экранированный, а не экранированные проводки не стоит делать более 10-15 см. Питать устройство при программировании можно : — сетевым адаптеры от бытовых устройств понизив напряжение до 5 вольт. — батарейками ! Достаточно три батарейки по 1,5 вольт последовательно. +5 вольт можно взять с вывода 1 гейм порта компьютера или из провода включенного в гнездо USB. Желательно питать устройство от ПК! В этом случае «земля» вашего устройства будет соединена с корпусом ПК и можно будет безопасно подключать и отключать разъем программирующего адаптера. Вначале старайтесь соединять «земли» ( металлические корпуса , «общие» провода ) устройств — для уравнивания их потенциалов ! Удобно подпаять к проводнику GND устройства проводок с «крокодильчиком» который прицепите к металлу ПК у LPT или COM портов перед подключением разъемов или сигнальных линий, проводов. Теперь БЕЗОПАСНО соединять разъемы Не поленитесь: спаяйте адаптер STK200 на микросхеме буфере по рисункам внизу страницы — так как LPT порт компьютера более нежен чем COM — соответственно его спалить проще. Спалите LPT и будете меня ругать! А я предупреждал ! Поставщики AVR говорят что AT Tiny2313 поступают с завода с настройкой внутреннего RC-генератора на 4МГц (в даташите указано 8 МГц) с делителем частоты на 8 — т.е. частота тактирования всего 500 КГц. Значит частота на линии SCK, формируемая программатором, не должна быть выше 120..125кГц. Если вы хотите использовать ножки МК SCK, MOSI, MISO в вашем устройстве то подключайте другие компоненты к ним через резисторы 4.7 КОм — чтобы не мешать программированию. Так рекомендовано в апноуте AVR 042 Для Мега64, -128 вместо MOSI и MISO используются другие ножки для ISP программирования ! Или соберите простой, дешевый и хороший Прошитый микроконтроллер для сборки USB программатора AVR вы можете заказать по почте. Есть много бесплатных загрузчиков STC создал загрузчик bootloader размером 256 байт с поддержкой быстрого страничного режима записи. Прошитые загрузчиком bootloader микроконтроллеры AVR PIC вы можете заказать по почте. C писок Апноутов для AVR примеры применения микроконтроллеров. И много полезной информации ! AVR miniICE Это профессиональное средство для программирования и Характеристики:
Поддерживаемые микроконтроллеры (AVR Studio ver. 4.xx):
Прошивка AVR miniICE обновляется из новых версий AVR Studio Вы скачиваете новую версию и через меню перепрошиваете Детали:
Программирование (обновление программного обеспечения):
не обращайте на это внимания. Все ! AVR miniICE готов к работе ! Пример реализации: на макетке Прилагаемые файлы: Можно сразу залить в ATmega16 готовую прошивку (не надо прошивать через бутлодер) Программирование AVR с помощью PonyProgописание программатора PonyProg на русском языке Я очень советую программировать из CodeVisionAVR . Свободно распространяемая программа управления программированием микроконтроллеров AVR, PIC и т.д. Более подробную информацию и саму программу можно получить на сайте автора Claudio Lanconelli http://www.lancos.com/ (кстати есть поддержка русского интерфейса). Большинство контроллеров AVR поддерживает режим внутрисхемного программирования. Это означает, что Вам не нужно вытаскивать микроконтроллер из платы каждый раз, когда Вам необходимо его перепрограммировать. Опять-таки покупка готового программатора обойдется Вам в $50-150. В нашем случае Вы обойдетесь без лишних накладных расходов. С помощью программы PonyProg, Windows или Linux, и свободного параллельного порта Вы сможете создать хороший и простой программатор. И этот программатор представляет собой простой кабель. Сам кабель и его распайка представдены на рис.1
Сигналы программируемого интерфейса последовательного доступа
На Рис.3 приведена схема подключенния загрузочного кабеля к контроллеру ATmega8. При подключении других AVR контроллеров серий AT90, ATmega, проследить на соответствие сигналов и цоколевку. Для контроллеров серии ATmega внешний кварцевый резотатор не обязателен. Они могут работать от внутреннего генератора и поставляются призводителем именно в таком режиме. В любом случае, прежде чем совершать какие либо действия с контроллером, необходимо прочитать инструкцию (Datasheet) конкретно для данного девайса. Я, avr123.nm.ru — советую подключать ВСЕ выводы Вот настройка PonyProg на LPT порт : Настройка программатора PonyProg в картинках !
|