Эта статья – подробная инструкция как запрограммировать AVR микроконтроллер при помощи COM программатора и программы UniРrof.
Статья идентична предыдущей, за исключением выбора COM порта в качестве программирующего. Программа UniРrof абсолютно одинаково работает с обоими портами, что можно отнести к ее достоинствам.
Сначала обязательно прочитайте обзор UniProf, многое станет понятней.
Скачайте программу UniРrof.
uniprof_08_jun_10.zip (Одна Загрузка)
Кроме того, нам нужен 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 порт >
День добрый подскажите новичку как правильно прошить Attiny 13
спаял програматор с 5 проводов на ком порт установил програмку все сделал как описано по пунктам но при считывании появились все ячейки с нулями, и ни частоту красным не отражает, и синим не пишет модель.
5 проводов я подпаял, но для меня загадка что делать с +5в с 8 ногой контроллера? она висит в воздухе или нужно отдельно подать с источника питания на контроллер? я новичек в атмелах в инете пересмотрел все схемы и не увидел что делать нужно.
USBTiny работать не будет. Только с LPT и COM. SinaProg довольно удобная программка, конечно таких плюшек как у Юнипрофа нет, но что поделаешь.
Добрый день!
подскажите, а данная программа работает только с LPT и COM? А будет работать, на пример, с USBTiny?
А то я долго пользовался программатором Громова и привык к Юнипрофу — он удобен. Но возникла необходимость сменить комп, а там ни LPT ни COM портов нет 🙁
Сделать USB-программатор не проблема, просто не хочется менять UniProf на что-то другое.
Странная ошибка. Попробуй переустановить (загрузить по новой) Юнипроф.
@kazax1994
И постоянно выходит вот такая ошибка http://yadi.sk/d/fib1TbBy3ODX2
Собрал и ком программатор, и саму платку… при подключении к uniprof 2312 не находит, жмешь два раза на красную частоту, он просит выбрать МК… потом определяет её после включения и выключения питания, но я не чего не могу сделать, ни прошить, ни считать 🙁 В чем проблема? Спаянно все нормально, проверял раза 2-3 :((
В текущей версии программы вроде такого быть не должно — ищите проблемы в железа.
постоянно выдаёт ошибку надо 12 а есть 00 как указано в нижесказанной инструкции что делать? на F2 какую задержку желательно установить, и какой максимум можно? СПАСИБО!
Есть специальные ресурсы которые смогут разложить на биты
http://www.engbedded.com/fusecalc/
здравствуйте подскажите как выставить фьюзы hfuse=0x89 lfuse=0xAE в uniprof ?
Спасибо! Все теперь понятно более-менее..
фьюзы это отдельная область микроконтроллера которая управляет настройками работы кристала. Она никак не связана с программой микроконтроллера и изменять ее нужно лишь для того чтобы поменять источник тактового сигнала, частоту задающего генератора и тому подобные глобальные вещи.
Да, фьюзы считываются с МК
Тоисть, не нужно каждого разу жать читать и потом записать в МК флюсы? Правильно я понял.
Читать — это считывается бит с МК (не с тхт файла берется)?
Нет, не нужно — оставь как есть.
Все сделал по инструкции выше. Кроме пункта 7. Нужно ли что-то менять в настройках фьюзов если мне особая конфигурация не нужна? МК — только что с полки магазина.
Спасибо.
Работают.
A с ос WINDOWS 7 будут работать ваши изобретения?
А что с ней? По моему, ATtiny2313 сможет работать с той-же частотой, что и AT90S2313 (и даже больше).
А с частотой что делать?
Так переписывать и не придется, ATtiny2313 полностью совместим с AT90S2313 — все должно работать.
Программу переписывать не хочется.
Может со старыми микроконтроллерами Юнипроф не работает? Может попробовать на ATtiny2313?
*залоченым
Полное стирание не помогает. Юнипроф его видит. Я его новый купил в Митино-не должен быть золоченым.
Может он залочен? Юнипроф его видит? Полное стирание помогает?
Доброе утро.
У меня такая проблема: не хочет стираться AT90S2313. При чтении фьюз-битов юнипроф пишет, что этот МК не читает Look-и.
В чем проблема?
Спасибо. Скачал юнипроф 20-jan-2006. Всё заработало.
Предыдущую версию юнипрофа попробуйте — может неотловленный баг новой версии?
юнипроф «видит» ATTiny2313, но не читает HEX файл прошивки. проверял в понипрог-там нормально читается *.HEX, но ATTiny2313 читать не хочет
А юнипроф «видит» ATTiny2313? Прошивка загружена в программу? — такая ошибка выскакивает когда пытаешься прошить «пустое место»
Добрый день. Столкнулся с такой проблемой: хочу прошить ATTiny2313, но когда я нажимаю «Prog» выскакивает такая фигня: TProgressbar property out of range. В чем может быть проблема?
@GetChiper
Ой. Прошу прощения. Старый, слепой, ссылку не приметил, наехал. Больше не буду 🙂 Я вовсе не против публикации — наоборот.
Ой, а Вы и есть автор UniProf? Очень рад Вас видеть в моем блоге! Вы конечно правы, нужно было у Вас спросить разрешения на публикацию вашей программы.
Исправляюсь! Официально прошу разрешения на публикацию Вашей программы.
В линках уже есть ссылка на Ваш сайт. Сейчас поставлю ссылки возле каждой скачки.
Кстати, есть некоторые вопросы по программе. Если не против, на мыло отошлю?
Если Вы перейдете по ссылке «обзор UniProf», (http://www.getchip.net/posts/025-uniprof-universalnyjj-programmator-dlya-avr/) которая вначале статьи, то увидите, что в статье по юнипрофу есть и ссылка на авторский сайт и информация о авторе программы Михаиле Николаеве.
То же самое касательно и программатора Громова: http://www.getchip.net/posts/delaem-com-programmator-dlya-avr-mikrokontrollerov/. В статье указан автор Геннадий Громов, указан сайт программы Algorithm Builder.
К авторским вещам отношусь с уважением, приписывать себе чужие труды считаю ниже своего достоинства вообще и крайне вредной вещью для саморазвития в частности!
@GetChiper
Дык, может проще указать ссылочку на оригинал?
А то как-то несолидно… Не принято так.
Я, если использую схему Громова — так и пишу, схема не моя, Громов разрешил. Использую модуль вывода на LPT — говорю спасибо автору, хотя он свой проект в инете давно прикрыл. А вы юнипроф на своем сайте выкладываете… Да, он бесплатный, но приличия соблюдать надо 🙂
Совершено с вами согласен. Но как бывает,всё готово а с прошивкой засада. Так что жду помощи.Если это возможно.
Почему жаль? У Вас хороший программатор и Понипрог как и icprog хорошие программы для программирования.
Очень жаль. Вся надежда на вас. Или паять 5 проводков.
Да, такой программатор не будет работать с UniProf.
http://www.cqham.ru/progAVR_PIC.htm Схема моего програматора.
Буду очень благодарен за фьюзи для Понипрог. Мой програматор без проблем работает с Пони с icprog c WinPic800 а вот с UniProf нивкакую.
@nml
Действительно, автор обновил программу. Давно не заглядывал на страничку юнипрога. Обязательно обновлю в статье версию юнипрога. Спасибо, что подсказали!
@RADIY
Можно шить и Понипрогом. Только фьюзы в Понипроге ставятся инверсно тому, что я выкладываю в статьях.
Решил обновить статью по фьюзам, подробно все описать. Обновлю — выложу сообщение.
Подскажите можно вместо униПроф шить Понипрог? униПроф у меня ничего не видит. И как устанавливать фьюзы? Вопрос может банальный но для меня важный.
http://avr.nikolaew.org/progr.htm — тут лежит более новая версия программатора, надежнее работающая на шустрых компах, и еще добавлена возможность «ручками» править (и создавать новые) файлы сигнатур МК
А может проблема с ATmega8535?
— сгорела
— фьюзы неправильно выставлены
В ходе диплома делал устройство на ATmega8535, всё прекрасно работало. Теперь повторяю тоже самое, т.е. спаяно всё отлично и я знаю что делаю. Сделал уже 3 программатора, 5 проводков, потом его улучшенная версия, и этот программатор на СОМ-порт. Ни один не заработал 🙁 Шлейф 20 см, питаюсь от USB, ровно 5 В на устройстве, всё проверено тестером, схемы правильные. PonyProg и Uniprof не хотят видеть контроллер при любых настройках… неужели у меня оба порта, LPT и СОМ из строя вышли? Раньше я к ним совсем не прикасался. Может быть кто знает в чём проблема?
CKDIV8 — фьюз, при активации которого частота задающего генератора делится на 8. Ни как не связан с выбором источника для задающего генератора.
Про бегущие огоньки ничего не могу сказать так как не знаю как работает программа (но по логике, при уменьшении частоты задающего генератора, естественно, должна уменьшаться скорость работы программы).
Наверно, я немнога непонятно выразился 😉
Тиньку видит и шеьт нормально(УниПроф), токо когда земля от светиков отсоединина. Я токо начал ето дело изучать, так что не силен в МК, но немогу понять: при снятии флажка CKDIV8 — видит токо с внешним кварцем??? И еще, огоньки(http://radiokot.ru/start/mcu_fpga/avr/11/) бегают быстрей при настройке веутренего генератора на 4МГц, чем на 8Мгц :O
На порте Б стоят линии программирования диоды могут мешать программированию. А «голую» тиньку программатор видит?
Не знаю правильно ли работает, у меня, етот униПроф, но я немогу запрограмировать простые бегущие огни (8 светодиодов с резюками на порт Б), на тини2313, не отключив землю от етих диодов. УниПроф просто не видит тиньку, если не отключу землю. А Пони ВООбще не видит коетролера.
PS Напряга каждый раз отключат ету землю