028-UniProf – программируем AVR через COM порт.

Автор: | 03.04.2010

ТитлЭта статья – подробная инструкция как запрограммировать AVR микроконтроллер при помощи COM программатора и программы UniРrof.

Статья идентична предыдущей, за исключением выбора COM порта в качестве программирующего. Программа UniРrof абсолютно одинаково работает с обоими портами, что можно отнести к ее достоинствам.

Сначала обязательно прочитайте обзор UniProf, многое станет понятней.
Скачайте программу UniРrof.
UniProf - Программатор для AVR. Смотрим avr.nikolaew.org

Кроме того, нам нужен COM программатор, а также, отладочная плата с разъемами для подключения программатора (для примера возьмем отладочную плату с ATTiny2313). Вот пожалуй и все что нам нужно.

Окно UniРrof выглядит так:

Главное окно uniprof

Теперь пошагово опишем сам процесс программирования при помощи 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 порт >

(Visited 5 594 times, 12 visits today)

There are 65 comments

Комментарии подгрузятся после небольшой паузы.