Эта статья – подробная инструкция как запрограммировать AVR микроконтроллер при помощи COM программатора и программы UniРrof.
Статья идентична предыдущей, за исключением выбора COM порта в качестве программирующего. Программа UniРrof абсолютно одинаково работает с обоими портами, что можно отнести к ее достоинствам.
Сначала обязательно прочитайте обзор UniProf, многое станет понятней.
Скачайте программу UniРrof.
uniprof_08_jun_10.zip (68507 Загрузок)
Кроме того, нам нужен COM программатор, а также, отладочная плата с разъемами для подключения программатора (для примера возьмем отладочную плату с ATTiny2313). Вот пожалуй и все что нам нужно.
Окно UniРrof выглядит так:
Теперь пошагово опишем сам процесс программирования при помощи COM программатора:
1 Подключаем программатор к COM порту.
2 Подключаем программатор к плате микроконтроллера, подаем питание на микроконтроллер.
3 Запускаем UniРrof (если еще не запущен), выбираем в поле «Программатор подключен к» COM порт. Если Вы не знаете номер своего COM порта, просто по очереди переберите все. Синим должно отобразиться название микроконтроллера. Для проверки надежности связи тыкаем несколько раз в красную системную частоту. Если на каком либо этапе выпадает такое окно, то связь ненадежна – ставим галочку «тормоз» — и проверяем заново.
4 Нажимаем кнопку загрузить «HEX», выбираем нужный файл-прошивку. В окошке «PROGRAM» появятся цифры – наша программа.
5 Нажимаем кнопку «Erase» — стираем микроконтроллер. Если происходят ошибки — ставим галочку «Тормоз».
6 Нажимаем кнопку «Prog» — записываем программу в микроконтроллер. Если происходят ошибки — ставим галочку «Тормоз», повторно стираем и снова программируем. Программа записана, осталось записать фьюзы.
7 Обязательно ставим галочку «Тормоз»! Нажимаем кнопку «FUSE», видим окошко, в котором 4 отделения (4 конфигурационных байта контроллера). В каждом отделении нажимаем кнопку «Read» считываем текущие значения (это уменьшит вероятность ошибки при вводе новых значений). Вводим новые значения фьюзов. Особое внимание обращаем на обведенные красным фьюзы. Они должны остаться в таком же состоянии, иначе дальнейшее программирование станет невозможным. Нажимаем «Write» в каждом из окошек (первое окошко – защитные биты – можно не трогать). Готово, фьюзы прошиты!
8 Снимаем питание с микроконтроллера, отключаем программатор от платы – микроконтроллер прошит, устройство готово!
Что делать если:
— не найден микроконтроллер – проверьте правильность подключения программатора к контроллеру, проверьте питание контроллера (должно быть +5v), попробуете поменять порт (если есть несколько);
— не распознается контроллер – поставьте галочку «тормоз», покликайте несколько раз красную системную частоту, поставьте керамический конденсатор на ножки питания контроллера, если длинна шлейфа большая, возможно большие помехи мешают – уменьшите длину шлейфа;
— прошивка записывается с ошибками — поставьте галочку «тормоз», покликайте несколько раз красную системную частоту, поставьте керамический конденсатор на ножки питания контроллера, если длинна шлейфа большая, возможно большие помехи мешают – уменьшите длину шлейфа;
— после записи фьюзов контроллер перестал читаться / писаться – что-то Вы напутали с установкой фьюзов – теперь Вам поможет только параллельный программатор . Как альтернативный вариант можно собрать «Atmega fusebit doctor»
P.S. Нужно прошить кроме Flash еще и EEPROM?
Все просто! Сначала ставим галочку EEPROM — появится окошко EEPROM (Галочку «тормоз» нужно поставить до этого!). Далее открываем HEX-файл, автоматически программа найдет и загрузит EEP-файл (заполнятся данными оба окошка PROGRAM и EEPROM). Если юнипроф сам не определил EEP-файл откроется диалог выбора файла. Далее действуем как описано выше. При нажатии кнопки «Prog» программируется и Flash и EEPROM. Вот и все!
Подробная инструкция по прошивке через LPT порт >
Ставьте что угодно, без разницы. Этот фьюз разрешает или запрещает стирать EEPROM при перепрограмировании кристалла.
EESAVE=0 в UniРrof =1 ?как быть
SPMEN — этот чаще всего не нужен (разрешение записи в область флеша из программы — самопрограммирование), поэтому просто игнорируйте его
кстати, правильно этот фьюз пишется SELFPRGEN
Спасибо за ответ.
Еще вопросик. В прог-ме chipblasteravr EESAVE=0 в UniРrof =1
SPMEN=0 в UniРrof такого нет.
Как поступить в этот случаи.
В статье http://www.getchip.net/posts/068-kak-pravilno-proshit-avr-fyuzy-fuse-bit/
я все это описал
ПОДКСКАЖИТЕ.
Автор программы предлагает прошивать chipblasteravr.
Там фьюзы помеченные у вас красным стоят на оборот где вкл там выкл.
Так с программатором
http://www.getchip.net/posts/delaem-com-programmator-dlya-avr-mikrokontrollerov/
и с этой программкой, в каком положении нужно оставить фьюзы.
Или как поступить?
В поддержке на сайте программатора такого чипа нет. Но он фактически копия меги8, нужно пробовать — как отреагирует программа.
Здравствуйте, а можно ли СОМ-программатором Громова и данной программой прошить чип atmega8a-au 1024. Просто с Китая привезли VagTacho 3.01 там чип atmega8a-au 1024. Чип определяет как mega8 но после нажатия кнопки Prog выдаёт ошибку.
За ранее спасибо за помощь.
@GetChiper
Поставил кварц на 3.2768 Мгц — запустился! Спасибо за помощь!
Часовой кварц не подойдет. Поставь обычный на 1-3 МГц.
@GetChiper
Поставил часовой кварц с материнки-все равно не запускается.Пробовал с кондерами и без. Где еще может быть проблема?
@GetChiper
Спасибо за помощь! Внешний кварц не стоит! Не знал что у разных программ нужно по своему ставить фьюзы. Еще раз спасибо!!!
Включен внешний резонатор до 3 МГц.
Он стоит? Если нет — поставь и все заработает.
И еще:
— CKOUT — тебе нужен выход частоты задающего генератора на ножку МК? Если нет отключи — поставь галку.
— WDTON вачдог таймер нужен? если нет — отключай.
Здравствуйте! Решил попробовать прошить ATTiny2313. До прошивки все было нормально. После прошивки мк не определяется. Фьюзы выставлял так:
CKSEL0 v
CKSEL1 v
CKSEL2 —
CKSEL3 v
SUT0 v
SUT1 —
CKOUT —
CKDIV8 —
RSTDISBL v
BODLEVEL0 —
BODLEVEL1 v
BODLEVEL2 —
WDTON —
SPIEN —
EESAVE —
DWEN v
LB1 —
LB2 —
SELFPRGEN —
Что сделал не так?
На контроллер перед программированием нужно подать 5Вольт.
Вот как это делается http://www.getchip.net/posts/prostaya-otladochnaya-plata-dlya-otladki-ustrojjstv-na-attiny13/