AVR программатор

21/08/2010 - 16:41

Введение

   Чтобы “оживить” микроконтроллер AVR, в его flash память нужно записать прошивку. Это процедура выполняется с помощью программатора - устройства, подключаемого между компьютером и микроконтроллером и работающего под управлением специальной программы.
   Наиболее популярным способом программирования микроконтроллеров AVR является внутрисхемное программирование по SPI интерфейсу. Как понятно из названия, этот способ позволяет программировать микроконтроллеры AVR прямо в составе схемы. Это очень удобно, потому что программу микроконтроллера в этом случае можно всегда модифицировать, не вынимая (не выпаивая) его из платы.
   Для внутрисхемного программирования микроконтроллеров AVR нужно вывести на разъем линии SPI интерфейса  - SCK, MISO, MOSI, линию сброса – RESET, а также плюс и минус питания (VCC и GND). 
   Существует две стандартных конфигурации разъема программирования – десяти и шести выводной. В качестве разъемов обычно используют — прямые/угловые разъемы серии IDC или   штыревые вилки PLD.

разъем для программирования AVR

Схема

   Принципиальная схема простого внутрисхемного программатора для AVR приведена на рисунке ниже. Разъем Х1 подключается к COM порту компьютера, а Х2 с помощью кабеля соединяется с платой.

схема AVR программатора
   Номиналы и типы элементов программатор понятны из схемы. Диод D1 можно заменить на 1N4148 или любой другой. Стабилитроны D2, D3 можно заменить аналогичными с напряжением стабилизации 5.1 или 4.7 вольт, например отечественными КС147А/2С147А (номиналы резисторов R3, R3 при этом нужно уменьшить до 2 Ком).

AVR программатор, собранный на макетной плате
AVR программатор - макет

AVR программатор, собранный на печатной плате
AVR программатор, собранный на печатной плате

PonyProg

   Прошивка микроконтроллера этим программатором осуществляется с помощью программы PonyProg. Скачиваем программу с официального сайта (v2.07c BETA для windows). Устанавливаем и запускаем ее.

   При первом запуске программа предупредит вас о том, что нужно провести калибровку и настроить PonyProg.
Запускаем калибровку — Setup > Calibration. В открывшемся диалоговом окошке жмем кнопку Yes.
Настраиваем PonyProg для работы с этим программатором - Setup > Interface Setup
В появившемся меню нужно только выбрать номер COM порта и нажать ОК.

  Далее... Выбираем тип программируемого устройства — Device > AVR micro > ваш микроконтроллер.
Открываем файл прошивки File > Open Program (FLASH) File... 
Не забудьте выбрать тип файла *.hex!

   Теперь можно программировать микроконтроллер.
Стираем его flash память - Command > Erase
Прошиваем новую программу - Command > Write Program (FLASH)
Наслаждаемся работой микроконтроллера.

  Можно немного автоматизировать эту процедуру.
Выбираем Command > Program Options
В открывшемся окне ставим галочки Erase и Write Program memory (FLASH). Жмем ОК.
Теперь стирание и программирование микроконтроллера будет выполняться одной командой — Command > Program.

Все перечисленные действия можно выполнять с помощью кнопок, расположенных под строкой меню.

Также PonyProg позволяет работать с EEPROM памятью, Fuse и Lock битами микроконтроллеров AVR.

Файлы

Печатка в формате Eagle - avr-programmator.brd

Comments   

# Guest 2010-08-22 13:17
6-ти пиновый разъем хрен где найдешь... Кстати не желаешь обменяться ссылками? Мой ресурс www.avrdevices.ru
# Guest 2010-08-22 13:35
уже поставил на тебя ссылку
http://avrdevices.ru/links/
# Pashgan 2010-08-22 14:15
Ага.. сегодня поставлю.
# Guest 2010-08-22 18:42
Видимо автор забыл упомянуть тот факт, что данный способен нормально функционировать лишь программатор лишь при наличии режима Bit Bang у COM порта (это когда есть возможность управлять каждой "ногой" порта в отдельности). Посему, на большинстве переходников аля USB-to-COM сей славный программатор работать не будет (исключение, пожалуй, составят преобразователи на микросхемах FT232 R-серии и FT2232... и иже с ними, обладающие указанным режимом). Что вызовет сильнейшее огорчение обладателей мобильных устройств...
# Pashgan 2010-08-22 19:19
А разве есть COM порты в чистом виде без наличия этого режима? Это вопрос, я просто не в курсе.
# Guest 2010-08-23 10:34
Если под фразой "в чистом виде" подразумевать порты, полностью удовлетворяющие стандарту, то - нет... Я же говорю, следует упомянуть, что если у вас преобразователь , то работать будет лишь при наличии режима bit bang. Зайдите, например, в магазин и купите стандартный преобразователь USB-COM, в 90% случаев основа его CP210X (без bit bang'а) - значит предложенный программатор работать не будет... Вот и все...
P.S. Я наверное занууудаааааа.. ...
# Pashgan 2010-08-24 18:59
Неа.. побольше бы таких зануд на сайте)
А нумерацию COM портов в компьютере можно как-то поменять? Например, COM12 сделать COM1 и наоборот?
# САБ 2010-08-24 20:53
Почему нет? в диспетчере устройств выбрать порт, его свойства и на одной из вкладок будет выбор номера порта.
# Pashgan 2010-08-25 20:31
Точно.. разобрался.
# San 2010-09-09 16:22
Я обладатель ноутбука без полноценного COM порта. Собрал USB программатор от Petka, аналог STK500 на FT232 и Atmega8. Прошивается без помощи других программаторов. Советую! Очень хорошо работает. :-) Мне не с чем сравнивать, но 4к прошивает примерно за 4 секунды.
# Guest 2010-09-13 20:16
промучался с программатором почти месяц, носил даже в Мастер кит, где мне показывали что всё работает. У меня же ничего не прошивалось. Причиной оказалось то что блок питания выдавал 5,2В, а не 5В. Как только я подал 4,5В , все сразу заработало. Кстати ваш сайт обнаружил несколько дней назад, до этого в гугле ни разу не попадался. Сайт супер. Я уже почти со всем, что здесь есть давно разобрался, но если бы раньше нашел этот сайт, сэкономил бы кучу времени. Спасибо огромное за проделанную работу
# Guest 2010-09-30 13:32
Отлично! Собрал по схеме - все работает! Спасибо автору! :lol:
# ДБ 2010-10-08 01:57
(номиналы резисторов R3, R3 при этом нужно уменьшить до 2 Ком).
не понял ты имел в виду один резистор R3
или два и при этом опечатался?
# Pashgan 2010-10-08 19:03
опечатка - R2,R3
# ДБ 2010-10-18 16:46
Вопрс чайника: с зелей что делать?
не понятно в COM порте есть уже земля или ее надо тащить :-*
# Pashgan 2010-10-18 17:44
GND- это все одна цепь. То есть 5-ый контакт разъема DB9 соединен с контактами 4,6,8,10. Ну и соответственно со стабилитронами и эммитером транзистора.
# Гость 2010-12-08 14:20
Выложите если можно файл печатки.
# Pashgan 2010-12-08 20:45
Выложил - http://chipenable.ru/files/devices/avr-programmator/avr-programmator.brd
# megawatt 2011-01-31 13:10
Не очень понятно, на схеме один транзистор, на печатке аж 3 штуки...
# JoJo 2011-02-01 22:52
Это не транзисторы, а стабилитроны. Просто у них корпус такой же.
# megawatt 2011-02-03 14:11
Quoting JoJo:
Это не транзисторы, а стабилитроны. Просто у них корпус такой же.
спасибо
# proger 2011-03-03 09:37
Какая-то нетрадиционная схема, однако. Если отбросить все формальности, то получится, что вход 3 идет на ресет, а 4 на Моси. Во всех схемах программатора Громова, которые я встречал, эти выходы наоборот подключены (4 - ресет, 3 - моси).
Это что, особенность PonyProg, которая не как все com-порт дергает? Или схема неправильно нарисована? Ну или я что-то не понимаю? :)
# Pashgan 2011-03-06 21:40
Программатор на такой схеме продает фирма Olimex.
Да, это особенность PonyProg, поэтому я и спрашивал выше, как изменить нумерацию COM портов.
# Роман 2011-05-19 00:16
Собрал программатор как на схеме при попытке стереть данные появляется окошко
Device missing or unknow (-24)
Это нормальная реакция программы на данный программатор
# ARTY 2011-12-02 11:31
Привет! Подскажите пожалуйста, собрал сие чудо девайс, программирую мк at90s2313 понька выдает "устройство неисправно или заблокировано" помогите решить проблему.
До этого собирал 7 разных программаторов, хот бы хрен.
# Илья 2012-01-21 18:42
Не работает, говорит "Write failed".
Кто-нибудь знает, что это может быть ?
# Илья 2012-01-22 07:57
Вопрос снимается (резистор 33ком был не рабочим). Теперь всё заработало.
Спасибо за схемку.
# Дмитрий 64 2012-02-29 13:15
Вопрос к автору.
На схеме один транзистор, на 2ом фото три?
И по поводу печатки, что то не грузится :(
# Pashgan 2012-12-25 06:12
Это не транзистор, это два стабилитрона и транзистор. Просто в одинаковом корпусе.
Чтобы загрузить печатку, кликни на нее правой кнопкой мыши и выбери "сохранить ссылку как"
# константин 2012-03-09 06:33
кто собирал?У кого заработало?
# Славік 2012-03-27 16:38
ету схуму очень много людей собирало и я в том числе в нескольких екземплярах.... работает просто супер!!!!
главное с виводами сом порта не напутать=))
# Pashgan 2013-02-04 20:52
Для тех кто в танке повторяю.
Трех выводные элементы на плате - это транзистор bc847 и два стабилитрона bzx84. Все три элемента в корпусах sot23. Хотите убедиться в этом сами, потрудитесь ознакомиться с даташитами.
http://www.vishay.com/docs/85763/bzx84-v-.pdf
http://hep.fi.infn.it/PAMELA/pdf/bc847.pdf
# Vlad 2013-02-07 16:30
А что за провод идет на вывод 2 разъема Х2?
# JoJo 2013-02-07 18:51
Со 2-го вывода берется 5 Вольт для резистора R5

У вас недостаточно прав для комментирования.