Универсальный USB программатор. USB-программатор (AVR): описание, назначение Включение самодельного программатора юсб порт

Конкурс начинающих радиолюбителей
“Моя радиолюбительская конструкция”

USB AVR программатор

Схема и программное обеспечение простого высокоскоростного USB AVR программатора, который может собрать своими руками и начинающий радиолюбитель

Конкурсная конструкция начинающего радиолюбителя –
“USB AVR программатор”

Здравствуйте уважаемые друзья и гости сайта!
Представляю на ваш суд вторую конкурсную работу.
Автор конструкции – Григорьев Илья Сергеевич .
Теперь на нашем сайте не только “Лед тронулся”, но и “Заседание продолжается”.

USB AVR программатор

Немного о данной конструкции.
На первый взгляд кажется, что эта схема сложна, не “по зубам” начинающим, а автор – уже довольно опытный радиолюбитель.
Смею всех заверить, Илья Сергеевич – начинающий радиолюбитель. А своей конструкцией он доказал, что при желании, настойчивости, целеустремленности, конструкцию такой сложности сможет собрать любой начинающий радиолюбитель.
Ну а теперь, слово автору.

Григорьев Илья Сергеевич, город Хабаровск

Всем привет!
Представляю на ваш суд вторую свою завершенную работу (первая- простая мигалка).
Решил, что в будущем буду собирать схемы, на основе каких-либо микросхем, которые нужно программировать, для чего нужен, собственно говоря, программатор!
В интернете огромное количество схем, на любой вкус, но основная проблема и замечание к схемам – это то, что у меня нет ни LTP, ни COM порта, остается вариант USB программатора. Но и тут есть своя загвоздка – для большинства программаторов, для начала работы, их микросхемы нужно запрограммировать на работу, а для этого нужен… – правильно, программатор! Можно было конечно собрать программатор Громова, пройтись по друзьям и найти LTP или COM порт, но мне этого не хотелось. Оставался последний вариант – это использовать программатор на основе микросхемы FT232RL, минус у этого программатора и у этой микросхемы только цена последней – она у нас в Хабаровске стоит в районе 230 рублей. Я решил на таком денег не экономить и взяться за сборку программатора на FT232RL.

Итак, список деталек:
Это сердце программатора – FT232RL . Цена- 230р
Вторая микросхема- 74HC244, она нужна, т.к у этого программатора есть еще один минус - он не отдает линию RESET по завершении программирования. Поэтому, чтобы схема стартанула, надо выдрать из платы разьем ISP, что очень неудобно. Это можно решить просто добавив к этой схеме буфферную микросхему 74HC244. Цена 20-30 р
И далее набор мелочевки:
– 4 резистора по 47 Ом
– 4 резистора по 100 Ом
– 1 резистор на 4.7 Ком
– 3 резистора на 300 Ом
– 3 кондера по 0.1u
– 3 светодиода(к,з,ж)
– 1 диод Шоттки (чтобы возможный обратный ток от прошиваемого устройства не сжег программатор и ПК)
– 1 USB type B, его еще называют принтерным
Вот и все, что надо! Мелочевка стоит в районе 50 рублей
Все компоненты я брал в обычном исполнении и smd, т.к. до конца не знал, как получится у меня работа с smd компонентами, вдруг пришлось бы собирать большой вариант.

Вот сама схема:

Принцип работы.
Программатор запитывается от USB порта. Уровни выходных сигналов программатора с помощью джампера JP1 могут быть заданы или 5-ти вольтовыми, или 3-ех вольтовыми.
Напряжение питания программатора может быть подано через разъем X2 на программируемую плату, для чего нужно замкнуть джампер JP2.
Следует иметь ввиду, что при 5-ти вольтовом питании напряжение подается с USB порта. И максимально ток, который можно получить с программатора, ограничен величиной 500 мА. Однако для такого тока микросхему FT232 нужно настроить с помощью утилиты FT Prog.
При 3-ех вольтовом питании напряжение берется с выхода внутреннего стабилизатора микросхемы FT232, максимальный ток которого равен порядка 50 мА.
Для предотвращения подачи питания на USB порт от внешнего устройства на программаторе установлен диод Шоттки (у них маленькое падение напряжения в прямом направлении). При желании диод VD1 можно заменить обычным диодом или перемычкой, но эту уже на ваш страх и риск.
Также программатор можно использовать как USB-UART преобразователь. Для этого на разъем Х2 выведены сигналы RXD, TXD и подключены светодиоды LED2, LED3. Они вспыхивают, когда происходит передача данных.
Программатор не нужно отключать от программируемой платы, потому что после программирования микросхема DD1 переводит выходные буферы в третье состояние.
Светодиод LED1 загорается, когда идет процесс программирования.
На контактную площадку JP можно вывести тактовый сигнал. Для этого требуется конфигурирование FT232 с помощью утилиты FT Prog.

Сам процесс сборки.
Сначала я распечатал схему на глянцевый листок от журнала (использовал и фотобумагу и клейкую бумагу для принтера, все не то… самый лучший эффект – это печать схемы на глянцевом журнале). Потом, после соединения глянцевого листочка с кусочком текстолита, начинаем гладить утюгом, выставив на нем максимальную температуру. Сначала я приложил утюг прям на листик, что бы он приклеился к текстолиту, подержал так секунд 10, затем сверху положил листок бумаги и начал гладить в течении 3-4 минут, затем, убрал листок бумаги и еще на несколько секунд приложил утюг и острым уголком утюга поводил по тем местам, где будут будущие дорожки для микросхем.

После этого убираем утюг, и даем плате полностью остыть. Потом окунаем на 5 минут наш текстолит с глянцевой бумажкой в теплую воду, что бы бумага намокла и отстала он текстолита, потом скатываем осторожно бумагу. Вот что получается:

Затем травим. Я травлю хлорным железом: наливаю почти горячую воду, растворяю в нем порошок, окунаю текстолит и потом наливаю в тазик горячую воду и туда окунаю плошку с хлорным железом. Чем больше концентрация раствора и температура- тем быстрее пройдет реакция.
Вот что получилось:

Затем я взял ватку с ацетоном и снял тонер, потом залудил.

И начал паять:

Собрал программатор, после чего ОБЯЗАТЕЛЬНО проверил все на наличие короткого замыкания. Вообще, т.к. я впервые работал с такой мелочью, то после каждого резистора, после каждого кондера я проверял программатор на просвет(очень хорошо видно попал ли припой на соседние дорожки) и проверял мультиметром на замыкание цепи. Итог такой- 2 раза были замыкания под резисторами…все удачно исправил.
Так же после сборки программатора не следует сразу включать его в USB порт. Убедитесь в отсутствии замыканий между землей и плюсом питания, установите джамперы в требуемое положение и только затем подключайте программатор к компьютеру.
Честно сказать- я волновался, хоть и был уверен в отсутствии КЗ.
После подключения я почувствовал нагревание платы, в районе FT232RL, а ПК выдал сообщение о подключении неизвестного устройства с неправильной работой. Я быстро отключил программатор и еще раз, внимательно просмотрел все дорожки на предмет прилипания припоя к соседним дорожкам и еще раз пропаял все выводы микросхем. После этого еще раз подключил программатор и, о чудо! , программатор определился и попросил установить дрова! Поставил дрова и в диспетчере приложения появились 2 новых устройства:

Ура! Теперь можно всерьез задуматься о работе с микросхемами!
Спасибо за внимание!

(666.9 KiB, 2,785 hits)

Уважаемые друзья и гости сайта!

Не забывайте высказывать свое мнение по конкурсным работам и принимайте участие в обсуждениях на форуме сайта. Спасибо.

В современных электронных схемах все чаще и чаще применяются микроконтроллеры. Да что там говорить, если сегодня не найти даже обыкновенную елочную гирлянду без микроконтроллера внутри - он задает различные программы иллюминации.

Я впервые столкнулся с микроконтроллерами, когда собирал свой первый . Вот тогда-то и выяснилось, что контроллер без прошивки - это просто кусок пластмассы с ножками.

А чтобы залить нужную прошивку в АТМЕГу, никак не обойтись без программатора. Далее мы рассмотрим две самые простые и проверенные временем схемы программаторов.

Схема первая

С помощью этого программатора можно прошивать практически любой AVR-контроллер от ATMEL, надо только свериться с распиновкой микросхемы.

СОМ-разъем на схеме - это "мама".

На всякий случай привожу разводку печатной платы для атмеги8 (), хотя такую примитивную схему проще нарисовать от руки. Плату перед печатью нужно отзеркалить.

Файл печатной платы открывать с помощью популярной программы Sprint Layout (если она у вас еще не установлена, то или лучше сразу ).

Как понятно из схемы, для сборки программатора потребуется ничтожно малое количество деталек:

Вместо КТ315 я воткнул SMD-транзистор BFR93A, которые у меня остались после сборки .

А вот весь программатор в сборе:

Питание (+5В) я решил брать с USB-порта.

Если у вас новый микроконтроллер (и до этого никто не пытался его прошивать), то кварц с сопутствующими конденсаторами можно не ставить. Работа без кварцевого резонатора возможна благодаря тому, что камень с завода идет с битом на встроенный генератор и схема, соответственно, тактуется от него.

Если же ваша микросхема б/у-шная, то без внешнего кварца она может и не запуститься. Тогда лучше ставьте кварц на 4 МГц, а конденсаторы лучше на 33 пФ.

Как видите, я кварц с конденсаторами не ставил, но на всякий случай предусмотрел под них места на плате.

Заливать прошивку лучше всего с помощью программы PonyProg (скачать).

Прошивка с помощью PonyProg

Заходим в меню Setup -> Calibration -> Yes. Должно появиться окошко "Calibration OK".

Теперь втыкаем микроконтроллер в панельку программатора, и подаем питание 5 вольт (можно, например, от отдельного источника питания или порта ЮСБ). Затем жмем Command -> Read All.

После чтения появляется окно "Read successful". Если все ок, то выбираем файл с нужной прошивкой для заливки: File -> Open Device File. Жмем "Открыть".

Теперь жмем Command -> Security and Configuration Bits и выставляем фьюзы, какие нужно.

Вот и все, МК прошит и готов к использованию!

Имейте в виду, что при прошивке с помощью других программ (не PonyProg) биты могут быть инверсными! Тогда их надо выставлять с точностью до наоборот. Определить это можно, считав фьюзы и посмотрев на галку "SPIEN".

Схема вторая

Еще одна версия программатора, с помощью которого можно залить прошивку в микроконтроллер АТМЕГа (так называемый программатор Геннадия Громова). Схема состоит всего из 10 детатей:
Диоды можно взять любые импульсные (например, наши КД510, КД522). Разъем - "мама". Питание на МК (+5В) нужно подавать отдельно, например, от того же компьютера с выхода USB.

Все это можно собрать навесным монтажом прямо на разъеме, но если вы крутой паяльник и знаете, что такое smd-монтаж, то можете сделать красиво:

Алгоритм прошивки с помощью программатора Громова

Программатор с установленной микросхемой подключаем к СОМ-порту компьютера, затем запускаем Uniprof, затем подаем питание на микроконтроллер. И первым делом проверяем, читаются ли фьюз-биты.

Если все ок, выбираем файл с нужной прошивкой и жмем запись.

Будьте предельно внимательны и осторожны, потому что если глюканет при записи фьюзов, то МК либо на выброс, либо паять схему доктора (а она сложная). Если поменяете бит SPIEN на противоположный - результат будет тот же (к доктору).


Еще одним несложным, в плане изготовления, является COM программатор. При условии использования альтернативного режима COM порта Bitbang, отпадает необходимость в преобразовании интерфейса RS232 COM порта в SPI, необходимый для программирования. Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В). Это и делает
схема COM программатора для AVR микроконтроллеров:

Данная схема программатора достаточно распространена и известна как программатор Громова. Название пошло от автора программы Геннадия Громова, который и предложил такую схему.

Чтобы собрать программатор Громова нам нужно следующее:

Диоды КД522, КД510, 1N4148 или им подобные. Резисторы можно использовать любые, какие найдете. В качестве шлейфа можно использовать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.
Для внутрисхемного программирования Atmel рекомендует стандартные разъемы:


Если Вы планируете серьезно заняться микроконтроллерами, сделайте разъемы стандартными. Для разового программирования устройства я рекомендую использовать на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компа — именно их я и взял) и штырьки PLS «папы» на плате. Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.

Собрать COM программатор не составит труда:

Я сознательно не даю печатной платы под этот программатор, так как схема проста и возня с разводкой и травлением платы просто себя не оправдывает.

Для того чтобы наш COM программатор заработал нужна , к которой мы подключим программатор и для микроконтроллера.

— Так как режим Bitbang нестандартный для COM порта компьютера, то возможны сбои в работе (хотя у меня такого не было). Особенно это касается ноутбуков. Как вариант решения этой проблемы можно рекомендовать «поиграться» настройками COM порта (скорость, биты данных, варианты управления потоком, величины буфера …).
— Отдельный разъем для «земли» желательно подключить первым, чтобы уравнять потенциалы «земли» программируемого устройства и компьютера. Для тех, кто не знает, если у Вас компьютер включен в обычную розетку, без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В.

Заключение:

— COM программатор Громова простой и надежный. Я не перестал пользоваться им даже собрав USB программатор (если какой либо микроконтроллер перестает программироваться USB программатором я обязательно перепроверю его на программаторе Громова).
— Так как программатор Громова собран на пассивных элементах он не требует для себя питания. Мало того, из-за паразитного питания, микроконтроллер можно запрограммировать вообще не подключая к нему источника питания! Хотя так программировать я не рекомендую, но сам факт интересен.
— Для пользователей Algorithm Builder есть приятный бонус! Этот программатор можно использовать для внутрисхемной отладки кристалла (программный JTAG).

Программатор выполнен на основе драйвера от Objective Development и полностью совместим по командам с оригинальным программатором AVR910 от ATMEL. Описание устройства. Предохранитель защищает линий питания порта USB от случайного замыкания по цепям питания программатора. Диоды VD1, VD2 впрямительные кремниевые, они предназначены для понижения питания микроконтроллера до 3,6 В. Согласно документации, контроллер может работать при таком напряжении питания до частоты чуть более 14 МГц. Светодиоды VL1 ("RD ”), VL2 ("WR ”) сигнализируют о текущих действиях программатора и обозначают режимы чтения и записи. Светодиод VL3 ("PWR ”) показывает подачу питания на .

Джампер J1 - (MODify ) служит для начального программирования управляющего МК программатора. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК управляющей программы. После программирования управляющего МК программатора этот джампер необходимо разомкнуть и замкнуть джампер J2 - NORMal.

Джампер J3 LOW SCK понижает тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом - пониженная. Переключать джампер можно на ходу, так как управляющая программа МК программатора проверяет состояние линии PB0 при каждом обращении к порту SPI. Не рекомендуется переключать джампер при запущенном процессе записи/чтения программируемого МК, т.к., скорее всего, это приведет к искажению записываемых/читаемых данных. Джампер J3 введен для возможности программирования МК AVR, тактируемых от внутреннего генератора 128 кГц.

Резисторы R10 - R14 предназначены для согласования уровней сигналов микроконтроллера программатора и внешних цепей (программируемый МК или другой программатор). Тактовая частота порта SPI МК программатора при разомкнутом джампере J3 равна 187,5 кГц. Это позволяет программировать контроллеры с тактовой частотой примерно от 570 кГц для ATtiny/ATmega, 750 кГц для 90S и 7,5 МГц для 89S. Контроллеры программируются от 10 до 30 секунд (при использовании утилиты AVRProg v.1.4 из пакета AVR Studio) вместе с верификацией в зависимости от объема FLASH памяти и тактовой частоты.

На вывод LED разъема ISP выведен меандр с частотой 1 МГц для "оживления" МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. Сигнал генерируется постоянно и не зависит от режима работы программатора. Программатор тестировался с программами AVRProg v.1.4 (входит в пакет AVRStudio), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в "0") биты SPIEN , CKOPT , SUT0 и BODEN . Обычно микроконтроллеры, идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN . Остальные биты должны быть незапрограммированные (установлены в "1").

Инструкция по установке и работе. Прошить контроллер. Подключить свежеиспеченный программатор к компьютеру через USB. Операционная система найдет новое устройство - AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы.

На форуме находятся все файлы, а также печатная плата для нашего программатора avr. Здесь покажу технологию сборки USB программатора AVR и упаковки в корпус. Для начала скачиваем архив и делаем печатную плату.

Потом впаиваем на неё все детали. Не смог найти маленький кварц, поэтому впаял большой, но на длинных ножках, чтобы потом загнуть, чтоб не мешал при установки платы в корпус. Далее подбираем подходящий корпус, у меня был готовый.

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

Если нет специальной измерительной аппаратуры, можно произвести проверку при помощи светодиода. Светодиод подключается анодом к контакту LED, катодом к любому контакту GND ISP-разъема. При подаче питания светодиод должен светится в «полнакала». При замыкании пинцетом ножек кварцевого генератора светодиод должен либо засветится в «полный накал», либо свечение должно отсутствовать.

Без ощибок собранный программатор с правильно запрограммированным микроконтроллером в настройке не нуждается. Но если у программируемого МК вход RESET подтянут к напряжению питания резистором, то номинал резистора не должен быть ниже 10 кОм - это связанно с пониженным напряжением питания управляющего контроллера в схеме программатора и введением ограничительных резисторов на шине ISP-разъема.

Обсудить статью ПРОГРАММАТОР AVR USB

У радиотехников, которые любят заниматься конструированием электронных приборов, время от времени возникает необходимость использования в своих разработках микроконтроллеров. Применение этих полупроводниковых приборов

открывает огромные перспективы перед радиотехником. Микроконтроллеры выпускаются всего несколькими фирмами, лидерами из которых являются MicrochipTechnology, ATMEL, ARMLimited. Главной особенностью подобных приборов является необходимость их программной прошивки. Для этого и необходимы программаторы. На сегодняшний день существует огромный выбор различных типов программаторов, правда, цена таких изделий весьма высока, и не каждый радиолюбитель сможет позволить себе приобрести такое устройство.

В этой статье мы рассмотрим USB-программатор (AVR) на базе управляющего микроконтроллера Atmega 8. Это изделие достаточно простое, для того чтобы радиолюбитель смог собрать его самостоятельно и не тратил большие деньги на фирменное изделие. Выбранный нами USB-программатор (AVR) имеет минимальную обвязку микроконтроллера, что позволяет собрать весьма миниатюрный прибор. Такое изделие не займет много места, оно имеет обычной флэшки. USB-программатор (AVR) в своей схеме содержит микроконтроллер тип корпуса - TQFP 32 (не следует путать с типом корпуса DIP, так как у них различные распиновки). Схема такого устройства приведена на фото.

Приступим к описанию схемы прибора. Перемычка J1 используется в том случае, когда возникает необходимость прошивки микроконтроллера, имеющего тактовую частоту ниже 1,5 Мгц. При желании эта перемычка легко исключается из схемы, для этого 25-й вывод контроллера садится на «землю». В таком случае AVR-USB-программатор всегда будет функционировать на пониженной частоте. Следует учесть, что программирование на занимает больше времени, но решать, конечно же, вам. Стабилитроны D1, D2 применяются для согласования уровня между USB-шиной и программатором. Голубой светодиод сигнализирует о готовности устройства к программированию микроконтроллера, красный диод горит в процессе программирования. Схема имеет IDC-06 разъем, на который выведены контакты, распиновка которых соответствует типу ATMEL 6-пинового разъема ISP. На указанный разъем выводятся контакты питания микроконтроллеров, оно берется с USB-порта персонального компьютера, следовательно, необходимо быть внимательным, чтобы не допустить С помощью этого же разъема происходит программирование и управляющего контроллера, для этого необходимо соединить контакты Reset на контроллере и на разъеме (на схеме показано красным пунктиром).

Перемычка снижения скорости программатора и разъем подключения микроконтроллера расположены на торце устройства. Вот что представляет собой USB-программатор (AVR), как видите, все элементарно.

После сборки устройства необходимо прошить управляющий микроконтроллер, для этого рекомендую использовать программу PonyProg. При программировании заводим кристалл на функционирование от внешнего тактирующего источника на 12 Мгц.

Описанный в этой статье USB-программатор для AVR работает со всеми микроконтроллерами типа AVR, позволяет прошивать их, смотреть записанное содержимое устройства, стирать чипы, менять конфигурацию.