USB-программатор (AVR): описание, назначение. Программатор USB ISP для AVR: Ещё один шаг в сторону от ардуинонизации Программатор для авр из шнура телефонов

USB-программатор (AVR): описание, назначение. Программатор USB ISP для AVR: Ещё один шаг в сторону от ардуинонизации Программатор для авр из шнура телефонов
USB-программатор (AVR): описание, назначение. Программатор USB ISP для AVR: Ещё один шаг в сторону от ардуинонизации Программатор для авр из шнура телефонов

В этом видеоролике я расскажу про программатор AVR, который я купил на ebay. Стоит этот программатор avr usb 3$. Это программатор avr микроконтроллеров. Я покажу как им пользоваться, как его первый раз включить, установить драйвера, какой для него есть софт, для него немного другой софт, то есть не такой софт как я показывал в видео о AVR910 программаторе, кстати, видео о AVR910 программаторе, точнее ссылка на это видео будет у меня в конце ролика, можете дождаться конца ролика, кликнуть по ней и вы перейдёте на видео об этом AVR910 программаторе.

Программатор usbasp avr я купил именно потому, что видео с AVR910 программатором, очень популярно, и мне задают очень много вопросов, задают как в комментариях, так и в личке. В комментариях задают мало вопросов, в личке задают очень много вопросов. Я пользуясь случаем, хотел попросить вас, если у вас есть вопросы, конкретно к теме которую я затронул в каком-то видеоролике, пишите мне пожалуйста в комментариях к данному видеоролику. Я на все комментарии получаю уведомления, и я вам обязательно отвечу. Я прошу, так как мне в личку, как правило, задают одни и те же вопросы. Я на них отвечаю, но эти вопросы и ответы видят только те, кто их задавал. Если вы спрашивали бы меня в комментариях, и я ответил, то скорее всего человек прочёл бы комментарий, и у него если и возник вопрос, как и у кого то кто уже спросил меня в комментариях, он получил мой ответ. На комментарии я обязательно отвечу.
Я зашёл на ebay и выбрал самый дешёвый программатор AVR. Это программатор за 3 $. Если посчитать, то себестоимость AVR910 программатора, если у нас в Молдавии покупать — микросхема AtMega8 стоит 2 $, гнездо USB mini стоит 0,4 $, кварц тоже стоит центов 0.35-0.40 $. В общем, тут наберётся как раз на 3 $. Может немного меньше, может немного больше, но это только детали.


Вам ещё нужно сделать плату, запаять всё. Я когда делал программатор AVR910, я его делал чисто из спортивного интереса. Мне было интересно, это были первые пробы SMD компонентов, у меня было очень много свободного времени, так как я был студентом, и я занимался им в своё удовольствие, более того для того, чтобы сделать этот программатор (AVR910), с микроконтроллером, нужно обязательно иметь другой программатор, которым вы запрограммируете микроконтроллер в программаторе AVR910.
Ну и давайте поговорим об программаторе usbasp avr. Первое что я вам скажу — купите себе их два. Не покупайте один, купите два. Объясню почему, сделан он мягко говоря по-китайски. Если посмотрите, вы увидите, что многие детали криво стоят, пайка, сказать что ужасная — ничего не сказать. Отверстия не заполнены припоем, то есть он работает, но качество его… Видно, что повторяемость очень плохая, есть большая вероятность, что какой-то из них может не работать.


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


Да, я и забыл сказать, я купил программатор не AVR910, он тоже для AVR, но это программатор USBasp. Программатор в свободном доступе, это товарищ из Германии его разработал, есть схемы, есть документация на него. У меня под данным видео будет ссылка на мою статью, в которой будут даны все ссылки на софт, на автора проекта. Но китайцы сюда добавил стабилизатор, то есть они немного модернизировали USBasp. Здесь стандартный ISP10 разъём. С программатором идёт такой шнурок, я уже его разрезал и подключил к микроконтроллеру. Я Толику обещал снять видео, и я подпаял к микроконтроллеру провода. Данный программатор USBasp имеет возможность выбора питания, то есть на программируемую схему я могу выбрать что именно я хочу, то есть я могу вообще не питать от программатора схему, вообще не поставив джампер, либо я могу выбрать питание от 5 В сразу от USB,


либо вот так поставив джампер и на программируемую схему пойдёт 3.3 В от USB через данный стабилизатор.


Схема соединения разъёма ISP10 (кликни для увеличения):


О программаторе для AVR больше нечего сказать, остаётся его только вставить в USB порт. Сейчас мы посмотрим, как он определился, поставим не него драйвера, и я покажу программы, с помощью которых можно им программировать. В AVR910 я показывал программу AVRosp, которой можно программировать, используя AVR 910 программатор. AVRosp нельзя пользоваться для использования программатора USBasp. На моём сайте вы скачаете архив, в котором найдёте несколько папок, папка драйвер, и папка софт. В папке драйвер находятся драйвера для этого программатора (UABasp). Я их люблю ставить по ближе к диску С, потому что потом их проще указать. Я их временно копирую на диск С. Теперь я в диспетчере устройств правой кнопкой выбираю «обновить драйверы», он конечно же не может найти, выполняем поиск, показываем откуда искать. Мы хотим с диска С искать. Жмём далее. У меня сейчас стоит Windows 7 x64. Образ оригинального диска, без никаких паков, это чистый windows. В ней ничего не отключено, всё по умолчанию. Я это всё говорю к тому, что AVR910 не хотел работать, точнее драйвера не имели цифровой подписи и windows их блокировал. AVR910 у меня в 64 битной windows 7 не работал. Я когда снимал видео, снимал в 32 битной WIndows, у меня стоят две системы. Всё, USBasp видится как устройство для windows 32.


Дальше уже нужны программы чтобы работать с программатором usbasp avr. Открываем папку софт.


Мне очень понравился avrdudeprog, это графический интерфейс под консольную программку AVR dude. Эта программа поддерживает как AVR910 программатор, так и USBasp. Кстати, данный avrdudeprog программирует при использовании 910 программатора в несколько раз быстрее по скорости, чем стандартный ARVRosp который я показывал в видео. Так что я вам рекомендую перейти на avrdudeprog, даже если у вас есть AVR910 программатор.


Подключаем наше устройство. Устройство запустилось, выбираем AtMega 16, и выбираем стереть всё. Микроконтроллер чист, и как видим он действительно чист, так как на дисплей у меня ничего не выводится.
Дальше выбираем, что мы хотим запрограммировать, ну и жмём программирование. Обратите внимание, как быстро будет идти программирование. Выводится информация, что биты сброшены, флешь очищена перед прошивкой. Было запрограммировано флешь, а потом флешь была прочитана и сверена с тем, что программировалось, то есть проверено, что ошибок нет. То есть была проведена верификация. Ну и как видим, у меня устройство запустилось.
Чем мне avrdudeprog не нравится, так это fuse. Дело в том, что с fuse всё очень и очень сильно напартачено в AVR, дело в том, что по datasheet запрограммированный fuse считается 0. То есть по умолчанию должны быть прямые fuse, то что запрограммировано — 0. Многие программисты считают, что если запрограммировано — должно быть 1. И программистов таких много, программ для программирования очень много, и кто-то придерживается того как в datasheet написано, а кто-то придерживается того, как он считает лучше. Галочка это запрограммировано, или галочка это не запрограммировано? В настройках можно выбрать прямые либо инверсные, и галочки меняются. В этих fuse начинающий 200% запутается. Даже 300%, то есть он залочит себе несколько раз микроконтроллер. Поэтому, я так же приложил несколько других программ для программирования. Обратите внимание, что avrdudeprog сразу работает, её не нужно устанавливать, просто запускаете exe файл, можно даже себе на рабочий стол отправить этот exe, то есть создать ярлык, и оттуда его открывать.
Есть ещё две очень интересные программы. Мне нравится, именно из-за fuse битов. Вообще мне очень нравится avrdudeprog, но для начинающих я бы рекомендовал всё таки eXtreme Burner, устанавливается она также как и обычные программы, ничего в этом сложного нет, просто жмём далее, далее, иногда читайте что написано, установили и пользуемся. Программа eXtreme Burner предлагает пойти на перезагрузку, но я не хочу этого делать, будет и без рестарта работать. Выбираем наш микроконтроллер. Мне не нравится, что ни в одной из них нет как в AVRosp кнопки AutoDetect, нажав на которую, программа считывает с микроконтроллера сигнатуры и сразу определяет что именно за микроконтроллер подключен. Удобно работать с fuse. В eXtreme Burner интерфейс имеет несколько вкладок, flach, eeprom, ну и fuse, вы разберётесь.


Нажимаем сначала прочесть все, программа считала fuse с микроконтроллера. И можно, нажав на кнопку «детали», поменять fuse. В программе eXtreme Burner нет непонятных галочек, а сразу написано, не запрограммировано, запрограммировано. И сделано точно так, как в спецификации AVR, то есть запрограммированно — 0. Единственное чем мне нравится eXtreme Burner, так это тем, что можно сбросить fuse по умолчанию. В данной программе всё тоже не совсем удобно.
Ещё более удобно с fuse в программе Khazama AVR Programmer. Вот такая наипростейшая программа, выбираем AtMega 16. В этой программе постоянно вылезает очень интересная ошибка.


Она не имеет ничего страшного, и сейчас я объясню почему она происходит. Дело в том, что AVR910 программатор как вы помните, имеет штыри, куда мы ставим джампер, и программатор понижает частоту. Дело в том, что по умолчанию идёт 1.5 МГц, а когда вы ставите джампер, частота падает в 4 раза. Так как программатор USBasp сделан таким образом, чтобы он был совместим с Arduino, то он сам переключает частоты, с быстрой на медленную, и Khazama AVR Programmer, уже может прошить любые контроллеры. AVR910 я AtMega которая тактируется на частоте 1 МГц, уже не могу запрограммировать без джампера, то есть мне приходится понижать частоту, для того, чтобы запрограммировать микроконтроллер. USBasp сам переключает частоты, и мне никакой джампер никуда ставить не нужно. Но по спецификации, AVR программатор, то есть программа, отправляет на программатор скорость, с которой должен тактироваться тактовый сигнал, то есть частоту. И в данной программе, можно выбрать частоту, но как я уже сказал, этот программатор сделан совместимым с arduino, то он уже не поддерживает b команды. И поэтому постоянно выходит данная ошибка. Она сильно напрягает, но она стоит того. Нужно много раз нажимать ОК, ОК, ОК. Но обратите внимание, что вы можете выбрать что вы хотите. Начинающему это очень удобно. К примеру, частота. Вот смотрите, нужно поменять частоту процессора — да ради бога, на что хочешь меняй. В avrdudeprog нужно сидеть и выбирать галочки, то есть по хорошему нужно будет сначала посмотреть datasheet, и потом, переключать частотные fuse, так как вам нужно. Естественно, легко ошибиться и можно накосячить. Здесь же всё есть. Но нужно постоянно нажимать ОК. fuse считываются в несколько приёмов, и поэтому нужно много раз нажимать. Если я буду считывать флешь — то мне только один раз нужно нажать ОК. Начинающим я рекомендую эту программу, из-за того, что вы не напортачите со fuse, то есть что-то испортить с fuse будет очень и очень сложно. Ссылку на программы я выложу в своей статье, ссылка будет под данным видео.
Я считаю, что покупка программатора usbasp avr — выгодная покупка, потому что стоит он копейки, примерно столько же, сколько и собрать его с нуля, то есть по стоимости компонентов. Работает программатор хорошо, единственное что хромает — культура производства, как я уже сказал — тут всё криво, микросхема даже запаяна со смещением, я рекомендую купить таких программаторов два. Реально ребята, стоят они копейки уже с доставкой, купите два, один будет как резервный. Вполне возможно, что один из них окажется нерабочим, я допускаю это. Лучше уже потратить 3 $ сверху, но сэкономите месяц времени, если вы вдруг будете покупать второй. Покупка, на мой взгляд, очень и очень выгодна, и я вам рекомендую это сделать.
Ну вот и всё, я надеюсь что это видео было вам полезным, ставьте лайки если вам оно понравилось, подписывайтесь на канал, если вы ещё не подписаны, и желаю вам всех благ, всего вам доброго. Пока, удачи.

Сегодня расскажу, о недорогим и очень простом программаторе USBAsp v.2.0 для микроконтроллеров AVR (основанный на дизайне Томаса Фишла), с его помощью можно прошивать контроллеры AVR по интерфейсу ISP (не выпаивая его с платы), а самое главное, можно прошить загрузочный сектор на контроллерах Arduino.

Технические параметры

Напряжение питания: 5 В, DC
Интерфейс: USB 2.0
Программирование/ чтение: Atmel (AVR)
Габариты: 70 мм x 18 мм x 10 мм
Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.

Общие сведения

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

Программатор собран на синий печатной плате, слева расположен USB-разъем необходимый для подключения к компьютеру. В центре располагается контроллер ATmega8A, рядом установлен кварцевый резонатор на 12 МГц и электрическая обвязка (резисторы, конденсаторы). Справа расположен 10-контактный разъем (два ряда, по пять выводов, шагом 2.54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте поставляется кабель, с каждой стороны которого, установлен разъем IDC (10 выводов), для простоты прошивки некоторых плат (например Arduino), советую приобрести адаптер-переходник с 10-pin на 6-pin. Назначение выводов программатора USBAsp можно посмотреть на рисунке ниже, вид на стороне программатора.

Назначение выводов:
1 – MOSI
2 – VCC
3, 8, 10 – GND
4 – TXD
5 – RESET
6 – RXD
7 – SCK
9 – MISO

Световая индикация
Красный светодиод G - Включен
Красный светодиод R - Обмен данными

Перемычки
JP1 — POWER, управляет напряжением на разъеме ISP VCC (вывод 2), можно установить на + 3.3В, + 5В или вовсе убрать перемычку, если программируемое устройство, имеет собственный источник питания.
JP2 — SERVICE, обновления прошивки USBasp.
JP3 — SLOW, программирования на низких скоростях, если программируемое устройство, работает на частоте ниже 1.5 МГц, SCK (вывод 7) уменьшит частоту с 375 кГц до 8 кГц.

Принципиальная схема программатора USBAsp V2.0 можно посмотреть на рисунке ниже.

Список поддерживаемых AVR микроконтроллеров:
Mega Series:
ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
Tiny Series: ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A
Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
Can Series: AT90CAN128
PWN Series: AT90PWM2, AT90PWM3

Установка драйвера USBAsp на Windows 8/10

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

Так как, в операционной системе нету необходимого драйвера, в «Диспетчере устройств » появится устройство «USBAsp » с восклицательным знаком.

Скачиваем архив с цифровой подписью, разархивируем и запускаем «InstallDriver.exe»

Драйвер установлен, в «Диспетчере устройств » пропадет восклицательный знак с «USBAsp ».

Установка драйвера на Windows XP и Windows 7 аналогичная, программатор готов к работе.

Программу разработал «Боднар Сергей », работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe ».
В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры » и выбираем ATmega328P.

Далее, необходимо выбрать прошивку, в строке «Flash » нажимаем «. . . », переходим в папку «C:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega » и выбираем «ATmegaBOOT_168_atmega328.hex », жмем «Открыть »

Подключаем программатор к плате «Arduino UNO R3 », и нажимаем кнопку «Программирование ».

В конце, выйдет диалоговое окно, о удачном окончании программировании.

Опубліковано 23.02.2011

Неболшой обзор используемых на практике программаторов для микроконтроллеров AVR. AVR ISP Prorgammer и USB программатор AVR / 89S совместимый с AVR910 .

AVR ISP Prorgammer

Внутрисхемный программатор для программирования микроконтроллеров фирмы ATMEL®, как в условиях серийного производства, так и в процессе разработки и отладки изделий.

Программатор поддерживает следующие семейства кристаллов:

TinyAVR

ATtiny11L, ATtiny11, ATtiny12V, ATtiny12L, ATtiny13, ATtiny15L, ATtiny2313, ATtiny26L, ATtiny26, ATtiny28V, ATtiny28L

AT90S1200, AT90S2313, AT90LS2323, AT90S2323, AT90LS2343, AT90S2343, AT90LS4433, AT90S4433, AT90LS8515, AT90S8515, AT90LS8535, AT90S8535

MegaAVR

ATmega48, ATmega88, ATmega168, ATmega8, ATmega16, ATmega32, ATmega64, ATmega640, ATmega128, ATmega1280, ATmega1281, AT90CAN128, ATmega103, ATmega161, ATmega162, ATmega163L, ATmega169, ATmega8515, ATmega8535, ATmega2560, ATmega2561, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega329, ATmega3290, ATmega649, ATmega6490

Отличительные особенности :

– внутрисхемное программирование (не требуются дополнительные переходные панели, при этом выводы программирования используются в проекте)

– поддержка программатора популярными компиляторами AVRstudio, IAR AVR, Image Craft AVR.

– автоматическая верификация (100% гарантия соответствия зашитого кода исходному)

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

я долгое время удачно пользовался и продолжаю пользоваться этим надежным и простым программатором, работающим через LPT порт.

Схема этого простого, но надежного программатора:

Двусторонняя плата помещается в разъем:


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



Компьютерные тенденции таковы, что LPT порт скоро исчезнет. Поэтому пора присмотреть альтернативу.

Программатор микроконтроллеров AVR / 89S совместимый с AVR910 (USB программатор)

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

Минус такой переделки – отсутствие предохранителя. Хотя, как показала практика, USB порт кротким замыканием спалить вряд ли удастся. По крайней мере, на моём компьютере не вышло, но экспериментировать не стоит.
Светодиод VL3 сигнализирует о подачи питания на программатор через порт USB. Светодиоды VL1, VL2 сигнализируют о чтении / записи программатора.
Джампер J1 – (MODify) служит для программирования микроконтроллера в новом программаторе. При его замыкании, к разъему ISP подключается внешний программатор и производится загрузка в МК программы.
После этот джампер необходимо разомкнуть и замкнуть джампер J2 – NORMal. Больше мы его не трогаем.
С помощью джампера J3 LOW SCK возможно понижать тактовую частоту порта SPI МК программатора до ~20 кГц. При разомкнутом джампере частота SPI нормальная, при замкнутом – пониженная.
Примечательная особенность, на вывод LED разъема ISP выведен меандр с частотой 1 МГц для “оживления” МК, у которых были ошибочно запрограммированы фьюз-биты, отвечающие за тактирование. ОЧЕНЬ полезная штука!

Прошивка FUSE BITS
Для нормального функционирования контроллера в схеме необходимо, чтобы были запрограммированы (установлены в “0”) биты SPIEN, CKOPT, SUT0 и BODEN. Обычно микроконтроллеры, идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Остальные биты должны быть незапрограммированные (установлены в “1”).

Инсталляция
Windows 2000/XP/Vista/Seven 32-bit

Прошить контроллер. Подключить свежеиспеченный программатор к РС через свободный разъем USB. Операционная система найдет новое устройство – AVR910 USB Programmer, при предложении автоматически найти драйвер, отказаться, и указать путь к inf-файлу, в зависимости от установленной на вашем компьютере операционной системы.
В архиве с прошивкой имеется папка “AVR910.Driver ” в которой расположены три директории для разных вариантов операционных систем:
-“2k_xp_32 ” – для операционных систем Windows 2000/XP 32-bit (используется штатный драйвер usbser.sys)
-“vista_xp_32 ” – Для операционных систем Windows XP/Vista/Seven 32-bit (usbser.sys + lowbulk.sys от Osamu Tamura)
-“vista_xp_64 ” – Для операционных систем Windows XP/Vista/Seven 64-bit (usbser.sys + lowbulk.sys от Osamu Tamura)

Особенности установки:

В принципе, инсталляция не отличается от подобной для Windows XP, но есть одно НО – задержки в драйвере usbser.sys данной ОС портят цепочку команд от ПО на РС до программатора и, соответственно, цепь ответов обратно от программатора до ПО на РС… Проблему я пока не установил, но есть решение. Конечно не самое красивое, но работает надежно 🙂 Необходимо заменить файл usbser.sys в системных папках Windows 2000 на аналогичный от Windows XP. Это папки …\winnt\system32\drivers\ и …\winnt\system32\dllcashe\. Файл usbser.sys от Windows XP SP1 можно взять здесь. Естественно, что драйвер придется подменять загрузившись под другой ОС (например с загрузочного диска).

Чтобы использовать драйвера на 64 битной платформе, Вы должны отключить проверку цифровых подписей драйверов, нажимая функциональную клавишу F8 во время начала загрузки системы.
Второй вариант, использование программы “Driver Signature Enforcement Overrider “, которая подписывает драйвер как “testdriver” и активизирует “testmode”, таким образом, Вы можете загрузить драйвер без реальной цифровой подписи. Вы можете найти более детальное описание на странице программы, пройдя по ссылке выше.

Вот что получилось у меня:



Программатор использую с программами AVRProg v.1.4 из пакета AVRStudio. На Windows XP Работают безотказно.

Программатор устанавливается как виртуальный Com-порт. Единственно, что нужно учесть, AVRProg проверяет порты от 1 до 4. Придется в диспетчере устройств передвинуть на порт до COM4, либо в настройках AVRStudio указать по какой порт искать программатор.

Схему, плату, прошивку и драйвера можно скачать .

P.S. Когда мне нужно было прошить PWM контроллеры (AT90PWM3) то пришлось это делать с помощью старого доброго AVR ISP Prorgammer (через LPT порт), AVRProg v.1.4 не знает AT90PWM3. Не определенная ситуация складывается и с ATmega64. Поэтому, основным рабочим программатором у меня остается ЛПТешный AVR ISP Prorgammer.

P.S.P.S. Не так давно знакомый купил этот USBasp программатор

Драйвера и ПО для него смотри здесь: http://www.fischl.de/usbasp/
Работает, при этом обрадовало отсутствие багов, замеченных у AVR / 89S совместимого с AVR910 (USB) программатора.

В статье описано ПО для работы с этими и другими программаторами.

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

В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK500 v2.

Описание USB программатора

USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита . На плате есть 2 перемычки: одна расположена под разъё­мом SPI, вторая перемычка расположена неподалеку от того же разъема.

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

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

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

Программирование Atmega8 через LPT-порт компьютера

Самый быстрый и дешевый способ запрограммировать Atmega8 – применить LPT-программатор для AVR. Подобная схема приведена ниже.

Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.

При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:

В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.

Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:

Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.

Настройка USB программатора

После того как наш микроконтроллер прошит, его необходимо установить в плату USB программатора. Далее подключаем программатор к USB порту компьютера, но пока питание не подаем.

Настройка порта:

Настройка терминала:

Настройка ASCII:

Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.

Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:

Если это не так проверяем еще раз монтаж, особенно линию TxD.

Далее вводим версию программатора 2.10, так как без этого програм­матор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».

USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:

  • «0», «Enter» — режим выключен.
  • «1», «Enter» — режим включён.

Изменение скорости программирования (1МГц):

  • «0», «Enter» – максимальная скорость.
  • «1», «Enter» – сниженная скорость.

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

(скачено: 1 203)

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ГМ Диод H48 это аналог 1N4148 Стабилитроны - BZX55C 5.1 вольта Также кварц на 4Мгц и 2 керамических конденсатора на 22 пФ, но я не думаю что они обязательны т.к. использование кварца внутренний/внешний мы устанавливаем программируемыми битами, с завода микрухи запрограммированы использовать внутрений кварц(если я не ошибся) Внешнее питание от +5В обязательно.Я подключил от БП того же ПК с которого заливал прошивку. Диод H48 (такая маркировка на присутствует на корпусе этого диода) на просторах интернета говорят что это аналог 1N4148. У меня всё работает, ПониПрог 2000 успешно залила прошивку в ATmega8. Фото http://i.imgur.com/34GhDcN.jpg 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 какие надо вот это заводские http://i.imgur.com/rSdlENN.jpg а вот такие надо прошить http://i.imgur.com/gc4yyxA.gif но еще что я заметил в заводских стоит одна галочка которую нельзя убрать называеться SPIEN ,а какие надо прошить там нет этой галочки ну ладно дальше продолжу свою проблему после таго как я откры прошивку и выставил Fuse как на второй картинке я нажал READ DEVICE пошол процес прошивки и в завершении вышло вот это http://i.imgur.com/UpR5qhE.jpg потом я закрыл пони и открыл снова и нажал прочитать МК и получил вот это 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, оперирует фьюзами в инвертированном представлении.
  • Читать всем: