AVRDUDESHELL. Программа для прошивки микроконтроллеров Atmega
AVRDUDESHELL – программа для Windows и Linux (под wine, начиная с версии 01.09.2015) систем для программирования (прошивки) микроконтроллеров семейства AVR, таких как ATmega8, ATmega16, ATmega32, ATmega64 (полный список поддерживаемых микроконтроллеров см. в конце статьи). Программа поддерживает такие популярные программаторы как USBASP, AVR910, STK500 (полный список поддерживаемых программаторов см. в конце статьи). Фактически AVRDUDESHELL это графическая надстройка над консольной программой AVRDude, поэтому все те микроконтроллеры и программаторы, которые поддерживает AVRDude, поддерживает и AVRDUDESHELL.AVRDUDESHELL. Программа для прошивки микроконтроллеров Atmega.
Главное достоинство программы — универсальность, простота и наглядность.
AVRDUDESHELL. Главное окно программы.
Множество настроек сгруппированы по категориям:
AVRDUDESHELL. Настройки программы.
В программу встроен механизм получения информации по установленным фьюзам, получающий информацию с http://www.engbedded.com/.
AVRDUDESHELL. Информация по установленным фьюзам.
Оповещение об опасных манипуляциях с фьюзами предупредит о блокировке SPI программирования
AVRDUDESHELL. Оповещение об опасных манипуляциях с фьюзами.
Перед чтением или записью микроконтроллера можно задать область памяти, с которой будет выполняться операция.
AVRDUDESHELL. Область памяти с которой будет выполняться работа.
Если необходимо — можно сохранить
AVRDUDESHELL. Сохранение фьюзов.
а потом восстановить настройки фьюзов
AVRDUDESHELL. Загрузка фьюзов.
Содержит встроенный дизассемблер
AVRDUDESHELL. Встроенный дизассемблер.
Список поддерживаемых микроконтроллеров:
ATMEGA
ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284P, ATmega128RFA1, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164P, ATmega168, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega324P, ATmega325, ATmega3250, ATmega328P, ATmega329, ATmega3290, ATmega3290P, ATmega329P, ATmega48, ATmega64, ATmega640, ATmega644, ATmega644P, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega8, ATmega8515, ATmega8535, ATmega88
ATTINY
ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861, ATtiny88
ATXMEGA
ATxmega128A1, ATxmega128A3, ATxmega16A4, ATxmega192A3, ATxmega256A3, ATxmega256A3B, ATxmega32A4, ATxmega64A1, ATxmega64A3
AT
AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90S1200, AT90S2313, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82
Список поддерживаемых программаторов:
89ISP, ABCMINI, ALF, ARDUINO, ATISP, AVR109, AVR910, AVR911, AVRISP, AVRISP2, AVRISPMKII, AVRISPV2, BASCOM, BLASTER, BSD, BUTTERFLY, C2N232I, DAPA, DASA, DASA3, DRAGON_DW, DRAGON_HVSP, DRAGON_ISP, DRAGON_JTAG, DRAGON_PP, DT006, ERE-ISP-AVR, FRANK-STK200, FUTURLEC, JTAG1, JTAG1SLOW, JTAG2, JTAG2DW, JTAG2FAST, JTAG2ISP, JTAG2SLOW, JTAGMKI, JTAGMKII, MIB510, PAVR, PICOWEB, PONYSER, PONY-STK200, SIPROG, SP12, STK200, STK500, STK500HVSP, STK500PP, STK500V1, STK500V2, STK600, STK600HVSP, STK600PP, USBASP, USBTINY, XIL
С историей обновлений можно ознакомиться тут.
Инструкция по настройке программы для работы в ОС Linux (wine) находится тут.
Скачать программу AVRDUDESHELL
Программы для прошивки AVR — Меандр — занимательная электроника
Программ для прошивки AVR микроконтроллеров существует множество. О них и пойдёт речь.
Одна из самых популярных программ – PonyProg. Выглядит она следующим образом:
Тут можно выбрать порт компьютера, к которому подключён программатор и тип программатора. С зашивкой программы во флеш или EEPROM я думаю и так всё понятно, а вот на FUSE битах следует остановится по подробнее. Нотация FUSE битов у проги инверсная т.е. галочка означает, что бит запрограммирован (установлен в 0). FUSE биты перед тем как записывать нужно ОБЯЗАТЕЛЬНО прочитать!
Вообще, судя по многочисленным упоминаниям об этой пороге в интернете, программа эта крайне странная, глючит. В общем лучше эту программу не использовать.
PonyProg программа не очень. Далее я расскажу о встроенному в AVR Studio программатору. Он куда лучше. Хотя FUSE биты всё равно инверсные, но зато тактовую частоту можно выбирать не комбинацией группы битов, а в человеческом выпадающем списке. Программа выглядит так:
На этой вкладке можно указать файл с программой и зашить её в FLASH или EEPROM память. Переходим на вкладку FUSES:
Как я и говорил – тактовая частота задаётся в выпадающем списке. Если галочка Auto read установлена – биты считываются автоматически. Очень удобно! Также можно задать FUSE биты числом. В общем программа очень удобная, но работает она к сожалению только с атмеловскими программаторами.
И третья, на мой взгляд самая лучшая программа для прошивки – AVR Dude с графической оболочкой SinaProg. SinaProg выглядит так:
Очень удобный и понятный интерфейс. В графе HEX file выбирается файл для прошивки и дальше можно его залить либо вo flash либо в EEPROM. В графе Device выбирается микроконтроллер. В графе Programmer – программатор, порт к которому он подключён и скорость. FUSE биты также инверсны, но к этому можно привыкнуть. Если в графе Fuses нажать кнопочку Advanced, то откроется окошко, в котором производится установка FUSE битов:
Здесь можно задать их числом, а можно нажать на кнопочку C и появится окошко с галочками и выпадающими списками:
А самое главное достоинство AVR Dude – она поддерживает большинство программаторов, е если какие-то и не поддерживает, то они в неё легко добавляются!
Я остановился именно на AVR Dude с оболочкой SinaProg. Чего и Вам желаю. Поддерживает она как крутые атмеловские программаторы. так и простейшие вроде 5-ти проводков. И работать с ней удобно. Удачи Вам в прошивке!
Ссылки:
1)Архив с настроенной SinaProg.
radioelektr.ru
Как прошить микроконтроллер ATmega, AVR
Комментарии
Прошиваем микроконтроллер AVR.
Смотрите также:
-Как написать код для AVR, программирование микроконтроллеров Atmel AVR на Си
—Эмуляция AVR в Proteus, микроконтроллеры в Proteus
—Простой ШИМ на ATTiny13.Регулируем всё
—Работа с дисплеем HD44780 на AVR.Запись своих символов
Как и чем прошить avr микроконтроллер.
1)Прежде всего для прошивки микроконтроллеров Atmel AVR необходим программатор, например для прошивки через USB-порт такой — USB ASP Программатор микроконтроллеров ATmega AVR
Купить — USBASP USBISP AVR Programmer USB ISP USB ASP ATMEGA8 ATMEGA128 Support Win7 64K
2)Теперь нужно установить драйвера для вышеприведенного программатора
Для этого устанавливаем программу eXtreme Burner — AVR, в процессе установки она автоматически установит правильные драйвера
Скачать можно здесь eXtremeBurnerAV_LampCORE_ru
3) Дальше требуется соединить микроконтроллер с программатором , быстрее и проще это сделать с Беспаечная макетная плата MB102 и с проводами-радугой с типом наконечников Male to Male или если программатор без шлейфа с наконечниками Female to Male
Соединять в соответствии с картинкой , приведенной ниже(Это для микроконтроллеров ATMEGA8, у других мк смотрите соответствующую им распиновку!):
Если беспаечной платы и проводов-радуги нет — то можно напрямую припаяться к выводам разъема программатора и к ножкам микроконтроллера для прошивки.
Обратите внимание, что контакт 22 — GND находится напротив по другую сторону мс контакта 7 — VCC, исходя из этого не нужно отсчитывать ножки микросхемы, а просто соединить контакт напротив по другую сторону микросхемы соответственно.
Соединение без макетной платы и с помощью обычных проводов
Смотрим распиновку разъема программатора:
Паяем к микроконтроллеру в соответствии с распиновкой.
Удобнее паять таким паяльником — Паяльник GJ 907.
Или можно просто запихать в разъем шлейфа обычные провода, но при таком соединении возможен плохой контакт или его отсутствие.
Запускаем eXtreme Burner AVR , во вкладке Chip выбираем свой микроконтроллер(у нас ATmega8):
(Если при запуске у вас выдается сообщение — «не удается продолжить выполнение кода поскольку система не обнаружила libusb0.dll» то необходимо скачать и установить эти драйвера
usbasp-win-driver-x86-x64-v3.0.7_LampCORE_ru
вручную, запустив файл InstallDriver.exe )
Затем выбираем вкладку Read и нажимаем Flash(считать прошивку(на многих коммерческих устройствах устанавливают бит защиты от считывания))
(Если выдается ошибка Power On Failed
Cannot Communicate with Target Chip! значит , что какая или какие-либо ножки микроконтроллера не контактируют с программатором, логично проверить наличие контактов и исправить их отсутствие)
Flash — это прошивка
EEPROM — энергонезависимая память
Fuse Bits and Lock Bits — это настройка фьюзов, защиты, параметров микроконтроллера(например работать микроконтроллеру от внутренней частоты или от внешнего кварцевого резонатора, откуда брать опорное напряжение для АЦП и т.д.)
Если драйвера установлены, подсоединено всё правильно то имеем такой результат:
Мы считывали еще не прошитый микроконтроллер ATMEGA8, поэтому у нас будут считаны только нули(FFFF):
Попробуем прошить микроконтроллер
Прошивка микроконтроллера представляется в виде формата .HEX
Имеется прошивка HelloLED
Она мигает светодиодом на любом выводе D микроконтроллера ATmega, так как в прошивке задана установка всех портов D как выход.
Запускаем eXtreme Burner
Нажимаем Open и в файлах выбираем прошивку в формате HEX
Дальше должно быть так:
Для запуска прошивки выбираем вкладку Write(Запись) и нажимаем Flash, должен пойти процесс прошивки
Прошивка успешно завершилась:
Теперь считаем её
Жмем Read — Flash, получаем:
Как видно нули заменились другими цифрами и видно оставшееся пустое мето в памяти для прошивки.
Теперь отсоединим микроконтроллер от программатора и проверим работу прошивки на практике.
Собираем все по такой схеме:
Собрали, всё должно работать(светодиод мигает 2 раза в секунду):
Если светодиод не горит или наоборот горит постоянно — проверьте надежность контактов.
Внимание! Не вешайте напрямую нагрузку на ножки микросхемы с потреблением больше 25 мА!
Не подавайте на микросхему больше 5.5 Вольт.
Цикл перезаписи прошивки не бесконечен — есть определенный ресурс.Не стоит микроконтроллер использовать и перезаписывать как USB-флешку.
ОЦЕНИТЕ СТАТЬЮ:
Отправить рейтингСредний рейтинг / 5. Количество оценок:
Мы сожалеем, что эта запись вас не устроила.
Напишите, пожалуйста, что Вам конкретно не понравилось, как можно улучшить статью?(оценка будет засчитана только при наличии отзыва с указанными причинами низкой оценки).Вы можете оставить свой e-mail для связи.Отправить отзыв
Спасибо за ваш отзыв!
Прошивка AVR микроконтроллеров с «нуля» / Микроконтроллеры / Блоги по электронике
Микроконтроллеры семейства PIC мы уже научились прошивать вот из этой статьи. Но, существует не менее популярное семейство AVR микроконтроллеров. В этой статье для начинающих будет рассмотрено как же «залить прошивку» в контроллеры AVR.Еще когда я только начинал осваивать контроллеры семейства AVR сразу встал вопрос, а чем же я буду их прошивать. Как и полагается «полез» в интернет. Много чего я там по находил!
Вариант 1. Прошивка контроллера при помощи технологии «пяти проводков»
Микроконтроллер AVR имеет следующие основные выводы программирования:
MOSI — вход данных
MISO — выход данных
SCK — вход синхронизирующих импульсов
REST — сигнал сброса
контроллера подключаются напрямую к LPT порту компьютера. Пяты проводок — это общий провод.
Вот схема подключения:
Питание на программируемый микроконтроллер в этой схеме подается от отдельного источника.
Обратите внимание на перемычки между контактами 2-12, 3-11. По наличию этих перемычек программа «прошивальщик» определяет подключение к LPT порту программатора.
Кабель соединяющий компьютер и программатор должен быть экранированный, проводки, соединяющие контроллер должны быть минимальной длины, иначе, посыпятся ошибки при прошивке контроллера.
Это, конечно самый простой способ прошить AVR контроллер. Но у него есть и куча недостатков. Самый большой недостаток — это очень большая возможность «спалить» LPT порт, да и всю материнскую плату, так как никакой защиты для порта не предусмотрено. Но, не все еще потеряно.
А будем собирать программатор под названием STK200/300.
Этот программатор получил свое название от комплектующихся им отладочных плат фирмы Atmel для быстрого начала работы с микроконтроллерами At90s8515 и Atmega103. Но, им иожно прошивать и другие типы контроллеров.
Схем в сети этого программатора полно в различных вариация. Вот собственно его схема:
Тут все просто. На входе защитные резисторы от перегрузки по току, далее идет микросхема 74HC244. Это не инвертирующий буфер. Микросхема содержит два независимых четырехразрядных буфера. Каждый буфер имеет свой сигнал разрешения выхода (низкий активный уровень). На входах нет триггеров Шмитта. Микросхема выполнена по технологии “быстрый” КМОП, что обеспечивает высокое быстродействие. Мощный токовый выход делает возможным сохранение высокого быстродействия даже при емкостной нагрузке. Быстродействие 74HC244 сравнимо с быстродействием микросхем, основанных на диодах Шоттки, при этом 74HC244 сохраняет достоинства микросхем КМОП, т.е. высокая помехозащищенность и низкая потребляемая мощность.Входы микросхемы защищены от повреждения статическим электричеством при помощи диодов. Вот блок схема данной микросхемы:
Так что тут все ясно и просто. На входе питания для программатора и контроллера Vcc
сидит светодиод и сигнализирует о подачи напряжения питания. Светодиод на линии LED / XTAL 1(некоторые программы на эту линию выводят тактовую частоту для работы контроллера) помаргивает при программировании. Ну вроде и все! Перейдем к конструкции.
Была сделана печатная плата. Детали в основном SMD. Плату планировалось «запихнуть в стандартную коробочку для разъема DP-25C. Вот в такую:
Плату сделал, надфилем доработал до формы коробочки, запаял детальки:
В крышке разъема потом просверлил отверстия для светодиодов. С платы вывел проводки для подключения контроллера.
Вот файл печатной платы
Все собрано, теперь бы надобно все настроить и опробовать! Поехали!
прошивать будем из программы PonyProg.
Запускаем пони прог. С начала раздастся звук ржания пони, чтоб это в дальнейшем не напрягало, ставим галочку в поле Disable sound, нажимаем ОК. Далее выпрыгнет окошко такого плана:
тут программа нас просит произвести ее калибровку, это нужно для того, чтобы программа проверило „железо“ компа и подстроилось под него, компы ведь бывают шустрые и не очень!)
Нажимаем ОК. Выскочит теперь еще одно окошко:
Тут программа хочет от нас, чтоб настроили интерфейс программирования, проще говоря, указали с каким программатором ей предстоит работать.Нажимаем ОК.
Теперь заходим Setup -> Calibration. Появляется окно:
Нажимаем „YES“ и через некоторое время программа скажет, что „Calibration OK“. Хорошо!
Теперь лезем в Setup -> Interface Setup.
Выбираем параллельный порт ввода/вывода, жмем OK.
Далее лезем в Command -> Program Options. Настраиваем все как на картинке ниже.
Жмем OK. Вот теперь все готово к „прошивке“.
Теперь последовательность действий для „прошивки“ контроллера. Программатор должен уже быть подключен к LPT порту, контроллер к программатору и подано питание на программатор и контроллер.
1. Тут выбираем из списка тип семейства контроллеров „AVR micro“
2. Из другого списка выбираем „ATtiny2313“
3. Загружаем файл прошивки (File -> Open Device File), выбираем нужный файл.
4. Жмём кнопку „Launch program cycle“. Когда программирование завершится, прога скажет „Program successful“
5. Ну и напоследок надо запрограммировать так называемые Фьюзы (fuses). Для этого жмём кнопочку „Security and Configuration Bits“.
В появившемся окне жмём „Read“, потом выставляем галочки фьюзов так, как нам нужно для конкретной схемы и жмём „Write“. Все, все „прошито“ Подробнее об этих самых фьюзах можно почитать тут и тут — тут приводить описание не вижу смысла, уже все давно рассмотрено!
А если у нас есть в наличии современный компьютер или ноутбук, где нет LPT порта вообще?
Как тогда быть? А тогда надо делать USB программатор. В принципе, тут тоже уже все давно придумано. Я собрал себе USB программатор AVR910. Вот официальный сайт его разработчика. Повторюсь, и приведу тут схему данного программатора.
Описание работы здесь не привожу, кто захочет, почитает на страничке автора. Единственный недостаток этого программатора — для прошивки контроллера программатора нужен программатор. Но, думаю где-нибудь найти компьютер с LPT портом, чтоб прошить контроллер хоть „5 проводками“, думаю еще можно!) Была разведена печатная плата, все смонтировано. На плате было выведено +5 вольт с USB порта для питания программируемого контроллера.
Светодиоды HL1 и HL2 загораются при чтении/записи контроллера, светодиод HL3 сигнализирует о подачи питания с USB порта. Перемычкой J1 LOW возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом — пониженная. Cкорость работы порта SPI МК программатора при разомкнутом джампере J1 равна 187,5 кГц. Это позволяет программировать контроллеры с тактовой частотой примерно от 570 кГц для tiny/mega, 750 кГц для 90S и 7,5 МГц для 89S.
На вывод LED разъема выведен меандр с частотой 1 МГц для „оживления“ МК, у которых были ошибочно запрограммированы фьюзы, отвечающие за тактирование. Сигнал генерируется постоянно и не зависит от режима работы программатора.
Программатор позволяет программировать все контроллеры AVR, поддерживающие ISP (In System Programming — Программирование В Системе), а так же МК серии 89S — 89S53 и 89S8252.
Джампер J2-J3 служит как для начального программирования микроконтроллера (замкнут J2 — MOD), так и для использования в качестве разъема программатора (замкнут J3 — NORM)
Была разведена печатная плата.
Микроконтроллер ATmega8 в программаторе был взят в корпусе TQFP32, если использовать в корпусе DIP28, то следует учесть, что нумерация выводов у МК в корпусах TQFP отличается от нумерации выводов МК в корпусе PDIP-28.
Подключил собранный программатор к программатору STK 200/300, поставил джампер J2, воткнул кабель от программатора в USB порт, запустил Pony Prog и прошил.
Вот файл прошивки.
После система определит новое устройство — AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к файлу prottoss.avr910.usb.inf Качаем его здесь.
Система начнет устанавливать драйвер. Если установка драйвера прервется и система попросит указать путь к файлу lowcdc.sys
то указываем где он у нас лежит, вот ссылка для скачивания данного файла. Система должна его увидеть и закончить установку драйвера.
Программатор установлен в системе. Теперь настроим его для работы в программе прошивальщике. К сожалению этот программатор не работает в программе Pony Prog. Работает он в таких программах:AVRProg v.1.4 (входит в пакет AVRStudio), ChipBlasterAVR v.1.07 Evaluation, AVROSP (ATMEL AVR Open Source Programmer), CodeVisionAVR.
Рассмотрим настройку данного программатора в программном пакете CodeVisionAVR.
Качаем ее тут. Теперь самое главное. Щелкаем левой кнопкой на значке „Мой компьютер“,
в выпадающем меню выбираем „Свойства“
Вот так получится:
переходим на вкладку „Оборудование“
запускаем „Диспетчер устройств“
Выбираем „Порты (COM и LPT)“. Видим там „Virtual Communications Port“ и в скобочках указан номер присвоенного порта, в моем случае это COM5. Запоминаем этот номер.
Теперь запускаем CodeVision AVR. В основном меню нажимаем кнопку „Setting“, в выпадающем меню нажимаем „Programmer“:
Появится вот такое окошко:
В самой первой строчке из списка выбираем наш AVR910, во второй строчке выставляем номер
Com порта, который смотрели в диспетчере оборудования. Остальное оставляем без изменений.
Все, программатор настроен. Теперь немного о том как прошить контроллер в CodeVision AVR.
Итак, в основном меню выбираем „Tools“, далее нажимаем „Chip Programmer“,
появится вот такое окошко:
Рассмотрим, что тут есть и как это работает.
Программатор уже должен быть подключен к Usb, а к программатору подключен контроллер,
в моем случае это будет Atmega 8.
В списке Chip выбираем наш контроллер, теперь нажимаем в меню сверху Read.
В этом меню мы можем запустить чтение содержимого контроллера. Пока, что нас интересуют два пункта, это FLASH и Fuse Bit(s). Если нажать на FLASH, то начнется чтение содержимого
FLASH памяти контроллера, на программаторе будет мигать зеленый светодиод. Итак, FLASH прочитана, а где же глянуть, что же там прочиталось. А вот где. Нажимаем в главном меню
Edit, а выпавшем списке FLASH.
Появится вот такое окно:
Вот, собственно, все содержимое FLASH памяти контроллера, тут можно и отредактировать,
если нужно определенные блоки. Но, пока тут все чисто, во всех ячейка — FFFF.
Если нужно прочитать Fuse Bit(s), то делаем следующее — Read — Fuse Bit(s). Пройдет чтение и вот в таком окошке появятся заводские фьюзы контроллера (если он новый):
С этим думаю, понятно. А как же здесь загрузить прошивку в контроллер. Тоже просто!
Сперва нужно указать сам файл прошивки, которым будем загружать в контроллер. Делается это так. выбираем в меню File, далее выбираем Load FLASH.
Жмем Load FLASH и в появившемся окне выбираем файл прошивки.
Нажимаем Открыть.
Теперь заходим в меню Program.
Если в контроллере были какие-то данные, то сперва стираем его, нажав на Erase Chip, если контроллер новый, то стирать не надо. Теперь нажимаем на FLASH. Программа спросит, действительно ли хотите запрограммировать, на что ответьте ОК. Пойдет процесс прошивки.
Когда он закончился, то теперь нужно запрограммировать фьюз биты. Сперва необходимые фьюз биты выставляем в том же окошке
Запомните, если в квадратике, напротив названия фьюз бита стоит галочка, то фьюз бит не запрограммирован, если не стоит, то запрограммирован.
Когда выставили необходимые фьюз биты, то в пункте меню Program нажимаем Fuse Bit(s). Вот
теперь все. Можно еще раз прочитать содержимое FLASH и удостовериться, что все за программировалось.
Теперь немножко по доработке программатора AVR910. Когда я начал им пользоваться и активно шить контроллеры, то выявил один, вроде и не очень существенный недостаток.
Этот программатор достаточно медленно читает и прошивает контроллеры. Вроде, а куда спешить? Но бывает приходится по десять раз стирать и заново прошивать контроллер во время настройки устройства, вот тогда и надоедает ждать. Поискав по сети решение этой проблемы, нашел! Вот тут.
Автор там переделал прошивку самого программатора и теперь с этой прошивкой он работает намного шустрее. Перешивал при помощи того же STK200/300. Вот файл прошивки и драйвера для Windows. После перепрошивки так же устанавливаем драйвер, но только уже из архива, ссылка на который выше. В CodeVision AVR теперь настраиваем следующим образом:
Новая прошивка эмулирует теперь программатор STK 500. Вот такое превращение).
Далее работаем так же как и описывалось выше, но с заметным приростом скорости работы программатора.
Вот и все, что хотел рассказать. Конечно, все в одну статью не всунешь, так что если возникнут вопросы, задавайте! Думаю, статья поможет тем, кто только начинает осваивать
микроконтроллеры AVR!
Программирование AVR урок 3 — прошиваем микроконтроллер
Доброго времени суток. Продолжим. После того, как мы ознакомились с процессом отладки написанной нами программы в «atmel studio» и виртуально собрали схему с одним светодиодом в «proteus», пришло время собрать схему в «железе» и прошить микроконтроллер.
Для программирования опытного экземпляра (atmega 8) будем использовать программатор USBASP. Он выглядит следующим образом:
К разъему будет подключатся шлейф, в который подключаются джамперы, что в свою очередь будут подключены к гнездам макетной платы, на которой установлен микроконтроллер:
Первый вывод отмечен на разъеме стрелочкой.
После того, как разобрались с программатором. Переходим к сбору схемы в «железе». Монтируем микроконтроллер на макетную плату. Напоминаю — первая ножка отмечена на МК маленьким кружком.
Задача состоит в том, чтобы соединить выводы программатора с выводами «камня».
Подключаем джамперы в 10 контактный разъем. Задействуем следующие выводы MOSI, RST, SCK, MISO, VTG (VCC), GND.
Надеюсь вы уже скачали datasheet на atmega8. Если нет, его можно скачать здесь. Смотрим на распиновку выводов микроконтроллера.
Соединяем джамперы со следующими выводами:
- VCC к 7 выводу МК;
- SCK к 19 выводу МК;
- MISO к 18 выводу МК;
- MOSI к 17 выводу МК;
- GND (10 вывод программатора) к 8 выводу МК;
- RST к 1 выводу МК;
Для дальнейшем успешной работы, операционная система при первом запуске шайтан-машины (программатора) предложить установить необходимые для работы устройства драйвера.
При работе с экспишкой проблем возникнуть не должно. Скачиваем драйвер. Создаём папку, в которую распаковываем скаченный архив. После чего в мастере установки оборудования указываем путь на папку с разархивированным драйвером.
Если вы работаете в windows 7 или выше, могут возникнуть небольшие трудности. Драйвера для программатора достаточно старые, поэтому у них нет цифровой подписи. При попытке установить такой драйвер операционка выдаст, что-то на подобии этого *
«Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)».
Чтобы исправить ситуацию нужно отключить проверку цифровой подписи драйвера. Описывать способы отключения не буду (у каждого своя операционная система), их можно найти в интернете.
После того, как отключите проверку подписи, в мастере установки оборудования укажите путь на папку с разархивированным драйвером.
Надеюсь у вас всё получилось и программатор готов к работе.
Переходим к сбору схемы со светодиодом.
Для прошивки микроконтроллера будем использовать программу «avrdudeprog». Она лежит в общем архиве.
Выбираем atmega8 из списка микроконтроллеров. После того, как выбрали МК появиться окошко, которое известит о том, что фьюзы и Lock биты установлены по умолчанию.
Следующим шагом будет нужно считать калибровочные ячейки. Если вы подключили всё правильно, то увидите следующее сообщение.
Затем открываем вкладку фьюзы (Fuses). Простыми словами Fuses — это конфигурационные настройки МК, с которыми лучше не играть. Для случая, когда вы приобрели такой же контроллер, как я и у вас нет внешнего кварцевого резонатора (вы используете внутренний генератор тактовой частоты), выставляете точно такие галочки, как представлены на картинке. Обязательно возле пункта «инверсные» должна стоять галочка.
Выставленные настройки «командуют» Atmega8A выполнять свою работу при условии тактирования от внутреннего генератора (частота тактирования 8 МГц). Для того, чтобы настройки вступили в силу нужно нажать кнопку «Программирование». Но перед нажатием еще два раза проверьте все ли выставили должным образом.
Возвращаемся на страницу «Program».
После того, как мы уже сообщили программе, какой именно микроконтроллер будем шить, выбираем файл прошивку, которую написали в прошлом уроке. Она имеет расширение HEX. Находится в папке «Debug»
Перед тем, как прошивать «камушек» нажимаем на кнопку «Стереть все». Это обезопасит вас от непонятных ошибок (вдруг камень уже шили):
Нажимаем «Программирование». Если все прошло успешно программа выдаст
Архив с драйверами
Datasheet на atmega8
Картотека программирования
Наслаждаемся результатом своей работы 🙂 Продолжение следует…
ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ!
About alexlevchenko
Ценю в людях честность и открытость. Люблю мастерить разные самоделки. Нравится переводить статьи, ведь кроме того, что узнаешь что-то новое — ещё и даришь другим возможность окунуться в мир самоделок.cxema.org — Прошивка микроконтроллеров AVR
Не редко, в радиолюбительской практике, возникает необходимость в прошивке микроконтроллера семейства AVR. Для себя я решил эту проблему изготовлением простейших программаторов под самые ходовые микроконтроллеры среди радиолюбителей, для ATMEGA8 и ATtyny2313. Схема программатора очень проста, при его изготовлении не возникнет проблем даже у начинающего радиолюбителя.
Программатор подключается к COM порту компьютера, для питания микроконтроллера требуется внешний источник питания. Я для этих целей спаял шнур, позволяющий запитывать микроконтроллер от порта USB того же компьютера.
Этим программатором можно прошить любой микроконтроллер семейства AVR, достаточно подключить выходы программатора к соответствующим ножкам микроконтроллера:
Для прошивки AVR микроконтроллеров я использую специализированную программу PonyProg.
При первом включении программы, требуется указать программе используемый нами программатор и куда мы его подключили, для этого, заходим в настройки оборудования,
выбираем последовательный порт, тип программатора — SI Prog API, выбираем COM порт, в который воткнули программатор, и жмём кнопку «Проверка», Если всё сделали правильно, появится соответствующее окошко. Если нет, ищите ошибки в монтаже.
После удачно пройденого теста необходимо пройти калибровку программы под ваш компьютер, для этого выбираем соответствующий пункт меню в разделе настроек. В появившемся оне жмём утвердительно кнопку «Да».
Об окончании калибровке программа сообщит соответствующим появившемся окошком. Эта процедура проводиться только один раз, при первом подключении программатора к компьютеру, и в дальнейшем проводить не требуется. Что бы убедиться в работоспособности программатора на панели выбираем семейство «AVR micro», тип подключенного микроконтроллера, в моём случае ATmega8, и жмём кнопку «Читать содержимое устройства».
Начнётся процесс чтения, и по окончании программа выдасть код, содержащийся в памяти микроконтроллера. Если микроконтроллер новый, память будет забита единицами. В шеснадцатеричном коде — FF.
Для записи в микроконтроллер необходимого кода жмём на кнопку «Открыть содержимое устройства из файла», выбираем необходимый HEX файл и жмём открыть.
Программа отобразит открытый код. Далее жмём кнопку «Запись устройства».
В появившемся окне жмём ДА. Начнётся процесс записи.
Потом проверки, и в случае успешной записи, программа выдаст соответствующее сообщение.
Некоторые авторы выкладывают прошивку не целиком, а по отдельности. Отдельно область программ и отдельно область данных. То же самое, но для чтения и записи используются соседние кнопки с буквами P (программа) и D (данные). Файлы могут иметь расширение не HEX, а e2p.
Теперь настал самый ответственный момент, требующий особого внимания, это запись битов конфигурации (fuse bits). Для этого жмём кнопку с замком «Биты конфигурации и защиты». Откроется соответствующее окно, в котором необходимо расставить «птички» так, как рекомендует автор устройства, которое вы повторяете.
После чего жмём ОК, начнётся запись конфигурации.
Это самый ответственный момент, из-за неправильно установленных битов конфигурации можно заблокировать микроконтроллер, и его работа может быть неправильная, а перепрограммирование будет возможно лишь на параллельном программаторе, конструкция которогог довольно сложна. Все авторы работают с разными программами, в которых биты конфигурации выставляются по разному. Для примера, теже биты конфигурации, но в программе Algorithm Builder
Обратите внимание, биты конфигурации выставлены инверсно!
Что бы не возникало вопросов, как надо выставлять фьюзы, перед изменением битов жмём кнопку «Читать» и смотрим на бит SPIEN, по умолчанию он всегда включен. Этот бит разрешает последовательное программирование. В PonyProg он специально заблокирован, что бы его случайно не выключить. Сравнивая этот бит в статье автора и со своей программой делаем выводы, как надо ставить биты, инверсно или нет, так как у автора он тоже включен!
Существуют программаторы, подключаемые к USB разъёму компьютера, собрал и я себе такой
Сразу же возникли проблемы с драйверами под windows7. Так же проблемы с софтом, так как не каждая программа умеет с ним работать. Пробовал разные версии прошивок программатора, различные варианты разных авторов, но всё таки отложил его в сторону.
Плата программатора для ATmega8 в формате lay тут
Программаторы AVR. Как прошить микроконтроллер
- Подробности
- Категория: Микроконтроллеры
- Опубликовано 13.08.2015 14:53
- Автор: Admin
- Просмотров: 6533
Прошивка микроконтроллера — это запись (копирование) в его память определенной программы. Программа представляет собой специальный код в шеснадцатеричном формате (файл с расширением hex).
Прошивка осуществляется при помощи специального устройства или программатора. Программаторы для каждых типов микроконтроллера свои. Также программаторы отличаются по способу подключения к компьютеру, могут подключатся через USB, LTP,COM. Существует целое множество разнообразных программаторов под микроконтроллеры AVR.
Наиболее простым на мой взгляд и простым в освоении программатором для AVR является USB-asp программатор. Мой первый проект и использованием такого программатора имел 2 детали, самого контроллера atmega8 и светодиода. После подключения и прошивки контроллера светодиод радостно начал мне подмигивать.
Программаторы под микроконтроллеры AVR
AVR-Doper. Этот программатор поддерживает протокол STK500 ( то есть, может совмещаться со многими утилитами, предназначенными для программирования), поддержка последовательного ISP- программирования и даже высоковольтного HVSP программирования. Прошивка практически всех известных чипов AVR. Возможно сделать самостоятельно, схемы не очень сложные, существует большое количество готовых прошивок, полностью открытый исходный код. Для качественной работы совместно с Windows требуется установка драйвера, который поставляется вместе с исходным кодом.
AVRISP-Mk. Такое название у клона Atmel с поддержкой протокола STK500. Не поддерживается HVSP, но в свободном доступе ISP, TPI и PDI, что позволяет прошить более современные микроконтроллеры типа XMEGA. Поддерживаются многие популярные программы. Его схема невероятно простая, поэтому программатор именно этого типа часто самостоятельно изготавливают. Исходный код открыт, возможна компиляция на другие чипы AVR, имеющие аппаратный интерфейс USB. Для Windows необходим драйвер, он идет в комплекте с исходным кодом. Наиболее подходящая данному программатору утилита AVR Studio 4.19.
AVR Dragon. Не слишком дорогой программатор, который пользуется популярностью с внутрисхемным отладчиком Atmel, его аналоги продаются на eBay за 40-50 американских долларов. Поддержка AVR Studio, IAR Embedded Workbench и многих других сред программирования. Самостоятельно изготовить его нельзя, так как нет ни доступных схем, ни кодов доступа, открытым остался исключительно STK500. Если вы обладаете достаточным количеством средств и хотите развиваться, как программист — стоит приобрести этот программатор. Для работы с Windows требуется драйвер, его можно установить вместе с AVR Studio.
Atmel AVR JTAGICE mk. Его еще называют «тяжелой артиллерией» в программировании и отладке AVR, так как это программатор- ISP со внутрисхемным эмулятором (JTAG, debugWIRE) в одной прошивке. Работа осуществляется с помощью COM-порта и по USB. Доступен для понимания даже avrdude. Хороший во всем, только не радует его стоимость. Может работать с AVR Studio, консольной штатной прогой. Поддержка интерфейсов отладки debugWire и JTAG, всего ассортимента AVR, но не поддерживается высоковольтное программирование HVSP. Очень дорогое удовольствие, которое трудно рекомендовать. Сделать самостоятельно невозможно. Для Windows нужна установка драйвера, идущего в комплекте с AVR Studio.
USBasp. Программатор, успевший получить статус «народного». Его дешево изготовить, схемы достаточно просты, большое количество исходников со свободным доступом дают возможности сделать проект собственными руками. Поддержка большого количества утилит для программирования. Его изготовляют многие компании в том числе и китайские. На ebay цена одной копии USBasp стартует от 4 долларов. Но будьте внимательны — дешевая продукция, как правило, обладает низким качеством. Поддержка исключительно ISP. Не забудьте об установке драйвера для Windows. Применение в USB-бутлоадерах (этому способствуют открытость и простота).
USBtinyISP. Этот проект находится в открытом доступе, есть все исходники. В состав входят 2 ISP-коннектора (6 pin и 10 pin). Использование чипа ATtiny2313-20P. Схема отличается своей простотой.
USB AVR programmer. Не считается официальным аналогом AVR910, но характеристики очень похожие. Схемы и исходники находятся в свободном доступе.
Vusbtiny. Отличается своей необычной простотой и маленькими размерами. USB интерфейс и поддержка ISP.
- < Назад
- Вперёд >