Electronics Engineering BLOG

Блог об электронике

Программатор для AVR usb. (AVR910)

| комментариев 17

Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_SitePrewiy
Для программирования микроконтроллеров AVR требуется программатор. Проще всего сделать программатор для COM либо LPT. Но я работаю на ноутбуке, а в них сейчас устанавливаются только USB порты. Вот и назрела необходимость обзавестись программатором для AVR по USB. Сейчас, я скорее всего купил бы данный программатор. На ebay они стоят недорого, наверное, даже дешевле чем купить детали, сделать плату и всё спаять. Хотя если посмотреть с другой стороны, заказ с ebay будет идти по почте не меньше месяца, а собрать программатор avr usb своими руками, в силу его простоты, можно за вечер. Более того, если начинающий радиолюбитель сам соберёт программатор, то в дополнении к программатору он получит опыт, бесценный опыт, а это дорогого стоит.
Это второй мой USB программатор для AVR, первым я сделал программатор USB-asp, но он мне не очень понравился, так как иногда отваливался от моего компьютера, хотя на другом компьютере ничего подобного не наблюдалось. Я решил попробовать собрать другой программатор, и мой выбор пал на программатор AVR910. У данного программатора немного по другому реализована схема подключения по USB, и как позже оказалась, на моём компьютере всё работает очень хорошо. Я забыл о проблемах, которые у меня были с моим прошлым программатором. Описанный в данной статье программатор AVR910 является на данный момент моим основным программатором для AVR.
Схема и прошивка использованы с сайта проекта (http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm).
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_AVR910
Питается программатор от USB порта. Для того чтобы не требовалось согласование с уровнями линий данных USB порта (3.6В) питание микроконтроллера составляет 3.6В. Для получения из 5В в USB порте 3.6В, используется схема их двух последовательно прямо включённых кремниевых диодов. На каждом диоде падает по 0.7В, а в сумме получается 1.4В. Диоды должны быть кремниевыми, не допускается использование диодов шотки, так как на них падает меньше 0,7В. Выходы разъёма программирования подключены через резисторы на 330 Ом для согласования уровней. Работает устройство на микроконтроллере AtMega8-16 на тактовой частоте 12МГц. На схеме приведены номера выводов для микроконтроллера в DIP корпусе, хотя я отраcсировал плату под SMD корпус, который называется TQFP. Программатор имеет индикацию записи, чтения, наличия питания. Также данный программатор имеет выход, на котором всегда присутствует меандр, частотой 1 МГц. Это очень классная и полезная штука для восстановления микроконтроллеров, у которых из-за ошибочно запрограммированных Fuse битов тактирование сконфигурировано от внешнего источника тактовых импульсов. Я таким образом уже несколько раз восстанавливал микроконтроллеры. Нужно всего лишь посмотреть в даташите на конкретный микропроцессор AVR, к какому выводу подключается внешний источник тактового сигнала, и подпаять к данному выводу источник меандра. Подключить программатор, и перепрограммировать fuse. Всё очень просто, но иногда здорово выручает!
Имеющиеся варианты реализации печатных плат под программатор AVR910 не совсем меня устраивали, и я выполнил трассировку своего варианта (скачать файлы проекта можно в конце статьи).
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_Плата
Защитный рисунок на фольгированный стеклотекстолит нанесён при помощи лазерного принтера и утюга.
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_Плата-защитный-исунок
После травления получилась вот такая красота. Я не сдержался, и процарапал тонер на дорожках между ножками микросхемы. Мне не терпелось проверить получились они или нет.
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_Протравленная-плата
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_ПлатаЛужённая
Для удобства пользования я отметил назначение каждого вывода программатора AVR910. Для это я нарисовал небольшую табличку, которую напечатал на глянцевой фотобумаге и наклеил на плату программатора двусторонним скотчем.
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_Programator
Групповую заготовку для таблички для печати на фотобумаге размером 10х15 я положил в архив со всеми файлами к данной записи. Скачать его можно в конце данной статьи.
Прошивку для программатора можно скачать по ссылке в конце статьи.
Fuse биты устанавливаются с соответствии с рисунком ниже:
Программирование-AVR_Установил-fuse-AtMega8-CKOPT,-SUT0-и-BODEN
Как запрограммировать микроконтроллер AtMega8 для программатора AVR910 можно посмотреть в моём видео:
Программирование AVR.
Корпус для программатора AVR910 я не смог подобрать, мне хотелось, чтобы программатор оставался маленького размера, и изначально я пользовался голой, никак не изолированной платой. Но затем я купил широкую прозрачную термоусадку и усадил в неё программатор. Что в итоге получилось вы видите на фото. По моему довольно интересно и даже симпатично.
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_Готовый-вид_снизу
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_Готовый-вид_сверху
С термоусадкой всё кажется просто, но мне было сложно сделать отверстия под штыри. Если протыкать отверстия шилом, то при усадке термоусадочная трубочка рвётся начиная от данных отверстий. Я даже испортил несколько заготовок, но у меня в конце экспериментов всё получилось. В итоге я отверстия не протыкал, а проплавлял горячим паяльником с жалом иглой. По краям платы я спаял концы термоусадочной трубки. Спаиваются они очень просто – нагреваются оба конца трубочки, затем быстро, пока они не успели остыть, зажимаются и удерживаются зажатыми до полного остывания. Получается достаточно прочный спай. Я зажимал медицинским зажимом, на термоусадке даже остались следы от насечек на его губках.
При первом подключении к компьютеру программатора AVR910 в системе появится новое устройство AVR910. Теперь необходимо установить драйвера и можно работать.
Я работал с данным программатором на 32 битных системах Windows XP и Windows 7. Всё работает очень хорошо и никаких проблем не возникает. Проблемы возникли у меня когда я попытался установить драйвера для 64 битной Windows 7. Дело в том, что этот драйвер не имеет цифровой подписи Microsoft и 64 битный Windows 7, будучи более защищенным в безопасности, блокирует все драйвера без цифровой подписи. Эту блокировку можно отключить, но это не совсем просто….. Так что имейте ввиду.
Заливаю прошивку в микроконтроллер я при помощи программы AvrOsp2. Она очень простая, не требует установки, бесплатна, поддерживает программатор AVR910 и огромное кол-во микроконтроллеров АВР, хорошо работает и имеет очень удобное меню для работы с FUSE битами. В общем, классная программка, мне она очень нравится, рекомендую! В видео ниже я показал процесс установки драйверов для AVR910, как настроить и пользоваться программой AvrOsp2.


В моей версии программатора я не установил выводной электролитический конденсатор на 22 мкФ, который устанавливается со стороны противоположной дорожкам и паяется в отверстия, которые находятся возле разъёма USB. Возможно потребуется установить дополнительный электролитический конденсатор ёмкостью 10-50мкФ параллельно впаянному керамическому конденсатору 0.1 мкФ, возле зелёного светодиода PWR. Ниже на картинке, от руки показаны места подключения.
Программатор-для-AVR-usb.AVR910_Programmator-dlja-AVR-usb

Для работы программатора необходим микроконтроллер способный работать до 16 МГц. AVR AtMega8 выпускается в двух сериях, работающих до 8 МГц (серия L), они нам не подходят, так как проект работает от кварца на 12 МГц. Есть и обычная версия, которая работоспособна вплоть до частоты 16 МГц. Это то, что нам нужно. Ниже представлен кусочек даташита AVR AtMega8, в котором вычеркнуты версии микроконтроллеров которые не буду работать в данном программаторе, и выделены зелёной рамкой версии микроконтроллеров которые будут работать в данном проекте.
Программатор-для-AVR-usb.(AVR910)_Programmator-dlja-AVR-usb.(AVR910)_Применяемые-микроконтроллеры

Скачать файлы проекта можно по ссылке — Programmator-dlja-AVR-usb.(AVR910)

UPDATE: Слава Корнев прислал модифицированную версию печатной платы. Модификация заключается в смене разъёма на ISP10.
Программатор-AVR910-с-ISP-коннектором_01Программатор-AVR910-с-ISP-коннектором вид_сверхуПрограмматор-AVR910-с-ISP-коннектором вид_снизу
Скачать можно здесь: Программатор-AVR910-с-ISP-коннектором

17 комментария

  1. Pingback: Программирование AVR. | Electronics Engineering BLOG

  2. Здравствуйте спаял данный программатор но когда подключаю его к компьютеру не горит светодиод хотя система его видит и драйвера ставятся нармально поставил резисторы на 220 ом все равно не горит что может быть

    • Здравствуйте. Какой именно не горит? Тот который индицирует питание (зелёный)? Проверьте полярность его включения.

  3. Здравствует у меня проблема хочу посоветоватся надо запрогромировать микросхему ATxmega256A3U-AU. Какой прогромматор нужен и програма к ней?

    • Здравствуйте. Что за деталь подключена к ножке 2 разъема ISP10
      на плате Славы Корнева?

      • Привет. На 2 контакт подводится + питания, если вы захотите питать програмируеое устройство от программатора.

  4. Здравствуйте, интересует такой вопрос, можно ли заменить ATmega8-16 на ATmega8A?

  5. Здравствуйте. Я по ошибке в Attiny 2313 запрограммировал SPIEN . Скажите пожалуйста, куда надо подвести LED с данного программатора и как восстановить Тиньку, ведь по описанию им можно это сделать?

    • Привет. Каким именно программатором вы смогли запрограммировать данный бит? Ни AVR910 ни USBasp не сможет этого сделать, так что скорее всего вы что-то путаете.

  6. Здравствуйте!
    Программатор AVR910 (Protoss), с AVRProg-ом (из комплекта AVRStudio 4.18), работает прекрасно, но с AvrOspII, взятой из архива к этой статье, наблюдается странный глюк. Программатор нормально определяется, определяется сама AVR-ка, но за раз можно выполнить только одно действие (считать/записать прогу, или фьюзы, или определить контроллер), потом, приходится передёргивать разъём USB и можно снова сделать одно действие. От чего этот глюк, и как бы его можно пофиксить? Система WXP SP3 32.

    • Скорее всего данный голюк из-за софтового USB на данном программаторе. Часто бывает что на одном компьютере работает прекрасно, а на другом вообще не заводится, но это редкость.

  7. Мой вариант сборки программатора! все красиво и аккуратно и понятно

    • Привет. Спасибо. Если хочешь — пришли в zip архиве свой проект платы и я его прикреплю к статье, возможно ещё кто-то захочет его повторить.

  8. » Проблемы возникли у меня когда я попытался установить драйвера для 64 битной Windows 7. Дело в том, что этот драйвер не имеет цифровой подписи Microsoft и 64 битный Windows 7, будучи более защищенным в безопасности, блокирует все драйвера без цифровой подписи. Эту блокировку можно отключить, но это не совсем просто….. Так что имейте ввиду.»

    Перед загрузкой Windows 7 нажмите F8. Выберите «Отключение обязательной проверки подписи драйверов». Загрузите ОС. Поставьте драйвер. Недостаток такого способа один: когда нужно будет работать с программатором, то при загрузке заходить в вышеописанный режим. Но, зато работает.

  9. Думаю, что если _аккуратно_ завернуть в пищевую пленку, то выйдет даже симпатичнее. А если уж запаивать концы, то можно просто полиэтиленовый пакетик. Если нужна обтягиваемость — можно взять (более прозрачную) пленку с коробки конфет или других продуктов, где явно видно, что она термоусаживаемая (плотно обтягивает упаковку). А ещеее… можно взять просто бутылку из-под напитков — они тоже термоусаживаемые… Может даже круто выглядеть будет, лучше чем покупная термоусадка..

  10. Автор! Молодца, что ухитрился собрать такую штучку, конечно… НО, БЛИН!!!
    Неужели нужно тыкать в плату кочергой ( судя по качеству пайки! ), и что, в вашем населен ом пункте кончился бензин? Нельзя было плату от того дерьма отмыть, прежде чем выкладывать фото в нет?
    Я понимаю, что надо похвастаться, но такими фото всю малину обгадил, чес.слово…

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

Обязательные поля отмечены *.