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 11 286 times, 7 visits today)

028-UniProf – программируем AVR через COM порт.: 65 комментариев

  1. vitosik88

    Здравствуйте! Решил попробовать прошить 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 —
    Что сделал не так?

  2. GetChiper Автор записи

    Включен внешний резонатор до 3 МГц.
    Он стоит? Если нет — поставь и все заработает.
    И еще:
    — CKOUT — тебе нужен выход частоты задающего генератора на ножку МК? Если нет отключи — поставь галку.
    — WDTON вачдог таймер нужен? если нет — отключай.

  3. vitosik88

    @GetChiper
    Спасибо за помощь! Внешний кварц не стоит! Не знал что у разных программ нужно по своему ставить фьюзы. Еще раз спасибо!!!

  4. vitosik88

    @GetChiper
    Поставил часовой кварц с материнки-все равно не запускается.Пробовал с кондерами и без. Где еще может быть проблема?

  5. GetChiper Автор записи

    Часовой кварц не подойдет. Поставь обычный на 1-3 МГц.

  6. vitosik88

    @GetChiper
    Поставил кварц на 3.2768 Мгц — запустился! Спасибо за помощь!

  7. shekspeer

    Здравствуйте, а можно ли СОМ-программатором Громова и данной программой прошить чип atmega8a-au 1024. Просто с Китая привезли VagTacho 3.01 там чип atmega8a-au 1024. Чип определяет как mega8 но после нажатия кнопки Prog выдаёт ошибку.
    За ранее спасибо за помощь.

  8. GetChiper Автор записи

    В поддержке на сайте программатора такого чипа нет. Но он фактически копия меги8, нужно пробовать — как отреагирует программа.

  9. tab437

    ПОДКСКАЖИТЕ.
    Автор программы предлагает прошивать chipblasteravr.
    Там фьюзы помеченные у вас красным стоят на оборот где вкл там выкл.
    Так с программатором
    http://www.getchip.net/posts/delaem-com-programmator-dlya-avr-mikrokontrollerov/
    и с этой программкой, в каком положении нужно оставить фьюзы.
    Или как поступить?

  10. tab437

    Спасибо за ответ.
    Еще вопросик. В прог-ме chipblasteravr EESAVE=0 в UniРrof =1
    SPMEN=0 в UniРrof такого нет.
    Как поступить в этот случаи.

  11. GetChiper Автор записи

    SPMEN — этот чаще всего не нужен (разрешение записи в область флеша из программы — самопрограммирование), поэтому просто игнорируйте его

    кстати, правильно этот фьюз пишется SELFPRGEN

  12. tab437

    EESAVE=0 в UniРrof =1 ?как быть

  13. GetChiper Автор записи

    Ставьте что угодно, без разницы. Этот фьюз разрешает или запрещает стирать EEPROM при перепрограмировании кристалла.

Добавить комментарий