Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Делаем простой USB программатор USBTinyISP / Блог им. Ghost_D / RoboCraft. Роботы? Это просто!

Очень многие люди, начиная свое знакомство с микроконтроллерами, испытывают трудности с инструментом для их программирования. И это реально может охладить творческий пыл. Да что там говорить, я и сам после сборки своего первого Arduino долго пытался «вдохнуть» жизнь в «железяку». Здесь очень хорошо описаны мучения. Конечно, самый простой вариант “5 проводков” — это здорово! Но, в моем окружении (как я понимаю, и у многих) дома, на работе в компах и ноутбуках напрочь отсутствует LPT-порт! Да и COM-порт становиться достаточно редкой «экзотикой». Что же делать? Естественно, на сцене появляется вездесущий USB.

Да, готовый программатор для AVR легко можно купить. Но цена на них неадекватно завышена (у нас в г. Минске, на радиорынке что-то около 30..50 у.е.). Как говорил Киса Воробьянинов — «ОДНАКО!!!». Хорошо, что есть братья-китайцы, с нормальными ценами. Только придется прилично подождать.

Да и судя по последним тенденциям, ОГРОМНЫЙ поток посылок из Китая ОЧЕНЬ заинтересовал государственные органы… И боюсь, что в скором времени превратится в жалкий ручеек 🙁
Да и к тому же, как говорит мой хороший друг: «Это не наш метод. Мы сделаем сами, пусть по выходу окажется и в два раза дороже!».

Спешу обрадовать, что затраты на изготовление — мизерные. Самые дорогие компоненты — это Attiny2313 (примерно 2$) и разъем USB.

Итак, приступим. Нам нужен программатор который максимально прост и относительно дешев, подключается по USB, и при этом, поддерживается всеми современными ОС (LINUX, WINDOWS, MAC OSX) через программу avrdude. Изначально я рассматривал для повторения самый «примитивный» вариант. Дальнейшие поиски меня привели к — USBTinyISP!!! Стремясь к компактности, я выбрал для «клонирования» версию 1 (без буферной микросхемы). Ниже схема программатора.

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

А вот печатку я переделал под свои нужды.

(Номиналы деталей можно увидеть в SprintLayout при наведении курсора на нужный элемент)

Нам понадобится:

— кусок текстолита 63х33 мм
— МК Attiny2312 с колодкой под нее
— Разъем USB (тип B)
— Разъем 10х2 (как он правильно называется ???? Не знаю..)
— 4 резисторa 1.5 кОм (smd, маркировка 152)
— 1 резистор 1.5кОм (выводной 0.125Вт)
— 2 резисторa 33 Ом (smd, маркировка 330)
— 1 резистор 10к (smd, маркировка 103)
— 2 стабилитрона на 3.6В
— 2 конденсатора 22 pF (smd)
— 1 конденсатор 0.1 мF (smd)
— 2 светодиода (зеленый и красный)
— кварц на 12Mhz

— электролитический конденсатор 100x16V
— самовосстанавл. предохранитель (я выпаял из старой мат. платы). Если нету, можно поставить перемычку (на www.ladyada.net/ так и сделали).
— два штырька для перемычки

Естественно, ЛУТ.

После ЛУТа

После травления:

Мой любимый сплав Розе

Паяем SMD элементы

Теперь перемычки и оставшиеся элементы

Готово!

Небольшое лирическое отступление. Давным давно, в 2000-х годах у меня один приятель жаловался со сложностями в поиске НОРМАЛЬНОЙ работы (он работал водителем). Дело в том, что у него был на тот момент очень маленький стаж вождения :). Чувствуете подвох? На нормальную работу без стажа не берут. Стажа нет, потому что на работу не берут… И так замкнутый круг.

Так и в нашем случае, для изготовления программатора нужно запрограммировать контроллер… т.е. нужен программатор. Слава богу, это нужно проделать всего один раз. Выходов несколько:
— берем пиво и навещаем приятеля с программатором 🙂
— ищем компьютер с LPT-портом и паяем «5-проводков»
— нету LPT, но есть COM? Прекрасно, делаем программатор Громова!
— есть люди, предлагающие свои услуги по прошивке МК за небольшую «денюжку»
— другие варианты

У меня ситуация более, чем шикарная — у меня уже был программатор AVR910. Так, что вся процедура заняла не более минуты. «Прошиваем» МК с помощью AVRDUDE. (Все необходимое для этого сложено в архив и находиться в каталоге Firmware).

avrdude.exe -p t2313 -c avr910 -P COM12 -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Кому менее повезло и пришлось прибегнуть к «5 проводкам» (кстати, официально он называется DAPA):

avrdude.exe -p t2313 -c dapa -U flash:w:usbtinyisp_(v.1).hex  -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

вот, вариант когда программатор USBTinyISP используется для прошивки себе подобного, а-ля «овечка Долли»:
avrdude.exe -p t2313 -c usbtiny -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Почему вариант с AVRDUDE более предпочтителен для начинающих? При выполнении вышеприведенных команд сразу же прошиваются и нужные фьюзы, т.е. ухера.. «убить» микроконтроллер достаточно сложно.

Итак, устанавливаем на плату свежепрошитый микроконтроллер. Еще раз советую проверить изготовленную плату на качество пайки, отсутствие «коротышей» и тому подобных неприятностей. И только если ВЫ на 100% уверены, подключаем наш программатор к разьему USB. После сообщения об обнаружении нового оборудования (речь идет о Windows), ставим как обычно драйвера. Они сложены в архиве в папке

usbtinyisp w32 driver v1.12.

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

Если Вам удалось увидеть такую же картинку, то поздравляю! Все готово. У Вас теперь есть USB программатор для AVR!!!
Не знаю как Вы, но мне ОЧЕНЬ захотелось сразу же опробовать изделие в действии. А давайте прошьем бутлодер в Ардуино.

Запускаем Arduino IDE, [Сервис]->[Программатор]->[USBTinyISP]

Жмем [Сервис]->[Записать загрузчик]

Буквально проходит 7 секунд, мерцание красного светодиода на программаторе… и ОПА!!! Все готово. Получите, распишитесь 🙂


А теперь небольшой БОНУС, расширяющий область применения нашего программатора.

А именно, маленький адаптер для DIP корпусов наиболее распространеных AVR контроллеров. Мне приходилось иметь дело с ATTiny13/45 — 8 ножек, Attiny 2313 (тут смайлик)- 20 ножек, Atmega 8/48/168 — 28 ножек. За основу берем схему соединения колодок (схема откуда-то из инета):

Для простоты я не использовал сигналы тактирования XT1. (Для всяких неприятных случаев, у меня есть собранный FUSE Doctor :)) И еще, я не ставил на адаптер колодку под Atmega16 (DIP-40). Пока у меня не возникало необходимости в программировании таких контроллеров.

Ну, если осилили изготовление программатора, то сделать такой адаптер — вообще плевое дело!

Кстати, некоторые неиспользуемые контакты я просто-напросто удалил, во избежание ненужного контакта 🙂

Приклеиваем (для удобства) соответствующие надписи:

И вот, все в сборе, программатор и адаптер! Пользуйтесь на здоровье.
Весь материал (печатку, прошивку, драйвера и фото) для повторения можно забрать одним архивом тут.

ПРОГРАММАТОР AVR USB

   Программатор выполнен на основе драйвера от 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-разъема.

   Форум по usb программатору

   Форум по обсуждению материала ПРОГРАММАТОР AVR USB

Программатор из флешки своими руками. Миниатюрный USB программатор для AVR микроконтроллеров.

Интерфейс внутрисистемного программирования ISP Данный программатор не нуждается в первичном программировании – протравил печатную плату, спаял и пользуйся. Автор данного устройства указан в конце статьи, а здесь приведу небольшую выдержку из руководства, чтоб было понятнее, о чём речь: правильный USB-программатор – вещь, фактически, универсальная. Его можно воткнуть в любой современный компьютер и без проблем перешить нужный микроконтроллер с любым объемом FLASH-памяти на довольно высокой скорости. Но ключевое слово здесь – “правильный”, который нормально работает без настройки и танцев с бубном над ним сразу же после установки и монтажа деталей. Который не глючит при переходе от одного ПК к другому или смене ОС. Правильный – это такой, драйвера на который есть для любой современной широко используемой версии ОС, и эти дрова неглючные. Каждый определит еще с десяток критериев правильности для себя лично, но вышеперечисленные – основные, без соблюдения которых нормально работать с микроконтроллером невозможно будет в принципе.

В настоящее время в Интернете полно различных схем USB-программаторов для AVR . Условно их можно разделить на две большие группы.

Первая группа включает в себя программаторы, построенные на основе микроконтроллеров (в частности, AVR). Собирал несколько штук программаторов от Prottoss’а (AVR910), себе и своим знакомым, а также несколько штук USBasp. Двое из знакомых, одаренных сиими дывайсами, в восторге. Удачно шьют камни в течение уже нескольких лет. У остальных (в частности – у меня лично) собранные программаторы особой радости не вызвали. Не говорю, что они плохие, просто вот так складывались обстоятельства: на одном компьютере работает, на другом нет. Или, проработав пару часов, оказывались невидимыми для софта, через который шьется камень. И много еще чего. Сразу оговорю – я не разбирался с прошивкой контроллеров, на которых данные программаторы собраны. Правда, перепробовал кучу программ-прошивальщиков, через которые данные программаторы, вроде как без проблем должны шить камни. Однако, результат в виде частых глюков меня не особо удовлетворил. Исключение составила только программа AVRDUDE в комплексе с графической оболочкой SinaProg, но о ней я узнал слишком поздно. Кстати, заметил такую тенденцию: чем древнее железо ПК, тем лучше работают данные программаторы. Ну и самый неприятный момент для тех, кто выбрал второй вариант знакомства с микроконтроллерами AVR – чтобы программатор заработал, нужно чем-то прошить входящий в его состав камень. То есть получается так: чтобы пользоваться программатором нужно сделать/найти программатор, чтобы прошить мозги этого программатора. Вот такой вот замкнутый круг.

И вторая группа USB-программаторов включает в себя решение на базе специализированной микросхемы FT232Rx. В свое время данная микросхема стала своего рода революцией. Мало того, что она без особых заморочек для разработчика преобразует USB в UART (и, наверное, 95% разработчиков используют ее именно в этих целях). Она еще умеет эмулировать полноценный COM-порт, причем состояние «второстепенных» линий (таких, как RTS, CTS, DTR и т. д.) можно задать/считать не из виртуального COM-порта, а напрямую через драйвер FTDI (разработчика FT232Rx). Таким образом, появилось новое, без необходимости первичной прошивки мозгов программатора, решение, для прошивки микроконтроллеров, причем, довольно быстрое.

Принципиальная схема программатора USB

Данная схема просто направляет сигналы MOSI, MISO, SCK и RESET, которые формируются на выводах DCD, DTR, RTS и DSR микросхемы DD1 (FT232RL) соответственно, на нужные выводы прошиваемого микроконтроллера (т.е., фактически является аналогом «древних» программаторов). Причем, делает это только в момент программирования камня, в остальные моменты времени программатор отключен от прошиваемой платы за счет 4-х буферных элементов микросхемы DD2 (74HC125D). Состояние линий MOSI, MISO, SCK и RESET устанавливается/считывается прошивающим софтом на компьютере. Передача данных между ПК и микросхемой FT232RL идет по шине USB (от которой еще и получает питание программатор).

Светодиод HL2 («PWR») сигнализирует о подаче на программатор напряжения питания с шины USB. Светодиод HL1 («PROG») индицирует процесс прошивки микроконтроллера (горит только во время прошивки). Вот, в принципе, и все описание собственно схемы электрической принципиальной. Единственное что хотелось бы отметить: во-первых, для подключения программатора к прошиваемой плате используется разъем IDC-10MR (XP2 «ISP»), распиновка которого совпадает с широко распространенной распиновкой разъема программатора
STK200/STK300:

XP2 “ISP” разъем для подключения устройства к программируемому микроконтроллеру

XP3 “MISC” разъем для использования дополнительных функций программатора

В общем микросхема FT232RL имеет довольно серьёзный потенциал для разработчика (например, линии шины CBUS можно использовать как обычные линии ввода-вывода микроконтроллера), поэтому неплохо бы иметь доступ ко всем ее выводам. Ну и доступ к напряжениям +5,0 В и +3,3 В тоже лишним никогда не будет. В приклеплении печатная плата и полное подробное описание. Разработка и мануал – [email protected] , испытание – SssaHeKkk .

Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа – “прошивка”, а также программатор.

И если с первым пунктом нет проблем – готовую “прошивку” обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.

Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).

Основная часть.

Панель установки МК.

Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является “облегчённой” копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite , что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.

Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др. ), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора. Особо важная функция, которой обладает программатор – это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).

Необходимые изменения.

В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.

Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом “Data”. При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.

Также добавлен “подтягивающий” резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.

Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.

Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.

В ЖК-телевизорах применяется уже другой тип памяти (Flash-память). О том, как прошить память ЖК-телевизора я уже рассказывал . Кому интересно, загляните.

В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось “допиливать” программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.

Ядром устройства является микроконтроллер PIC18F2550-I/SP .

Это единственная микросхема в устройстве. МК PIC18F2550 необходимо “прошить”. Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема “курицы и яйца”. Как её решил я, расскажу чуть позднее.

Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.

Название Обозначение Номинал/Параметры Марка или тип элемента
Для основной части программатора
МикроконтроллерDD18-ми битный микроконтроллерPIC18F2550-I/SP
Биполярные транзисторыVT1, VT2, VT3КТ3102
VT4КТ361
ДиодVD1КД522, 1N4148
Диод ШотткиVD21N5817
СветодиодыHL1, HL2любой на 3 вольта, красного и зелёного цвета свечения
РезисторыR1, R2300 Ом
R322 кОм
R41 кОм
R5, R6, R1210 кОм
R7, R8, R14100 Ом
R9, R10, R15, R164,7 кОм
R112,7 кОм
R13100 кОм
КонденсаторыC20,1 мкК10-17 (керамические), импортные аналоги
C30,47 мк
Электролитические конденсаторыC1100 мкф * 6,3 вК50-6, импортные аналоги
C447 мкф * 16 в
Катушка индуктивности (дроссель)L1680 мкГнунифицированный типа EC24, CECL или самодельный
Кварцевый резонаторZQ120 МГц
USB-розеткаXS1типа USB-BF
ПеремычкаXT1любая типа “джампер”
Для панели установки микроконтроллеров (МК)
ZIF-панельXS1любая 40-ка контактная ZIF-панель
РезисторыR12 кОмМЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R610 кОм

Теперь немного о деталях и их назначении.

Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.

Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа “B” (квадратная). В компьютере же используется USB-розетка типа “А”. Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 – 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 – это диод Шоттки . Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.

Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force – с нулевым усилием установки).

Благодаря ей можно “зашить” МК практически в любом корпусе DIP.

На схеме “Панель установки микроконтроллера (МК)” указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.

Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).

А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).

Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).

Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима “Печать” не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении .

Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат , с помощью цапонлака (так делал я) или “карандашным” методом .

Вот рисунок позиционирования элементов на печатной плате (кликабельно).

При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).

“Прошивка” микроконтроллера PIC18F2550.

Файл “прошивки” – PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800 .

Залить “прошивку” в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).

Также стоит знать, что “прошивка” микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex ) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex – «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex» . У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex» .

Ну, а если разрешить проблему “курицы и яйца” не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал .

Обновление “прошивки” программатора.

Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться – чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить “прошивку”.

Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню “Tools” – “Download PICkit 2 Operation System” открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута . Узнать версию ПО программатора можно через меню “Help” – “About” в программе PICkit2 Programmer.

Это всё по техническим моментам. А теперь о софте.

Работа с программатором. Программа PICkit2 Programmer.

Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы – PICkit2 Programmer. Рекомендую.

После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод (“питание”), а операционная система опознает устройство как “PICkit2 Microcontroller Programmer” и установит драйвера.

Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.

Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции “Что делать?” на английском.

Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.

Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг .

Необходимые файлы:

Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.

Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:

На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.

Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно

Прошивка управляющего микроконтроллера
Итак, после сборки устройства осталось самое важное – прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом:) Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:

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

Установка драйвера
Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:

Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:

Забиваем на предупреждение и продолжаем установку, после небольшой паузы появится окно, сообщающее об успешном окончании операции установки драйвера

Все, теперь программатор готов к работе.

Khazama AVR Programmer
Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer . Замечательная программка, с минималистичным интерфейсом.

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

Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.

Скачать файл печатной платы в SprintLayout можно по

06-01-2011

Описание

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

AVR программатор состоит из внутрисхемного последовательного программатора (с разъемом) и маленькой печатной платы с DIP панелькой, в которую вы можете поместить свой микроконтроллер и быстро его запрограммировать.

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

Весь AVR программатор собирается из широко распространенных компонентов и умещается в корпусе разъема COM порта. Печатная плата с DIP панелькой позволяет вставлять в нее 28-выводной AVR микроконтроллер ATmega8 в корпусе DIP, но вы можете изготовить печатные платы для микроконтроллеров в любых других корпусах. Этот программатор совместим с популярным ПО PonyProg, которое показывает вам ход процесса прошивки в виде шкального индикатора статуса.

Внутрисхемный последовательный программатор AVR

Плата с панелькой для AVR

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


Плата включает в себя 28 выводную DIP панельку, кварцевый резонатор на 4 МГц или резонатор с двумя конденсаторами по 22 пФ, и два разъема. Двухконтактный разъем служит для подключения к AVR микроконтроллеру питания +5 В, а 6-контактный – для подключения программатора.

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

ПО PonyProg

Чтобы иметь возможность загружать hex файлы из компьютера в микроконтроллер, вам потребуется скачать и установить ПО . После установки, первое, что предстоит сделать, это сконфигурировать PonyProg для работы с AVR программатором. Для того, чтобы сделать это, войдите в меню «Setup» и выберите пункт «Interface Setup». Ниже на рисунке подсвечены именно те опции, которые вам следует выбрать.

Следующим шагом выберите «AVR micro» и тип микроконтроллера, который хотите запрограммировать (например ATmega8).

Теперь конфигурирование PonyProg завершено, и мы можем открыть hex файл с программой, которая будет зашита в микроконтроллер. Перейдите в меню «File», выберите «Open Program (FLASH) File …» и укажите на hex файл, который надо зашить. Вы должны увидеть шестнадцатеричные значения, примерно такие, как показаны на рисунке ниже. Если вы все еще не подключили программатор к последовательному порту компьютера, то сейчас самое время это сделать. Убедитесь, что ваш программатор физически подключен к AVR микроконтроллеру через плату с панелькой или 6 контактный разъем ICSP. Наконец, кликните на подсвеченной иконке «Write Program Memory (FLASH)» или идите в меню «Command» и выберите «Write Program (FLASH)».

Кликните на кнопке «Yes», чтобы подтвердить запись.

Теперь сядьте поудобнее, расслабьтесь и наблюдайте за процессом программирования по индикатору состояния. PonyProg прошьет AVR микроконтроллер и проверит, загрузился ли hex файл без ошибок. Этот процесс обычно занимает от 10 до 30 секунд, в зависимости от размера программы, которую вы будете зашивать в микроконтроллер.

После программирования появится окно «Write successful», показывающее, что AVR микроконтроллер был запрограммирован и теперь готов к использованию.

  • Проверяйте монтаж и подключение к целевому микроконтроллеру.
  • ну в этой схеме нет ничего военного и изготовлять ее не надо а включил ком порт лоника в комп и вперед,правда в моем еще по ком порту стоит буфер чтобы случайно не сжечь.А что касаеться по пользованию прогой пони -забыли про одно из главного сказать-про фьюзы.ведь неправильно установишь и микросхема залочиться
  • ком порт устарел. если есть только usb то работу с контроллерами можно считать оконченой даже не начав???? usb-com ни кто в сети не предлогает.а если и предлогают то в схеме как раз стоит контроллер. если уж собирать самому то с нуля. а не так как сейчас многие делают, заказал конструктор, напихал в дырки элементов,запаял,и всё.таких гениев на службе хватает. а подойдёш к такиму с вопросом он и толком знать не знает. а ведь хочется знать подробно.
  • Ну конечно никто (пишется слитно!) не предлАгает. Поскольку куча готовых микросхем есть в типовом включении – мостов USB-COM на 5В и 3.3В питания. Но шибко грамотные граждане естественно об этом не знают. Про AVR910-аналог от Проттоса тоже не знают, в котором МК по USB виртуальный COM-порт изображает и программирует по ISP. Например. У буржуев тоже куча аналогичных конструкций. И описаний подробных конечно нет – это же искать надо. А хочется сразу готовенького – нажал на одну кнопку и все-все на блюдечке с голубой каемочкой. А может лучше уроки учить?
  • много уважаемый SergeBS этот форум не для орфографических ошибок и тем более не для поучений о том что оно есть. тут помощи и совета просят у людей которые знают и сталкивались с той или иной проблеммой. а то что есть готовое и можно купить и не напрягаться это конечно круто. P.S тем не менее спасибо ВАМ за участие в проблемме. И ОТДЕЛЬНОЕ ЗА ОЧЕНЬ ПРИГОДИВШИЕСЯ ПОУЧЕНИЯ. буржуям привет, а то что у них до?рена чего есть этого то я и знать не мог. куда нам крестьянам.
  • Угу. Типа “крютые”, которые как хотят так и пишут. Причем “проблемму” и сформулировать не могут. Сопли типа:”хачу чавой-то знать, а чаво – ня знаю самм” – не в счет.:)
  • Вы ещё не знаете из чего всё это делается… На китайской барахолке детали для ваших схем продают на вес килограммами и никакие стандарты качества к таким деталям не имеют отношения. Покупайте только фирменные товары в соответствующих фирмах.
  • Заказываю в Интернет-магазинах (российских). Пока (тьфу * 3) на брак/халтуру и т.п. не налетал.
  • Здравствуйте! Всех с наступающим Новым Годом! 🙂 Собрал программатор для AVR по указанной схеме (проверял 3 раза все). Но понипрог 2000 отказывается видеть и программировать контроллер ATMega168-20PU – выдает ошибку device missing or unknown device (-24). Использовал стабилитроны КС407Г, Транзистор КТ3102АМ и диод КД522Б. Кварц у меня был на 4.032 МГц. Питание от L7805. Перед возникновением ошибки успевают придти сервисные сообщения, которые я мониторю с помощью Advanced Serial Port Monitor, но там только включение и выключение Break в процессе записи. Никакие данные не уходят. Настраивал ПониПрог2000 все по инструкции. Шаг за шагом. С чем эта ошибка может быть связана? Нужно ли подсоединять 22 ножку к земле и 20 к питанию (аналоговые земля и питание)? Почему не используется чип-селект (SS ножка 16 контроллера)? Спасибо за помощь!
  • Я собрал этот программатор и использовал: Резисторы – указанных номиналов Транзистор – KT3102ГМ Диод h58 это аналог 1N4148 Стабилитроны – BZX55C 5.1 вольта Также кварц на 4Мгц и 2 керамических конденсатора на 22 пФ, но я не думаю что они обязательны т.к. использование кварца внутренний/внешний мы устанавливаем программируемыми битами, с завода микрухи запрограммированы использовать внутрений кварц(если я не ошибся) Внешнее питание от +5В обязательно.Я подключил от БП того же ПК с которого заливал прошивку. Диод h58 (такая маркировка на присутствует на корпусе этого диода) на просторах интернета говорят что это аналог 1N4148. У меня всё работает, ПониПрог 2000 успешно залила прошивку в ATmega8. Фото
    View post on imgur.com
    http://i.imgur.com/gCzAuzA.jpg
  • Посоветую один из проектов avr mk ii clone, на базе либы и примера от lufa. Контроллер at90usb168 обычно идет с бутлоадером, позволяющим после сборки залить прошивку через usb без внешнего программатора. Поддерживает все нынешние avr, включая xmega и новые тиньки, pdi/tpi протокол. Работает с avrstudio и dude, разные прошивки для них. Исходники открыты, шишки отработаны. Например, для новых студий достаточно инкрементить версию fw в настройках прошивки. Собирается прошивка под winavr. Мой вариант в этой теме, от 12 года. С фоточкой. http://m.radiokot.ru/forum/viewtopic…rt=700&t=26417
  • Здраствуйте.собрал этот прогроматор для прошивки ATtiny 2313 все работае прог.читаем МК без проблем но вот такая проблема атор схемы для которой я прошиваю МК написал что первый раз можно прошивать без внешнего кварца,но при этом сперва заливать прошивку МК,а потом менять Fuse короче я залил прошивку,встала нормально,потом поменял Fuse и нажал Write но после таго как я нажал Write вылезла вот это Device missing or unknown device (-24) и после этого больше МК не читаеться в чом может быть проблема
  • это обратно я подскажите пожалуста попробывал прошить ATtiny 2313 с внешним кварцем ипоставил 2 конденсатора,кварц на 8 МГц,подк. прогром.он прочитал МК открыл прошивку в пони выставил Fuse какие надо вот это заводские
    View post on imgur.com
    а вот такие надо прошить
    View post on imgur.com
    но еще что я заметил в заводских стоит одна галочка которую нельзя убрать называеться SPIEN ,а какие надо прошить там нет этой галочки ну ладно дальше продолжу свою проблему после таго как я откры прошивку и выставил Fuse как на второй картинке я нажал READ DEVICE пошол процес прошивки и в завершении вышло вот это
    View post on imgur.com
    потом я закрыл пони и открыл снова и нажал прочитать МК и получил вот это Device missing or unknown device (-24) такое же что я прошивал без внешнего кварца,выше описанное,и после этого этот МК больше не читался кто может сказать в чом дело,что я зделал не так Просто уже 3 МК убил большое спасибо прото я в этом новичок
  • У меня эта ошибка вылазила только когда я внешнее питанее не подключал, ну естественно у тебя в схеме могут быть ошбки, может ты не на ту микруху пони прог настроил(но маловероятно ведь прошивка залилась я сам новичёк.) SPIEN – фьюз, который разрешает работу МК по интерфейсу SPI. Все микроконтроллеры выпускаются с уже установленным битом SPIEN. Считается опасным фьюзом…
  • Fuse-бит SPIEN установлен по умолчанию в микроконтроллерах AVR (режим внутрисхемного программирования) и с помощью PonyProg его убрать не получится. Да и вообще его лучше не трогать… Установив и запрограммировав Fuse-биты как на последней картинке, вы настроили мк на работу от внешнего кварца 8 Мгц, отключили внутренний делитетель тактовой частоты на 8 и включили Brown-Out Detector (модуль контроля питания) с уровнем 2.7 В. И после этого программатор микроконтроллер не увидел, поэтому логично было бы подать на микроконтроллер внешнее питание (не от PonyProg) и попробовать прочитать его снова. PS: Конечно, если изначально все было сделано корректно (тип микроконтроллера в программаторе ри программировании был выбран правильно и Fuse-биты были правильно установлены)
  • спасибо за ответ просто я прошил на 3 МК нету прошивку и теперь прогром.не видет их и мне надо их перешить и я всегда подовал внешние питание при прошивки но пони всеравно его не видит,но МК работает,я вставлял ее на прибор для кокого я ее прошивал все три рабочие,но мне надо туда другие залить Я спросил у автора схемы для которой я их прошивал как их перешить он мне сказал что если с внешним кварцем неопределяеться то надо еще внешний генератор тактовой частоты делать и подовать сигнал на МК XTAL 1 и тогда прогром. увидет МК если кто может кинте не сложную схемку внешний генератор тактовой частоты сколько гуглил не чего чот не нашол или может кто другой способ а Fuse мне обезателно надо было помннять как на второй картинке потомучто с заводскими работать не будет спасибки за помощь
  • Спасибо за статью! Отличный адаптер. Работает шустро, без ошибок. Я первым делом под LPT порт спаял, не было под рукой COM штекера. Дак LPT порт сгорел на первой же заливке. Пришлось бежать за COM штекером в магаз. Так же рекомендую спаять фьюз доктора – очень полезная штука. Я первый-же кристал так отфьюзил, казалось что он выпустил свою душу (синий дымок), а нннет! – Дохдур фьюз его моментально вернул к жизни. Вот и выходит: этот адаптер + док фьюз = полноценный параллельный программатор.
  • После “синего дымка” ни один доктор его бы к жизни не вернул. А “Доктор фьюз” – да, наверное, иногда может быть полезным. Но почти всегда удается обойтись и без него, нужно только затактировать МК не от кварца, а от внешнего генератора…
  • А вот мне посчастливилось, при первом же конфигурировании фьюзов, захлопнуть так, что ни один генератор не спасёт. Я не знал, что бывают 2 варианта отображения фьюзов: Прямой (исторический, канонический) и инвертированный (интуитивно удобный). Вот я и выставил в каноническом галки с фото инвертированного. Кстати, PonyProg, оперирует фьюзами в инвертированном представлении.
  • Читать всем:

Ну вот и пришло время нам соорудить USB программатор. Я долго не мог определиться какой бы программатор нам собрать. Выбирал по критериям простоты конструкции и удобства работы с ними, но ничего не нравилось. Выбрать программатор помог случай. Вернее я его не выбирал вообще – я его случайно собрал сам того не подозревая!

А дело было так. Некоторое количество постов назад мы собрали преобразователь USB to UART на ATtiny2313 (а в мы даже улучшили печатную плату). Еще при выборе схемы преобразователя я планировал на его базе (при помощи заливки различных прошивок) получать устройства различного назначения. Тогда я не подозревал, что данный преобразователь можно использовать шире, чем я планировал. Увидев схему USB программатора — USBtiny на ATtiny2313 я понял, что я уже имею готовый программатор!

Посмотрев на схему, сделанного ранее, преобразователя USB to UART (домашняя страничка)

и схему USB программатора USBTiny (домашняя страница)

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

Теперь все по порядку.
1 Для начала нужно собрать преобразователь (это если Вы его еще не собрали).
Вот рисунок печатной платы преобразователя:
Если интересно — вот .
В собранном виде преобразователь выглядит так:

2 Немного модифицируем плату
Для того, чтобы обеспечить все необходимые сигналы для программирования впаиваем защитные резисторы номиналом по 100 Ом в линии ножек 12, 16, 17, 18, 19 (номинал не критичен — можно варьировать).


3 Теперь нужно прошить микроконтроллер.
Линии для программатора выведены на общий разъем платы (кроме сброса — стоит отдельно).

Наверно не нужно говорить о том, что для прошивки микроконтроллера Вам понадобится программатор. На скорую руку можно собрать и прошить при помощи .


Схема шлейфа проста.

Из особенностей — я вынес индикаторный светодиод и балластный резистор для него за плату на разъем — это для того, чтобы плату без перепайки можно было использовать для других устройств (ну и так прикольней — светодиод мигает прямо в разъеме:)). Кроме того, линия Vcc отделена от общего разъема — это на случай если программируемое устройство запитывается не от USB, а от своего источника (что, в принципе, желательно). Сигнальные линии (SCK, MISO, MOSI) желательно экранировать (например чередованием сигнальных и земляных линий в шлейфе). Длину шлейфа не стоит делать большой — до 50 см, не больше. Если нужно программировать удаленное устройство всегда можно применить USB удлинитель — так надежней. Вот мой готовый шнурок:


5 Сам программатор готов, теперь нужно установить драйвер для того, чтобы Винда смогла с ним работать (для Mac OS X & Linux, вродь-как, драйвера вообще не нужно). Тут все просто:

5.1 Скачиваем драйвер, разархивируем его.
Страничка с драйверами


5.2 Вставляем наш программатор в USB порт.



5.3 В трее появится сообщение о том, что найдено новое устройство.


5.4 Запустится мастер нового оборудования.


5.5 Указываем в окошке «место поиска» папку с драйвером.


5.6 Пройдет процесс установки драйвера. Появится окошко сообщающее о том, что драйвер установлен. Чтобы проверить, что мы там наустанавливали— заходим в «Мой компьютер/Свойства/Оборудование/Диспетчер устройств» и находим там наш программатор

Винда увидела новое устройство и готова с ним работать.

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

Я с USBTiny до этого не работал, но отзывы о нем в сети положительные (отличается надежностью и быстротой программирования) — мои тестовый прошивки это подтвердили. ATtiny2313 прошивается за 10 секунд (это вместе с проверкой). Микроконтроллер определяется и программируется надежно — не было ни одной ошибки во время моих тестов. Приятный в использовании программатор!

Файлы к статье:
– Рисунок печатной платы UART-USB на ATtiny2313
– Прошивка USBtiny программатора для ATtiny2313
– Фьюз-биты ATtiny2313 для USBtiny
– Схема кабеля для USBtiny программатора

Собираем USB-программатор для AVR из ATmega328P и FT232

Из заметки Как собрать Arduino прямо на макетной плате вы можете помнить, что Arduino так легко и просто программируется благодаря залитому в его микроконтроллер бутлоадеру. Но использование бутлоадера не всегда удобно, так как он занимает лишнюю flash-память в микроконтроллере, тормозит при его запуске, не говоря уже о том, что в новые микроконтроллеры его нужно каждый раз прошивать. И ведь можно обойтись без него, если один раз обзавестись программатором.

Покупать готовый программатор, например, USBASP, как-то не спортивно. Да и используемые в нем 10-и пиновые IDC-разъемы я нахожу не особо удобными. В Arduino используется 6 пинов, значит нужен переходник. На макетке в два ряда пины вставить не получится, значит нужен еще один переходник. Да и ждать готовый USBASP из Китая долго. Можно было бы спаять свой. Но покупать используемую в нем ATmega8 специально для программатора не хотелось. Использовать же прошивку USBASP на ATmega328P у меня, увы, не получилось. Не исключаю, что просто руки кривые.

Так или иначе, решил попробовать сделать свой программатор. Долгой историей его разработки утомлять вас не буду, приведу лишь краткую версию. Так, в частности, выглядел первый работающий прототип:

В нижней части вы видите сам программатор, в верхней — микроконтроллер, который он программирует. Приведенный программатор представляет собой обыкновенную Arduino Uno, собранную из SMD компонентов. В нее заливается уже знакомый нам скетч ArduinoISP, превращающий Arduino в программатор. Новым для нас здесь является только чип FT232. Ранее мы уже использовали готовые USB-UART преобразователи на его базе, но в собственной цепи FT232 мы еще не использовали.

Что к чему у этой микросхемы подключается подробнейшим образом описано в даташите [PDF]. Притом, понадобились не все пины, только 1 (TX), 4 (VCCIO, к плюсу), 5 (RX), 7 (GND), 15 (USB D+), 16 (USB D-), 18 (GND), 20 (VCC), 21 (GND), 25 (AGND, к земле), 26 (TEST, к земле). Вжух, и с микроконтроллером можно общаться по USB через виртуальный последовательный порт!

Рассыпуха, используемая мной в программаторе:

Окончательный вариант программатора, вид сверху:

Вид снизу:

То, что текст на обратной стороне слегка сполз — это косяк Резонита. Думаю, проект просто криво импортнулся из EAGLE в используемый ими какой-то другой софт, и этого никто не заметил.

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

Первый способ — сделать это до впаивания, через переходник из TQFP32 в DIP. Такой переходник вы можете заметить на фотографии прототипа. Он легко изготовляется при помощи ЛУТ или пленочного фоторезиста и довольно часто пригождается. Так что, если у вас данного переходника еще нет, самое время им обзавестись. Затем прошивка с (опционально) бутлоадером Arduino заливаются, как обычно.

Второй способ — использовать в качестве такого переходника саму плату программатора. Припаиваем на нее все компоненты, а также один дополнительный провод к reset-пину микроконтроллера. Теперь можно прошить микроконтроллер так же, как и в первом случае, поскольку доступ ко всем необходимым пинам есть через гребенку и провод к reset-пину.

Как вы, вероятно, уже знаете, существует утилита avrdude, предназначенная специально для общения с программатором. К сожалению, использовать ее напрямую не очень удобно. Поэтому в дополнение к программатору я также написал небольшую обвязку для avrdude на Python. На момент написания эти строк скрипт умел следующее:

$ avrisp
Usage: /home/eax/bin/avrisp <dump|upload|info|set-fuses> [fuses-name]
Possible [fuses-name] values: arduino, atmega328p-1mhz, atmega328p-8mhz

Другими словами, он умеет заливать и дампить прошивку, отображать информацию о микроконтроллере, в частности, текущие fuse bits, а также выставлять предопределенные fuse bits — дэфолты для Arduino, заводские дэфолты для ATmega328P, при которых используются внутренние часы на 8 МГц и стоит флаг Divide clock by 8, и те же fuse bits, только без названного флага. Подробнее о fuse bits вы можете прочитать в полном даташите по ATmega328P [PDF] на странице 348, в секции 31.2. Но будьте осторожны! Выставив не те fuse bits, можно перевести микроконтроллер в такое состояние, в котором вы потом не сможете до него достучаться обычными средствами.

Если в своих проектах вместо кварцевого резонатора вы решите использовать часы микроконтроллера, учтите, что для этого в ранее использованном нами файле arduino.mk понадобится закомментировать строку:

# BOARD_BUILD_FCPU := $(call readboardsparam,build.f_cpu)

… а в Makefile дописать частоту микроконтроллера, например:

# для фьюзов с именем atmega328p-1mhz
BOARD_BUILD_FCPU := 1000000

Все исходники к этой заметке, включающие в себя принципиальную схему и плату в форматах EAGLE, код скетча ArduinoISP, который я одолжил из Arduino IDE, а также скрипт avrisp.py, вы найдете в этом репозитории на GitHub. Как обычно, буду рад вашим дополнениям и вопросам!

Метки: AVR, Электроника.

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


Для программирования микроконтроллеров 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).

Питается программатор от 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 не совсем меня устраивали, и я выполнил трассировку своего варианта (скачать файлы проекта можно в конце статьи).

Защитный рисунок на фольгированный стеклотекстолит нанесён при помощи лазерного принтера и утюга.

После травления получилась вот такая красота. Я не сдержался, и процарапал тонер на дорожках между ножками микросхемы. Мне не терпелось проверить получились они или нет.


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

Групповую заготовку для таблички для печати на фотобумаге размером 10х15 я положил в архив со всеми файлами к данной записи. Скачать его можно в конце данной статьи.
Прошивку для программатора можно скачать по ссылке в конце статьи.
Fuse биты устанавливаются с соответствии с рисунком ниже:

Как запрограммировать микроконтроллер AtMega8 для программатора AVR910 можно посмотреть в моём видео:
Программирование AVR.
Корпус для программатора 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. Ниже на картинке, от руки показаны места подключения.

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

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

UPDATE: Слава Корнев прислал модифицированную версию печатной платы. Модификация заключается в смене разъёма на ISP10.

Скачать можно здесь: Программатор-AVR910-с-ISP-коннектором

Рубрики: Инструменты радиолюбителя, Устройства своими руками | Тэги: AtMega48, AVR, AVR910, Инструменты радиолюбителя, программатор avr usb, Устройства своими руками | Ссылка

Разработка USB программатора для AVR микроконтроллеров. — GetChip.net

При выборе USB программатора я оказался на распутье. Сам я пользуюсь USB программатором для Algorithm Builder, но он довольно дорог и сложен в исполнении. Для целей блога (просто, надежно, дешево) он не подходит. Есть несколько вариантов простых USB программаторов для AVR, подходящих под идеологию блога.

Варианты такие:

1 Дешевый и простой в исполнении (в том числе и для начинающих) – USBasp. Несложное схемное решение, недорогой контроллер ATMega48, хорошая скорость программирования, широко распространен. Я склоняюсь к этому варианту, но есть недостаток, который меня сдерживает – необходима начальная прошивка микроконтроллера ATMega48. А это значит нужно первоначально собрать LPT или COM программатор, а если нет ни LPT, ни COM порта где-то их еще и найти.

2 Схема на микросхеме FT232RL (преобразователе USB – COM) умеющая работать в режиме Bitbang. Схема несложная, не имеющая вспомогательного контроллера, а значит, не требует предварительной прошивки. Недостатки – микросхема FT232RL не из дешевых и достать ее почему-то проблематично (в магазинах предлагают аналоги, которые дешевле, но я подозреваю, они не смогут работать в режиме Bitbang). Еще микросхема имеет довольно плотное расположение мелких ножек – начинающим будет сложно сделать печатную плату и припаять к ней эти ножки.

3 Есть у меня еще идея заюзать в качестве программатора шнурок от мобильного телефона. Такие шнурки в продаже можно найти буквально за 3 бакса и теоретически переделка там не сложная. Но это надо еще проверить. Если получится, то это будет лучшим вариантом.

В общем если у кого есть идеи, предложения, советы как дешево и сердито залить прошивку в микроконтроллер через USB — пишите в комментариях, вместе определимся!

 

Внимание!
Вот и появился один USB программатор — USBtiny.

Смотрим статью: 056-USB-программатор – легко! (USBTiny).

На этом не останавливаемся — будут еще варианты!

(Visited 9 749 times, 1 visits today)

USBasp программатор AVR микроконтроллеров делаем сами

В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов. + требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.

То что нужно! Делаем )))

Процесс изготовления

1. Нашел схемку программатора на контроллере Mega8. Требуется минимум навестных элементов


2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания )

3. Переносим рисунок с чудо-бумаги на плату. Дорожки немного расплылись — не беда. Исправим это с помощью иголки (булавки, или еще чего острого).

4. Процесс травления уже позади. Плата промыта и просушена.

5. Стираем растворителем тонер — получаем готовые дорожки для будущего устройства

6. Далее слесарно-монтажные работы — пилим, сверлим, точим, лудим (последовательность выбирайте сами)

7. Получилась компактная плата, пока еще без элементов.

8. Пичкаем плату нужными элементами. Пока без светодиодов и разъем IDC-10 слишком длинный (торчит из корпуса)

9. Выпаиваем Г-образный IDC-10 разъем. Вместо оплетки для лужения (и прочих премудростей) использовал обычный многожильный провод. Получилось аккуратно и быстро )))

10. Припаиваем SMD-компоненты. Вид со стороны дорожек. Все делалось паяльником на 60Вт с жалом 5мм в диаметре. Таким нужно еще наловчиться…

11. Не все резисторы получилось перевести на SMD. Вид со стороны компонентов.
Как видно, контроллер — USB — IDC-10 плотно расположены… Кварц взял обычный, благо высота корпуса позволяет.

12. А вот и корпус, куда будет помещен программатор. Очень полезная штука )

13. Устройство благополучно внедрено в «шкурку сплиттера». Компактно вышло.

14. Размер платы по сравнению с 5 рубленными «монетками»

16. Конечный итог…

Доработанная печатная плата USBasp программатора: СКАЧАТЬ в формате Lay [13,91 Kb] (cкачиваний: 402)
Программирование микроконтроллера Mega8
1. Прошиваем микроконтроллер с помощью этого программатора:
Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл прошивки под названием «usbasp.atmega8.2007-10-23.hex» из архива в конце статьи…

Подключаем к программатору адаптер для программирования микроконтроллеров.


Данные для самостоятельного изготовления можно взять здесь…

Печатная плата адаптера в формате lay для Sprintlayout [12,78 Kb] (cкачиваний: 668)


При подключении USB будет постоянно светиться зеленый (красный) светодиод

Установка драйвера для USBasp

1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и «попросит» установить двайвер.


2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверам

3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.

4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device.
Радуемся, и тестируем )

Проверка работоспособности программатора

1. В качестве програмки использовал avrdude в оболочке Sinaprog1.5.5.10.
Можно использовать и приложенное к архиву оболочкуUSBASP_AVRDUDE_PROG
Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .


Необходимые данные для повторения устройства находятся в этом архиве:

Прошивка, программа, печатка, драйвер [992,87 Kb] (cкачиваний: 1234)

Всем удачи!

Как сделать свою собственную станцию ​​программирования AVR менее чем за 8 баксов: 4 шага

Наконец-то! На фотографиях вы можете увидеть много полезных вещей, так что взгляните …

Общей схемы нет, потому что это , не на самом деле схема , а набор компонентов, впаянных в перфокарту.

Главное, что возле каждого компонента есть несколько женских заголовков, которые его выламывают. Весь ЗИФ выломан, разъем ISP разбит на 2 заголовка на сигнал .Также имеется слот резонатора (система кристалл-конденсатор) с двумя выломанными контактами, которые идут непосредственно к контактам XTAL микросхемы (для использования внешнего генератора). Светодиоды используются для эскиза Arduino ISP , который определяет 3 светодиодных сигнала : Heartbeat (пульсирующий светодиод, который показывает, что Arduino не разбился) – для этого я использую зеленый светодиод , Programming (загорается, когда есть связь с IC) – для этого я использую Blue и Error (загорается при возникновении ошибки) – для этого я использую более крупный Red .

Когда я хочу запрограммировать ИС, я монтирую ее на сокет ZIF, я нахожу выводы MISO, MOSI, SCK, RST, VCC, GND по таблице данных или изображениям Google (это намного проще, чем кажется) ** что-то дополнительное здесь описано ниже **, я подключаю перемычки от этих контактов к выходу разъема ISP, подключаю кабель ISP к Programming Station и PC , и я использую avrdude или Arduino IDE , чтобы хорошо выполнять свою работу!

** Если я хочу использовать внешний генератор, я нахожу контакты XTAL1 и XTAL2 , я подключаю Resonator (поддерживаются только трехполюсные резонаторы – они довольно распространены и дешевы) к специальному . слот резонатора и I соединяют перемычками, выломанный вывод резонатора с выводами XTAL ИС .

———————————————— ————————————————– ———————————————–

Спасибо Вам за то, что вы прочитали мою третью Инструкцию!

Простейший программатор USB AVR – схемы DIY

У меня нет настольного компьютера с устаревшими портами, и я не люблю идти к другу домой каждый раз, когда мне нужно что-то загрузить на AVR. Я спросил себя: «Как я могу собрать простой diy avr USB-программатор ?» .

Ну, вообще-то я спросил у Google, и ответ был Usbtiny.Ниже я описываю своего упрощенного программатора Usbtiny.


По сути, это чрезвычайно урезанная версия UsbTinyISP от Ladyada. Когда я приступил к сборке программатора v2.0, я сначала сделал его на макетной плате, и все работало отлично, и он мог хорошо выполнять свою работу. Далее я начал удалять корешей .

Во-первых, я удалил буфер 74HC125 и дал прямое программирование цели, и это действительно сработало. Затем я удалил несколько резисторов и конденсаторов и оставил только самые необходимые.

Я преобразовал разъем ISP и USB-разъем в контактные разъемы, и после выполнения работы остался с основной микросхемой Attiny2313, одним кристаллом 12 МГц и четырьмя резисторами. Похоже на версию 1.0 Usbtiny, но в ней еще меньше деталей. Usbtiny v2.0 состоит всего из 17 отдельных частей, за исключением разъемов, а Usbtiny v1.0 состоит из 15 отдельных частей. В моей модифицированной версии 6 дискретных деталей (менее 40%),

  1. Attiny2313 основная микросхема
  2. кристалл 12 МГц
  3. 3.Подтяжной резистор 3K сброса
  4. 1.5K D- подтягивающий резистор
  5. Шинный резистор USB 2x 68R.

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

Я настроил расположение выводов заголовка ISP в соответствии с нужной мне последовательностью. Это VCC-GND-MISO-MOSI-SCK-RST.
Я использовал его для программирования Attiny2313, Atmega8, Atmega32, все работало нормально.В схеме нет ни фильтрующего конденсатора, ни заземляющих конденсаторов на 18-22 пФ для кристалла, но все отлично работает.

Я сильно урезал аппаратное обеспечение и удалил два светодиода, которые были для
1. Программирование: конечно, я знаю, когда я программирую, так что светодиод не нужен, и
2. USB OK: если устройство не инициализировано правильно и подключенный к USB, я получу ошибку от avrdude как «Ошибка : не удалось найти устройство USBtiny (0 × 1781 / 0xc9f) », зачем тогда нужен светодиод.

Затем я подумал о минимизации программы, но потом подумал, что в этом нет необходимости. Прошивка размером 2046 байт плотно умещается в 2048 байт пространства Attiny2313. Сокращение кода позволит разместить его на меньшем пространстве, но это пространство никогда не пригодится ни в одном пользовательском проекте. Поэтому я выбрал прошивку v2.0 по умолчанию.

Примечание. Чтобы записать прошивку на Attiny2313, вам понадобится другой программатор. Рекомендуется использовать любой из этих простых программаторов, который можно использовать с последовательным или параллельным портом.

Инструкция по программированию для загрузки прошивки на Attiny2313

  1. Загрузите драйвер USB, а также прошивку для версии 2.0 с сайта Ladyada.
  2. Запишите прошивку с помощью AVRdude или PonyProg и установите плавкие вставки в качестве примера
     avrdude -c stk200 -p t2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m 

Справочный источник: Ladyada and Instructables.

Обновление

: дизайн печатной платы и финальная версия

Комментарии к этой статье до 07-12-2011 , здесь переход к последним комментариям.

Учебное пособие по

AVR – Выбор программиста

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

Комментариев? Предложения? Напишите на форум!

Программистов легко десяток, я расскажу о 4 основных типах:

  1. Программисты Simple / Basic / Bitbang
  2. ISP умные программисты
  3. Макетные платы
  4. Без программиста (загрузчик)

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

Программатор параллельного порта выглядит примерно так:

Вставляется в параллельный (принтерный) порт компьютера


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

Программатор последовательного порта выглядит примерно так:

Очень похож на программатор параллельного порта, но подключается к последовательному порту

У некоторых есть буферный чип для отключения выводов программирования во время работы микросхемы, чтобы он мог использовать выводы программирования для других целей.Без буфера вам, возможно, придется удалить программатор после того, как микросхема будет запрограммирована.

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

Плюсы : Ультра дешево (10-20 долларов), легко понять, потому что программное обеспечение делает все, что исключает риск «несовместимости программиста или обновлений»
Минусы : требуется ПК с портами, компьютеры Mac не могут их использовать , если вы работаете с высоким напряжением (более 5 В), вы можете заблокировать свой порт, несколько стандартов для интерфейса программиста.

Такие программаторы можно купить в интернет-магазине adafruit.

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

Наиболее распространенный программатор – это AVRISP и AVRISPv2. Оба выглядят примерно так:


Фото любезно предоставлено EvilMadScientistLabs

.

На одном конце есть гнездо для кабеля, а 6-контактный и / или 10-контактный кабель выходит с другого.AVRISP v1 имел разъем для последовательного порта, а v2 – USB. У v1 есть оба кабеля, у v2 только 6-контактный.

AVRISPv2 можно приобрести на Digikey.com или Mouser.com за 36 долларов или около

долларов США.

Мне очень понравилась версия 1, но она была снята с производства, а версия 2 не поддерживает 10-контактные кабели, поэтому я разработал свой собственный программатор под названием USBtinyISP, вы можете собрать его из комплекта примерно за 20 долларов. Об этом подробнее здесь.

Существует гораздо больше дизайнов ISP, многие самодельные.

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

Первый – это STK500, который за 80 долларов – настоящий зверь. Он поддерживает практически все микросхемы Atmel со всеми различными сокетами. Он имеет кнопки, светодиоды, регулируемый генератор тактовой частоты и т. Д. Этот программатор поддерживается AVRStudio, которая является средой программирования Atmel.Поскольку это программист «де-факто», метод программирования, который он использует для связи с компьютером (называемый протоколом STK500), также является стандартным. У него есть некоторая кривая обучения, но многие люди его используют. Вы можете купить его в Digikey или Mouser.

Самое приятное в нем то, что вы получаете огромную плату разработчика, в ней есть разъемы для всех чипов, а также программатор. Печально то, что у него есть только последовательный порт, поэтому вам понадобится последовательный преобразователь USB.

Второй – AVR Dragon, который является не только программистом, но и эмулятором.Он больше похож на интернет-провайдера, чем на отладочную плату, у него есть разъемы для 6- и 10-контактных разъемов.

У меня было немного времени поиграть с ним, но люди говорят, что он хороший, и стоит всего 50 долларов. Обратите внимание, что нет разъемов для чипов.

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

Возьмем, к примеру, небольшую программу, записанную в чип, которая может связываться с компьютером через USB или последовательный кабель и позволять компьютеру загружать новую прошивку без использования программатора. Когда вы «обновляете прошивку» своего MP3-плеера или мобильного телефона, вот что происходит.

Например, Arduino использует загрузчик, который запрограммирован в чип на заводе Arduino. Загрузчик защищен от перезаписи. Чтобы загрузить код в Arduino, вы используете программное обеспечение Arduino, которое достаточно умен, чтобы распознавать, когда Arduino подключен.

Загрузчики

– это здорово, но вам понадобится программист ISP, чтобы установить загрузчик на чип в первый раз, если вы покупаете чип у Digikey или Mouser. Это немного проблема курицы и яйца.

Загрузчики

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

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

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

Создание FabTinyISP

Создание FabTinyISP

Содержание

Введение

FabTinyStar – еще одна версия программатора / платы AVR ISP, которая могут быть изготовлены в фабричной лаборатории с использованием фрезерованной печатной платы и легко доступны составные части. В основе проекта – усилия многих людей. Для большего история FabTinyStar и людей, которые внесли свой вклад в это, пожалуйста обратитесь к Заерку Страница FabTinyStar.

Эта версия (“FabTinyISP Minimal” является второстепенной доработкой для Версия Zaerc’s 0.3 (Bas), с небольшими модификациями:

  • Переключатель сброса и целевой переключатель мощности удалены. Сброс коммутатор увеличивает стоимость и не очень полезен для программиста интернет-провайдера, поскольку цель можно легко сбросить с помощью программной команды. Целевая мощность выключатель был удален как обеспечивающий питание цели через программирование порта обычно не рекомендуется. Пользователи, понимающие последствия этого приветствуются для создания одного из проектов FTS с выключатель.
  • Медная заливка удалена и заменена индивидуальной. следы грунта; это позволяет начинающим паяльщикам удалить больше медь. Все компоненты припаиваются к четко обозначенным контактным площадкам с обеих сторон.
  • Были удалены лишние контактные площадки, подключенные к линиям передачи данных USB; это версия нацелена исключительно на то, чтобы быть программистом ISP, а не быть универсальная плата tiny45.
  • Термистор PTC был удален; поскольку этой части в настоящее время нет в В инвентаре большинство пользователей все равно построят его с резистором 0 Ом.Как опция для обеспечения мощности цели была удалена, ее должно быть намного больше сложно создать условия, в которых потребуется полифуз.
  • Makefile заменен. Цели для программирования предохранителей на добавлен ATtiny45. Исходный Makefile также приводит к проблемы в файловых системах без учета регистра (например, Windows).

На этой странице описывается сборка, программирование, тестирование и отладка платы.

Банкноты

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

Примечания к современному USB

FabTinyISP – это «низкоскоростное» устройство USB 1.1. Это самый медленный (и один из самых старых) из типов USB-устройств. Обычно используется для мышей и клавиатур низкоскоростные устройства работают на 1.5МГц и гораздо меньше строгие требования к срокам, что позволяет полностью программно реализация используемого протокола USB (ATtiny45 не имеет аппаратная возможность USB).

Хотя все более поздние версии USB должны быть обратно совместимы со старыми таких устройств, как FabTinyISP, следует помнить о нескольких вещах, чтобы избегать выпусков:

  • Избегайте использования USB 3 концентраторы. Они не всегда работают с низкоскоростными устройствами и могут влияют на синхронизацию сигналов, от которых зависит FabTinyISP.USB-концентраторы 2 в большинстве случаев работает нормально.
  • Если вам нужно адаптироваться с USB-C, лучше всего использовать переходник кабельного типа. Это ставит намного меньше нагрузки на порты (на вашем ноутбуке, самом адаптере и программатор) по сравнению с адаптером штекерного типа без кабеля.
  • Остерегайтесь адаптеров USB-C с несколькими портами, так как они могут содержат концентратор USB3. Если вам нужно несколько портов USB-A, лучше всего подключить USB2-концентратор в адаптер USB-C.

Изготовление печатных плат

Загрузите файлы PNG для следов и контура платы:

Исходные файлы Altium доступны здесь, если вы хотите изменить дизайн.

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

Готовая печатная плата должна выглядеть примерно так:

В зависимости от количества фрезерованных смещений может быть небольшой Медь оставила на краю платы перед контактами USB. 5 зачетов должно быть достаточно, чтобы удалить всю медь в процессе фрезерования, но фрезерование занимает немного больше времени.Если вы фрезеровали меньше смещений (я сделал 3 в приведенном выше фото) лишнюю медь можно удалить ножом. Только медь в переднюю часть колодок нужно снять; медь слева по бокам отлично.

Сборка печатной платы

Получить компоненты:

  • 1x ATtiny45 или ATtiny85
  • 2 резистора 1 кОм
  • 2 резистора 499 Ом
  • 2 резистора по 49 Ом
  • 2 стабилитрона 3.3в
  • 1x красный светодиод
  • 1x зеленый светодиод
  • Конденсатор 1x 100 нФ
  • 1x 2×3 контактный разъем

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

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

Обратите внимание на компоненты, которые должны быть установлены в правильной ориентации:

  • Стабилитроны обозначены как на чертеже, так и на корпусах, с линией на катодной стороне.
  • Светодиодные катоды на чертеже печатной платы отмечены точками и более толстыми. линии. Правила маркировки упаковки различаются между производителями светодиодов, но на катодной стороне обычно видна зеленая или черная линия. эпоксидная линза. Некоторые светодиоды имеют дополнительный медный маркер на катодной площадке. дно. Некоторые печатают внизу маленькую стрелку, которая соответствует схематический символ: стрелка указывает на катод. Если сомневаешься, можно использовать мультиметр в режиме проверки диодов; светодиод будет светиться немного, когда красный зонд находится на аноде, а черный зонд находится на катод (это также полезно для определения цвета).
  • ATtiny45 отмечает штифт 1 точкой, вытравленной лазером в углу посылка. Пин 1 также отмечен на чертеже точкой.

Используйте припой, чтобы создать перемычку на перемычке рядом с разъемом ISP (J1). Этот временно подключает V CC к V прога пин на заголовке ISP, чтобы заголовок мог использоваться для программирования tiny45. (Программа подает напряжение на этот вывод и программист это обнаруживает).Как только он запрограммирован, мы удалим это мост, чтобы превратить плату в программиста, а не в программиста.


Паяльная перемычка мостовидная и немонтажная.

Улучшите разъем USB

Печатная плата получается немного тонкой, чтобы работать с большинством портов. Чтобы обеспечить хорошее USB-соединение, рекомендую следующие одно или два улучшения.

Сначала нанесите припой на контакты USB на плате, чтобы нарастить их. совсем немного. Нагрейте площадку и нанесите припой, перемещая наконечник утюга по блокнот, чтобы раздать его.Когда у вас будет достаточно припоя, протрите кончик утюга поперек подушечку одним непрерывным движением, чтобы выровнять ее до однородного слоя. если ты не получается гладкий слой, вам нужно больше флюса: очистите кончик утюга на губкой, нанесите еще немного припоя на площадку и снова протрите ее. Излишки припоя выйдут на наконечник утюга. (См. Изображение выше готовый программатор о том, как должны выглядеть USB-планшеты).

В большинстве случаев выполнения вышеуказанного достаточно, но я все же люблю добавлять немного больше толщины, приклеив дополнительный материал к нижней части печатной платы.Небольшой кусочек пластиковой раскладушки упаковка работает хорошо. Я использую крошечную каплю клея CA, чтобы прикрепить небольшой кусочек в нижней части области USB-разъема, затем обрежьте лишнюю пластик, как только он установлен. (Будьте осторожны, чтобы не нанести суперклей на остальную часть плату, особенно контакты USB на другой стороне).

Проверьте свою работу

Хотя может показаться, что уже рано начинать отладку (мы даже не пробовали еще ничего!) всегда благоразумно проверять свою работу перед подключением доска.Это займет всего пару минут и избавит вас от головной боли. Дорога.

  • Сравните вашу плату со схемой и изображением макета печатной платы, чтобы сделать убедитесь, что вы установили правильные компоненты в правильный места и ориентации.
  • Осмотрите плату визуально. Компоненты должны лежать на плате ровно, не наклоняется булавками в воздухе. Паяные соединения должны быть гладкими, а припой должен стекать как на штифт, так и на контактную площадку.если ты по-прежнему видно много оголенной меди на контактной площадке, или припой комковатый и доходит до точки, из которой вы сняли утюг, вероятно, у вас нет хорошая связь. Оплавление путем применения тепла и флюса (либо флюсом или добавив немного больше припоя). Также ищите ненужный припой перемычки между ближайшими следами и штырями.
  • Используйте мультиметр для проверки короткого замыкания между V CC и GND.

Установка программного обеспечения

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

Вы будете использовать оболочку командной строки (bash) в терминале вашей платформы для выполните все команды ниже. Если вы не знакомы с использованием командную строку, вы можете просмотреть руководство.

Linux (настоятельно рекомендуется)

Для Ubuntu и других дистрибутивов на основе Debian введите следующее команда, за которой следует ваш пароль при появлении запроса:

 sudo apt install avrdude gcc-avr avr-libc make 

MacOS

Загрузите и установите CrossPack.

Окна

Установить набор инструментов в Windows немного сложнее. Отдельный инструкции представлены здесь.

Получение и сборка микропрограммы

Загрузите исходный код прошивки и распакуйте zip-файл (в Linux распакуйте fts_firmware_bdm_v1.zip). Открыть вашу программу терминала и cd в каталог с исходным кодом.

Выполнить make. Это создаст шестнадцатеричный файл, который будет запрограммирован на ATtiny45. Когда команда завершится, у вас должен появиться файл называется fts_firmware.шестнадцатеричный. Если команда не завершена успешно, что-то не так с установкой вашей инструментальной цепочки. Проконсультируйтесь сообщения об ошибках для информации, которая поможет вам отладить это.

Программируйте ATtiny45

Сначала обновите Makefile для того типа программиста, который вы собираетесь использовать. чтобы запрограммировать вашу доску. Makefile по умолчанию предполагает, что вы собираетесь используйте программатор из семейства usbtiny (например, другую плату FabISP). Если вы используете другой программатор, сначала выясните, что avrdude (программное обеспечение для программирования) называет это.Вот несколько часто встречающихся AVR программистов:

Отредактируйте файл Makefile. Важно использовать текст редактор, предназначенный для программистов; такие программы, как Блокнот или WordPad, могут добавлять информация о форматировании, которая нарушает работу файла. В Linux – gedit (графический интерфейс). или nano (командная строка) – хорошие варианты; Пользователи Windows могут захотеть используйте Notepad ++. TextEdit в OS X обычно работает, просто убедитесь, что вы сохраняете как обычный текст, а не RTF (и конечно, к имени файла не добавляется “.txt”). Sublime Text – еще один популярный выбор на нескольких платформах.В общем, все, что вы используете для редактирования своего HTML-кода, наверное хороший выбор.

В верхней части файла найдите строку, в которой написано:

 ПРОГРАММАТОР? = Usbtiny 

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

Вставьте плату в порт USB. Используйте порт USB 2.0, а чем порт USB 3.0, если он у вас есть. Также рекомендуется использовать короткие Удлинительный кабель USB или USB 2.0 концентратор вместо прямого подключения к порту, особенно если ваши USB-порты перевернуты.Это снимет напряжение и снизит риск повреждение встроенных портов USB. Например:

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

Подключите программатор к разъему ISP на вашей плате. Обратите внимание, что там есть две разные ориентации, в которых вы можете подключить кабель; это Важно, чтобы вы получили контакт 1 в нужном месте.Контакт 1 отмечен схема платы с точкой и подключенным к ней сигналом MISO. Если вы посмотрите на пластиковом разъеме на кабеле программатора должен быть небольшой стрелка, точка или название производителя, отмечающие угол с помощью булавки 1. Обратите внимание, что нет обязательного стандарта для того, в каком направлении кабель выходит из разъем, поэтому ищите маркер контакта 1.

Запустите make flash. Это сотрет целевой чип и запрограммирует его флэш-память с содержимым созданного ранее файла .hex.Вы должны увидеть несколько индикаторов выполнения, пока avrdude стирает, программирует, и проверяет чип.

Если что-то пошло не так, проверьте:

  • , что программатор подключен правильно и контакт 1 на разъеме соответствует контакту 1 на плате
  • , что ваша плата хорошо установлена ​​в USB-порт
  • , что ATtiny45 установлен в правильной ориентации
  • , что ваша пайка выглядит нормально на ATtiny45 и заголовке ISP (примечание короткое замыкание может произойти там, где следы проходят под разъемом)

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

После того, как вы успешно запрограммировали флэш-память, пришло время установить конфигурация предохранителей. Сделаем это поэтапно:

  • Сначала мы установим предохранители, которые контролируют, где находится микроконтроллер. его источник часов от. (USB требует, чтобы часы поступали от PLL, и не делиться на 8). Это позволит нам проверить, что плата работает как USB-устройство, но пока не сможет программировать другие доски.
  • Только убедившись, что USB работает, мы установим предохранитель, отключающий штифт сброса и превращает его в обычный штифт GPIO.Это позволит чип использует контакт сброса для программирования других плат, но отключит возможность повторного программирования этого чипа. Потому что это нелегко обратимый, мы хотим убедиться, что все остальное работает в первую очередь!

Подайте команду включения предохранителей. Это настроит все предохранители. , кроме , который отключает контакт сброса. Опять же, вы должны увидеть несколько индикаторов выполнения от avrdude. Если этот шаг не удается, но предыдущий работал, вероятно, у вас где-то прерывистое соединение.

Проверка работоспособности USB

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

Linux

Введите lsusb в терминале, чтобы отобразить список USB-устройств. если ты см. устройство “Multiple Vendors USBtiny”, оно сработало! Если нет, команда dmesg может предоставить дополнительную информацию о том, что пошло не так.Ты хотите видеть сообщение “Новое низкоскоростное USB-устройство” без каких-либо дальнейшие ошибки. (Обратите внимание, что sudo dmesg -c очистит сообщения после распечатки, что полезно сделать перед подключением платы так что вы сможете точно сказать, какие сообщения являются результатом его подключения в). Если вы не видите сообщение «новое низкоскоростное устройство», проверьте подтяжка на линии USB (резисторы 1 кОм и 499 Ом, R1 и R2, последовательно между V CC и D-) для правильных значений и хорошего подключения (компьютер использует эти резисторы и их значения для определения какой тип USB-устройства было подключено).Если вы видите “новый низкоскоростное устройство “, но после этого возникнут другие ошибки, попробуйте следующее:

  • Иногда просто плохое соединение с портом; попробуйте отключить и повторное подключение. Убедитесь, что контакты USB чистые и даже количество припоя на всех из них, и что поверхности гладкий.
  • Порты
  • USB 2.0 с большей вероятностью будут работать, чем порты USB 3.0. если ты нет портов USB 2.0, попробуйте подключиться через USB 2.0 хаб.
  • Проверьте следы и компоненты между выводами USB для передачи данных и микроконтроллер. Убедитесь, что стабилитроны в правильном положении. ориентации, что последовательные оконечные резисторы (R3 и R4) являются правильные значения (49 Ом) и что соединения в порядке. Мера целостность между резисторами и контактами USB, и резисторами и контакты микроконтроллера, к которым они подключаются (контакты 2 и 3). Проверять на короткое замыкание между контактами 2 и 3 микроконтроллера и другими соседними следы.
  • Попробуйте подключиться к компьютеру, который, как вы знаете, работал с кем-то чужую доску, или попробуйте подключить чью-то известную рабочую доску к своей компьютер. Это поможет вам сузить круг вопросов, есть ли у вас несовместимость с вашими USB-портами или проблема с вашей платой.

MacOS

Откройте «Сведения о системе» Apple (Меню Apple → Об этом Mac → Дополнительная информация; или из папки Utilities). Выберите USB из списка слева, и вы USBTiny должен быть указан как устройство справа.Если он появляется, это работает правильно. В противном случае следуйте приведенным выше инструкциям по отладке (примечание что MacOS не имеет команды dmesg, хотя похожая информация может быть доступен где-нибудь в приложении консоли). Либо проверьте все выше, или подключитесь к машине Linux, чтобы увидеть, получаете ли вы Сообщение “новое низкоскоростное устройство” в dmesg.

Окна

Windows перечисляет USB-устройства в диспетчере устройств (Пуск → Панель управления → Система. → Диспетчер устройств), хотя он не всегда сообщает вам, что они собой представляют, пока установлены правильные драйверы.USB-устройства также могут отображаться в разделе «Устройства. и принтеры “или” Оборудование и звук “. Если вы не знаете Windows-машина достаточно хорошо, чтобы определить, работает ли устройство USBtiny. появившись, вы можете захотеть подключиться к чьей-нибудь машине Linux или Mac, чтобы убедитесь, что он работает.

Перегорел предохранитель сброса

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

Во-первых, нам нужно изменить бит, который будет включать вывод сброса ATtiny45. в контакт GPIO. Еще раз, это отключит нашу возможность перепрограммировать этот ATtiny45 в будущем, поэтому мы хотели убедиться, что все прежде чем делать это. Подключите программатора вашего интернет-провайдера к вашей плате еще раз time и запустите make rstdisbl. Это то же самое, что и сделать команду предохранителей, но на этот раз она будет включать этот сброс также отключить бит.Вы должны увидеть несколько индикаторов выполнения, и avrdude больше никогда не сможет разговаривать с этим чипом через интернет-провайдера заголовок.

Во-вторых, нам нужно отключить V CC от V прога пин на заголовке ISP путем снятия моста на перемычку припоя. Иногда излишки припоя прилипают к чистому жало паяльника; в противном случае используйте оплетку для удаления припоя, чтобы удалить припой с перемычку, тем самым разорвав соединение.

Проверьте своего программиста

Теперь у вас должен быть собственный работающий программист ISP! Но перед тобой Назовите это днем, используйте свою доску, чтобы попробовать запрограммировать другую доску.


Это работа под лицензией Creative Commons Международная лицензия Attribution-NonCommercial-ShareAlike 4.0.

Pololu USB AVR Programmer v2.1

Обзор

Программатор Pololu USB AVR v2 (внизу), подключенный к A-Star 32U4 Prime SV для программирования.

Pololu USB AVR Programmer v2.1 – это компактный недорогой внутрисистемный программатор (ISP) для микроконтроллеров AVR от Atmel (теперь является частью Microchip).Программатор предоставляет интерфейс для передачи скомпилированной программы AVR с вашего компьютера в энергонезависимую память целевого AVR, что позволяет ему запускать программу. Это хорошее решение для программирования контроллеров на базе AVR, таких как контроллеры роботов A-Star 328PB Micro и Orangutan. Его также можно использовать для обновления, замены или удаления загрузчика на некоторых платах Arduino, включая Uno, Leonardo и Mega, а также на наших Arduino-совместимых контроллерах A-Star. Этот программатор предназначен для работы с обоими версиями 3.Устройства на 3 В и 5 В, и его даже можно настроить для подачи питания на целевое устройство в системах с низким энергопотреблением.

Программатор подключается к USB-порту вашего компьютера с помощью стандартного кабеля USB A – Micro-B (не входит в комплект) и связывается с вашим программным обеспечением для программирования, таким как Atmel Studio, AVRDUDE или Arduino IDE, через виртуальный COM-порт с помощью STK500. протокол. Программатор подключается к вашему целевому устройству с помощью прилагаемого 6-контактного кабеля для программирования ISP (старые 10-контактные соединения ISP напрямую не поддерживаются, но легко создать или приобрести адаптер ISP с 6 на 10 контактов) .Программатор также действует как последовательный адаптер USB-TTL, обеспечивая последовательный порт уровня TTL, который можно использовать для связи с другими последовательными устройствами с вашего компьютера. Он поставляется полностью собранным с припаянными разъемами, как показано на рисунке.

Программатор Pololu USB AVR v2.1 представляет собой замену более старого программатора Pololu USB AVR v2 с несколькими аппаратными улучшениями, которые описаны в разделе «Сравнение с предыдущими программаторами AVR» ниже.

Для подключения этого продукта к компьютеру требуется кабель USB A – Micro-B.

Характеристики и характеристики

  • Подключается к компьютеру через USB с помощью кабеля USB A – Micro-B (не входит в комплект)
  • Эмулирует программатор STK500 через интерфейс виртуального COM-порта
  • Работает со стандартным программным обеспечением для программирования AVR, включая Atmel Studio, AVRDUDE и Arduino IDE
  • Программное обеспечение для настройки доступно для Windows, Mac OS X и Linux
  • Поддерживает оба 3.Устройства на 3 В и 5 В; может автоматически переключать рабочее напряжение в зависимости от обнаруженной цели VCC
  • Может опционально запитать цель от 3,3 В или 5 В в системах с низким энергопотреблением
  • Функциональность последовательного адаптера USB-TTL для универсальной последовательной связи
  • Обеспечивает выход тактовой частоты 100 кГц, что может быть полезно для восстановления неправильно сконфигурированных AVR.
  • Все контакты ввода / вывода защищены резисторами на 470 Ом
  • 6-контактный кабель ISP и двухсторонний штекерный разъем 1 × 6 в комплекте
  • Подробное руководство пользователя

Поддерживаемые микроконтроллеры AVR

Программист должен работать со всеми AVR, которые могут быть запрограммированы с помощью интерфейса AVR ISP (внутрисистемное программирование), которое также известно как внутрисхемное последовательное программирование (ICSP), последовательное программирование или последовательная загрузка, но это не было сделано. протестировано со всеми устройствами.Мы ожидаем, что он будет работать с большинством AVR в семействе megaAVR (ATmega), и он работает с некоторыми членами семейства tinyAVR (ATtiny), но он не поддерживает Tiny Programming Interface (TPI) и не работает с XMEGA или с 32-битными AVR. Программатор имеет обновляемую прошивку, позволяющую обновлять будущие устройства.

Программатор разработан для использования с микроконтроллерами AVR, работающими от 3,3 В или 5 В. По умолчанию программист ожидает, что целевой объект будет иметь автономное питание, но его можно настроить для подачи питания на целевое устройство в системах с низким энергопотреблением. .

Поддерживаемые операционные системы

Мы поддерживаем использование Pololu USB AVR Programmer v2.1 и его программного обеспечения для настройки в настольных версиях Windows (7, 8 и 10), Linux и Mac OS X 10.11 или более поздних версиях. Более старые версии Windows не поддерживаются.

Программатор Pololu USB AVR v2 (вверху), подключенный к Adafruit Pro Trinket для программирования.

Дополнительная функция: последовательный порт уровня TTL

Этот программатор работает как переходник USB-последовательный порт.Программист устанавливает как два виртуальных COM-порта : один для связи с программным обеспечением, а другой – для последовательной связи общего назначения. Это означает, что вы можете легко переключаться между программированием AVR и его отладкой через последовательный порт TTL без необходимости открывать и закрывать программу терминала. В дополнение к последовательным линиям передачи ( TX ) и приема ( RX ), программатор позволяет использовать A и B в качестве линий последовательного установления связи, которые можно настроить с помощью нашего программного обеспечения.

Шесть контактов на последовательном заголовке (GND, A, VCC, TX, RX и B) расположены так, чтобы быть похожей на распиновку общедоступных кабелей FTDI USB-to-serial и коммутационных плат. В конфигурации по умолчанию контакт B используется как выход DTR (а контакт A – неиспользуемый вход), что позволяет подключать программатор непосредственно к различным Arduino-совместимым платам (включая нашу A-Star 328PB Micro) и использовать это для загрузки программ на плату через серийный загрузчик.

Принадлежности в комплекте

Программатор Pololu USB AVR v2.1 поставляется в полностью собранном виде с припаянными разъемами ISP и последовательными разъемами, а также включает аксессуары, показанные на рисунке ниже. 6-контактный кабель ISP можно использовать для программирования AVR. Двусторонний штекерный разъем 1 × 6 можно подключить к последовательному разъему, чтобы эффективно изменить его пол (что позволяет подключить этот разъем к макетной плате или перемычкам с гнездом).

Pololu USB AVR Programmer v2 или v2.1 с включенным оборудованием.

Слева направо: оригинальный USB-программатор Orangutan, программатор Pololu USB AVR и программатор Pololu USB AVR v2 (который выглядит почти так же, как v2.1).

Сравнение с предыдущими программаторами AVR

Программатор Pololu USB AVR v2.1 (продукт # 1372) представляет собой заменяемую замену нашему более старому программатору Pololu USB AVR v2 (продукт # 3170) с тремя аппаратными улучшениями:

  • Дополнительная функция вывода VCC программатора v2 (которая позволяет вам запитать целевой AVR от программатора) не была разработана для питания нагрузок с емкостью более нескольких микрофарад. Программатор v2.1 имеет лучшую выходную цепь VCC, поэтому он может питать платы с более высокой емкостью, что привело бы к тому, что программист v2 постоянно испытывал бы аварийные сбросы.Несмотря на то, что все еще существует предел допустимой емкости, мы ожидаем, что функция вывода v2.1 VCC будет работать с большинством небольших целевых плат AVR, которые имеют емкость менее 33 мкФ на VCC, и мы протестировали ее с A-Star 328PB Micro.
  • Подключение программатора v2 к роботу 3pi может привести к тому, что один из двигателей ненадолго заработает на полной скорости, потому что схема программатора для измерения VCC может непреднамеренно подтянуть один из выводов программирования 3pi (который служит входом драйвера двигателя) перед GND соединение установлено.Программатор v2.1 улучшил схему измерения VCC, которая ограничивает рабочий цикл этого эффекта примерно до 0,2%, поэтому двигатель не двигается (но может издавать щелкающий звук с частотой 25 Гц).
  • Программатор v2 обычно отключался, если на его вывод RST был подан сигнал 5 В, когда он работал при 3,3 В. Программатор v2.1 не имел этой проблемы.

По сравнению с оригинальным программатором Pololu USB AVR (продукт # 1300), программатор Pololu USB AVR v2.1 имеет ряд улучшений:

  • Поддержка устройств, работающих на 3.3 В (дополнительно к 5 В)
  • Вывод
  • VCC может быть настроен для обеспечения питания 3,3 В или 5 В в маломощных системах.
  • Защитные резисторы на всех линиях ввода / вывода
  • Более точная эмуляция частот ISP, обеспечиваемая STK500; вы можете использовать пользовательские интерфейсы Atmel Studio и AVRDUDE, чтобы упростить настройку частоты вашего интернет-провайдера.
  • Улучшения удобства использования для последовательного интерфейса, такие как более стандартное расположение выводов (аналогично FTDI) и предварительно заполненный женский заголовок

Это v2.Программатор 1 не включает USB-кабель и не имеет бонусной функции SLO-scope. Помимо этих изменений, у программатора v2.1 и оригинала различаются многие другие детали; Обязательно обратитесь к руководству пользователя для программистов v2.x, чтобы познакомиться с этим программистом.

Люди часто покупают этот товар вместе с:

Миниатюрный USB-программатор Микроконтроллеры AVR AVRDUDE

USB-программатор Компонентов немного – микроконтроллер ATtiny45, два стабилитрона, конденсатор и несколько резисторов.Разумеется, есть еще разъемы – разъем USB и разъем IDC-6. Резистор R1 информирует хост о наличии USB-устройства … Проекты электроники, миниатюрный USB-программатор Микроконтроллеры AVR AVRDUDE “AVR-проект, микроконтроллерные проекты, программатор” Дата 2019/08/04

USB-программатор Есть несколько компоненты – микроконтроллер ATtiny45 , два стабилитрона, конденсатор и несколько резисторов. Разумеется, есть еще разъемы – разъем USB и разъем IDC-6.Резистор R1 сообщает хосту о наличии USB-устройства, передающего данные в медленном режиме.

Резисторы R2 и R3 в сочетании с D1 и D2 обеспечивают максимальное напряжение 3,6 В, а не 5 В, поскольку напряжение +5 В на шине вызывает ошибки SYNC. Резисторы R4… R6 защищают программируемую цепь от повреждения при питании ее напряжением ниже 5 В.

Перемычка JP1 должна быть разомкнута. Предполагается только тогда, когда вы хотите включить USB-чип. Очевидно, вам нужно иметь в виду ограничения максимально допустимого тока нагрузки и диапазона напряжения, обеспечиваемого USB.

Принципиальная схема USB-программатора AVR

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

Микроконтроллер должен быть запрограммирован в режиме высокого напряжения, потому что нулевая линия работает как типичный ввод / вывод. Такие программисты имеют т. Н. параллельно. Однако можно поступить иначе.Большинство программ не позволяют отключать линию RST в режиме SPI, но, например, AvrDude предлагает эту возможность. Используя оверлей Burn-OMat, вы можете переключить линию RST в режим ввода / вывода только для включения режима Expert.

Настройка AVR Studio для работы с USB-миниатюрным программатором AVR:

В меню «Инструменты» выберите «Настроить…».
Во вновь открывшемся окне «Команда» выберите вкладку «Инструменты».
Указываем на значок «Новый» или нажимаем клавишу «Вставить».
Вводим имя программиста, например «USBtiny».
В окне «Команда» указываем путь к «avrdude» (например: C: WinAVR-20100110binavrdude.exe).
В окне аргументов указываем параметры: «-p m168 -c usbtinyp -P usb -U flash: w:» файл. hex: a -U flash: v: «.hex файл: a», где «m168» – это тип процессора.
В «Начальном каталоге» введите путь к файлу (обратите внимание на последний символ «»).
Подтверждаем изменения кнопкой «Закрыть».

Для программирования микроконтроллера выберите имя нашего программатора в меню «Инструменты» (в данном примере это «USBtiny»).

Настройка Bascom для работы с USB tiny AVR Программатор:

В меню выберите «Опции / Программатор».
Выберите «Внешний программатор» из раскрывающегося списка.
Во вкладке «Другое» (внизу окна) указываем путь к «avrdude».
В окне параметров введите «avrdude» -p m168 -c usbtiny -U flash: w: «{FILE}»: a -U flash: где «m168» – это тип процессора.

Программирование с помощью клавиши F4 или значка «Программный чип».

Поддерживаемые микроконтроллеры и их коды

mega

m2561

megamegamega

ATmega8535

ATmega128

M128

ATmega1280

m1280

ATmega1281

m1281

ATmega16

M16

ATmega162

M162

ATmega164

m164

ATmega168

M168

ATmega169

m169

ATmega2560

m2560

ATmega2561

m2561

m2561

m2561

ATmega324

m324

ATmega328

m328

ATmega329

m329

ATmega3290

m3290

ATmega48

m48

ATmega64

m64

ATmega640

M640

ATmega644

m644

ATmega649

m649

ATmega6490

m6490

ATmega8

m8

m8

m8

m8535

ATmega88

M88

ATtiny12

t12

ATtiny13

t13

ATtiny15

T15

ATtiny2313

t2313

ATtiny25

T25

ATtiny26

T26

Attiny45

t45

ATtiny85

t85

СПИСОК ССЫЛОК ДЛЯ ЗАГРУЗКИ ФАЙЛОВ (в формате TX422):zip

USB-программатор AVR (совместим со всеми Windows) USB-программатор AVR (совместим со всеми Windows) [RKI-1043]

AVR USB Programmer – это недорогой внутрисистемный программатор (ISP), совместимый со STK500V2. Он поддерживается во всех операционных системах, включая Windows 2000, XP, Vista, Windows 7, Windows 8 и Windows 10.


Характеристики

  • Совместим с Atmel STK500V2 со встроенным преобразователем USB в последовательный.
  • Совместим с AVR Studio, AVRDUDE и компиляторами, поддерживающими протокол STK500 или STK500V2.
  • Регулируемые часы ISP позволяют мигать устройствам с очень низкой частотой, например 32 кГц.
  • Высокоскоростное программирование: программы размером 32 КБ мигают всего за 15 секунд.
  • Часы ISP можно понизить с помощью перемычки (если программное обеспечение программатора не поддерживает установку часов ISP)
  • Использует источник питания USB, внешний источник не требуется.

Программное обеспечение AVR STUDIO (STK 500) используется с аппаратным обеспечением AVR USB Programmer для обеспечения всех необходимых функций, таких как чтение, запись, блокировка и настройки предохранителей.


Этот продукт включает

  • USB-программатор AVR
  • Кабель USB
  • Компакт-диск с документацией и программным обеспечением

Поддерживаемые микроконтроллеры Atmel AVR

AT90 AVR Мега AVR Миниатюрный АРН ATXMEGA AVR

AT90S1200

ATmega103 ATtiny4 ATXMega128A1

AT90S2313

ATmega128 ATtiny5 ATXMega128A1REVD

AT90S2333

ATmega1280 ATtiny9 ATXMega128A3

AT90S2343

ATmega1281 ATtiny10 ATXMega128A4

AT90S4414

ATMega1284P ATtiny11 ATXMega16A4

AT90S4433

ATMega128RFA1 ATtiny12 ATXMega192A1

AT90S4434

ATmega16 ATtiny13 ATXMega192A3

AT90S8515

ATmega161 ATtiny15 ATXMega256A1

AT90S8535

ATmega162 ATtiny2313 ATXMega256A3
AT90CAN128 ATmega163 ATtiny24 ATXMega256A3B
AT90CAN64 ATmega164P ATtiny25 ATXMega32A4
AT90CAN32 ATmega168 ATtiny26 ATXMega64A1
AT90USB1286 ATmega168P ATtiny261 ATXMega64A3
AT90USB1287 ATmega169 ATtiny4313 ATXMega64A4
AT90USB162 ATmega16U2 ATtiny44
AT90USB646 ATmega2560 ATtiny45
AT90USB647 ATmega2561 ATtiny461
AT90USB82 ATmega32 ATtiny84
AT90PWM2 ATmega324P ATtiny85
AT90PWM2B ATmega324PA ATtiny861
AT90PWM3 ATmega325 ATtiny88
AT90PWM3B ATmega3250
32UC3A0512 ATmega328P
ATmega329
ATmega3290
ATmega3290P
ATmega329P
ATmega32U2
ATmega32U4
ATmega48
ATmega64
ATmega640
ATmega644
ATmega644P
ATmega645
ATmega6450
ATmega649
ATmega6490
ATmega8
ATmega8515
ATmega8535
ATmega88
ATmega88P
ATmega8U2



Программное обеспечение для программирования

  • AVRSTUDIO
  • Робокитс USB Программатор V1.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *