Как прошить микроконтроллер ATmega, AVR
Сохранить в соц.сети:
Написать комментарий(мгновенно) Добавить свой обзор/запись
Прошиваем микроконтроллер AVR.
Смотрите также:
-Как написать код для AVR, программирование микроконтроллеров Atmel AVR на Си
—Эмуляция AVR в Proteus, микроконтроллеры в Proteus
—Простой ШИМ на ATTiny13.Регулируем всё
—Работа с дисплеем HD44780 на AVR.Запись своих символов
Как и чем прошить avr микроконтроллер.
1)Прежде всего для прошивки микроконтроллеров Atmel AVR необходим программатор, например для прошивки через USB-порт такой — USB ASP Программатор микроконтроллеров ATmega AVR
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-флешку.
Сохранить в соц.сети:
lampcore.ru
Прошивка AVR микроконтроллеров с «нуля» / Микроконтроллеры / Блоги по электронике
Микроконтроллеры семейства PIC мы уже научились прошивать вот из этой статьи. Но, существует не менее популярное семейство AVR микроконтроллеров. В этой статье для начинающих будет рассмотрено как же «залить прошивку» в контроллеры AVR.Еще когда я только начинал осваивать контроллеры семейства AVR сразу встал вопрос, а чем же я буду их прошивать. Как и полагается «полез» в интернет. Много чего я там по находил!
Вариант 1. Прошивка контроллера при помощи технологии «пяти проводков»
Микроконтроллер AVR имеет следующие основные выводы программирования:
MOSI — вход данных
SCK — вход синхронизирующих импульсов
REST — сигнал сброса
Так вот, суть технологии «пять проводков» заключается в том, что выводы программирования
контроллера подключаются напрямую к LPT порту компьютера. Пяты проводок — это общий провод.
Вот схема подключения:
Питание на программируемый микроконтроллер в этой схеме подается от отдельного источника.
Обратите внимание на перемычки между контактами 2-12, 3-11. По наличию этих перемычек программа «прошивальщик» определяет подключение к LPT порту программатора.
Кабель соединяющий компьютер и программатор должен быть экранированный, проводки, соединяющие контроллер должны быть минимальной длины, иначе, посыпятся ошибки при прошивке контроллера.
Это, конечно самый простой способ прошить AVR контроллер. Но у него есть и куча недостатков. Самый большой недостаток — это очень большая возможность «спалить» LPT порт, да и всю материнскую плату, так как никакой защиты для порта не предусмотрено. Но, не все еще потеряно.
Вариант 2. Существуют программаторы, в которых предусмотрена защита. Вот такой нам и нужно собрать, и компьютер цел останется и нервы в порядке.
А будем собирать программатор под названием 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!
electronics-lab.ru
Краткая инструкция по прошивке микроконтроллеров AVR c помощью Avrdude-GUI (пример использования, заливка hex-файла)
Скачиваем (СКАЧАТЬ AVRDude + GUI) и разархивируем папку AVRdude-GUI в Program Files (можно в любую другую), установка не требуется.
- Запускаем avrdude-GUI.exe, указываем путь к пакету AVRDude «avrdude.exe File»:
- Выбираем свой программатор и порт «Programmer» «Port» (список поддерживаемых программаторов внизу статьи).
У меня вот такой:Я выбираю следующую настройку программатора:Если у вас один из самых распространенных: Китайских ISP программаторов (USBASP USBISP AVR), то необходимо выставить следующие настройки: - Выбираем свой микроконтроллер «Device». В последнее время я использую ATMEGA328P, а точнее, плату на Алиэкспресс Arduino Nano v 3.0, предварительно удалив стандартный загрузчик arduino (кнопка «Chip Erase»), после чего получаю чистый микроконтроллер.
- В «Command Line Option» вписываем настройки. Я использую ключ –F (список поддерживаемых команд в конце статьи):
- В графе «Fuse» можно считать или записать фьюз-биты (используйте калькулятор фьюзов AVR). Для проверки связи с программатором и микроконтроллером, нажимаем «Read», внутри блока «Fuse». Если всё нормально, должны считаться биты подключенного микроконтроллера:
- В разделе «Flash» выбираем файл прошивки (hex файл), затем нажимаем «Erase-Write-Verify», после чего произойдёт очистка Flash памяти микроконтроллера, запись прошивки в контроллер, верификация данных (программа зависает ненадолго, это нормально, зависит от размера файла):
Вот и всё, прошивка залита в чип.
Видеоверсия статьи
Список поддерживаемых программаторов
Перечень поддерживаемых микроконтроллеров AVR фирмы Atmel
Список поддерживаемых команд (поле «Command Line Option»)
Ссылки по теме
Официальные страницы и описание:
Адрес официального сайта программы
Адрес официального сайта пакета GUI
Википедия
Вам также может понравиться:
No related posts found.tehspravka.org
cxema.org — Прошивка микроконтроллеров AVR
Прошивка микроконтроллеров 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 тут
- < Назад
- Вперёд >
vip-cxema.org
Программаторы AVR. Как прошить микроконтроллер
- Подробности
- Категория: Микроконтроллеры
- Опубликовано 13.08.2015 14:53
- Автор: Admin
- Просмотров: 6486
Прошивка микроконтроллера — это запись (копирование) в его память определенной программы. Программа представляет собой специальный код в шеснадцатеричном формате (файл с расширением 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.
- < Назад
- Вперёд >
Добавить комментарий
radio-magic.ru
Прошиваем AVR — ку — Паркфлаер
Да, к стати, описывать я буду AVR микроконтроллеры (tiny, mega), просто их великое множество, и так, поехали!
Начну с пояснений, что есть что и зачем это надо.
Сама так называемая «прошивка» — это файл с расширением «.hex» — это и есть программа, благодаря которой оживает микроконтроллер, установленный на вашей плате, без прошивки такая плата – просто кучка бесполезных радиодеталей! Именно её мы и скачиваем с просторов инета.Так же в папке с скачанной «прошивкой» может находиться и ещё один файл с расширением «.eep» — это не рабочая программа, а просто данные, которые использует основная программа, то есть временнЫе калибровки импульсов или на пример «домашние» координаты GPS, или фэйл сэйв и тому подобное, да просто всё, что угодно, что нужно сохранить в памяти и не настраивать заново плату после выключения питания.Файл «.hex» шьётся в FLASH контроллера. Файл «.eep» — в EEPROM. Об этом подробнее ниже.Так же существуют так называемые «фьюз биты» — они отвечают за настройку самого контроллера – это тактовая частота, пониженное напряжение до сброса, сторожевой таймер – защита от зависания, биты защиты от считывания прошивки – их устанавливает производитель, что бы не тырили прошивку! Ну и кое чего ещё…
На фьюзах можно не заострять внимание, если Вы просто перепрошиваете какую-то рабочую плату, на пример ESC для коптера для улучшения его характеристик…
Далее про мозги.
Все AVR-ки, запаянные на плате шьются по 6-ти проводам:
MOSI
MISO
SCK
RESET
Vcc – «+5В»
GND или Vss – «земля»
Именно так названы провода, выходящие с платы программатора!
И точно так же называются выводы микроконтроллера – их можно найти в документе под названием «datasheet».
Вот скриншот со второй страницы даташита для примера:
Это скрин ATmega8A-AU – красным потому, что это нам знать не обязательно.
И так: смотрим на нашу плату, находим микроконтроллер, читаем его название, скачиваем даташит и находим нужные нам ножки и скорее всего эти ножки соединены с штырьковой колодкой, распаянной на плате.
Далее про программатор.
Их, как и семейств контроллеров – множество!
Когда-то я пользовался на прямую LPT портом, потом собрал STK 200/300
Потом «AVR-910»
Всё это нравилось, пока я просто занимался повторением чужих конструкций. А уж как и сам научился писать прошивки, их скорости стало катастрофически не хватать – пришлось делать «USBASP», в то время я ещё не знал, что его можно купить здесь… USBASP а везде в инете тогда предлагали за 1000!
Пришлось делать самому Только вот проблема — что бы сделать такой программатор – нужен программатор. И если не у кого взять – то проще купить готовый.
Ещё бывает «Параллельное» программирование – это конечно очень быстро, но дорого!
Далее про оболочку.
Оболочка – это и есть та программа, которая устанавливается на компьютер, их тоже много красивых, функциональных и не очень… Всё их отличие в основном – это список поддерживаемых микроконтроллеров и программаторов. Именно в эту программу вставляются файлы «.hex» и «.eep», именно эта программа заливает прошивки на наши платы (через программатор конечно же), именно она переключает фьюзы…
Как я уже говорил – таких программ много. AVR Studio, CVAVR, AVRGCC и т.д. – это всё пакеты, в них пишется текст программы для контроллера, оптимизируется, компилируется и заливается в контроллер. Сам я пользуюсь CVAVR 2.05, но в ней нет поддержки программатора USBASP. По этому приходится пользоваться простыми оболочками, такими, как Khazama, AVRDUDE, SinaProg, ExtremeBurner и т.д.
Ну а теперь постараюсь наглядно показать, как всё это происходит, режиссёр из меня конечно не очень, да и голос далеко не дикторский.
Пояснение:
На макетной плате стоит микроконтроллер ATtiny13A, светодиод с ограничительным резистором, кнопка и подтягивающий резистор на вывод RESET.
Что будет делать контроллер? Он будет мигать светодиодом, за это отвечает файл «.hex». Короткими нажатиями на кнопку я буду увеличивать скорость моргания и эта скорость будет сохраняться в памяти – за это отвечает файл «.eep».
В качестве оболочки буду использовать «Khazama».
Смотрим.
www.parkflyer.ru
Программы для прошивки AVR — Меандр — занимательная электроника
Программ для прошивки AVR микроконтроллеров существует множество. О них и пойдёт речь.
Одна из самых популярных программ – PonyProg. Выглядит она следующим образом:
В центре тут окно, в которое загружается программа. В строке Device Type можно выбрать семейство и модель микроконтроллера. Эта программа предназначена в основном для простейших программаторов вроде STK200 или COM портовых прогеров. Чтобы выбрать программатор нужно нажать в верхнем меню Setup и далее Interface Setup. Откроется вот такое окно:
Тут можно выбрать порт компьютера, к которому подключён программатор и тип программатора. С зашивкой программы во флеш или 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
meandr.org