Usb avr: AVR и USB: это просто! | avr-working-with-usb

Содержание

USB для AVR. Введение / Хабр

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

Начну с того, что ранее широко распространенные интерфейсы как COM, LPT, MIDI в настоящее время морально устарели, но ещё нередко присутствует на современных компьютерах и используется в промышленном и узкоспециализированном оборудовании. Так что для связи какой нибудь собственной железки с компьютером давно уже пора осваивать что-то другое. Как вариант ещё можно использовать всякие конверторы/переходники/эмуляторы, но они не всегда работают как оригинальный интерфейс, порождая массу проблем.

Всё хватит пустой болтовни, приступим к делу. Как использовать USB в собственных устройствах?


  • Можно взять микроконтроллер, который имеет аппаратную поддержку USB интерфейса (например AT90USB* ). Далее нужно знать как с ним работать и написать для него специальную прошивку. Ну и на последок также необходимо написать драйвер для компьютера, если ваше устройство не стандартного класса USB.
  • Использовать универсальный конвертор USB в «другой» интерфейс. В качестве «другого» может быть RS232, I2C,… При таком раскладе нам не нужно знать как работает USB, не нужно писать специальную прошивку и драйвер для компьютера. За нас всю работу делает конвертор, и как правило драйвер уже написан производителем конвертора.
  • Взять обычный микроконтроллер без аппаратной поддержки USB и программно эмулировать интерфейс USB. Тут возникает проблема в производительности нашего микроконтроллера. Скорость USB очень большая: LowSpeed — 1.5Mbit/s, FullSpeed — 12Mbit/s, HighSpeed — 480Mbit/s. Я вообще молчу за USB 3.0. Поэтому дома на коленке получится только LowSpeed USB, и то з некоторыми трудностями. Правда в большинстве случаев для самодельных устройств этого более чем достаточно.

Мы настоящие джедаи, поэтому пойдем по пути эмуляции. На данный момент уже существует три готовых проекта для программной эмуляции USB на микроконтроллерах AVR:


Проект от Igor Češko был первым, написан полностью на ассемблере и он послужил своего рода вдохновением для V-USB. На его основе сделан заслуживающий внимания

универсальный ИК приемник для компьютера

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


Я остановился на реализации от V-USB, думаю вот основные преимущества:


  • V-USB опубликован на принципах GNU General Public License Version 2, так же имеется коммерческая лицензия
  • полная эмуляция USB 1.1 low-speed устройств за исключением обработки ошибок связи и электрических характеристик
  • запускается практически на всех AVR-ках, нужно минимум 2 килобайта флеша, 128 байт RAM и частота 12, 15, 16, 16.5 или 20 МГц.
  • V-USB предоставляет свободную пару идентификаторов (Vendor-ID и Product-ID)
  • хорошо задокументированный код на C, легче разбираться

Я в своих экспериментах с USB прошивку для МК писал языком C на AVR-Studio 4 + WinAVR, программу для ПК разрабатывал при помощи Borland C++ Builder 6.0 как самый быстрый и простой вариант. Соответственно такими будут все будущие примеры. Вообще выбор средств разработки очень ответственный шаг, но холивар по поводу что лучше C или Assembler устраивать не нужно. Я скажу просто: это лишь инструменты в наших руках. Нужно владеть всеми а использовать тот что удобней и правильней в поставленных перед собой целях. Естественно в умелых руках любой инструмент эффективный.

Также нужно отдельно сказать про идентификаторы VID и PID. Это 16-битные числа, при помощи которых операционная система определяет устройства и подгружает нужный драйвер. Для того, чтобы получить Vendor-ID

нужно заплатить usb.org 2000$

. Интересные мысли по поводу легальности использования VID/PID можно прочитать на

страничке эмбеддера BSVi

. Тот факт, что V-USB предоставляет свободную пару VID/PID (легально купленную в usb.org) очень греет душу. Но что делать когда нужно одновременно подключить несколько USB устройств с одинаковыми VID/PID? Ничего страшного, помимо этих VID/PID каждое USB устройство имеет VENDOR_NAME и DEVICE_NAME идентификаторы, потом в примерах я покажу как этим воспользоваться.

Несколько ссылок по сабжу:


  • www.usb.org/developers/docs — официальная документация по USB. Не легкая для чтения, но наиболее полная.
  • www.beyondlogic.org/usbnutshell/usb1.htm — хороший обзор важных частей USB спецификации. Легче раскуривать чем официалку…
  • www.lvr.com/usb.htm — много хороших ссылок связанных с USB

В заключение напишу, что все условия для создания USB 1.1 устройств доступны каждому:


  • дешевые микроконтроллеры AVR
  • программная эмуляция USB, выберем V-USB
  • свободная пара Vendor-ID и Product-ID (вместе с V-USB)
  • множество примеров как для микроконтроллера так и для компьютера

Остается только одно — желание разобраться! А потом творить чудеса на копеечных микроконтроллерах всем мажорам на зависть.

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

USB для AVR. Часть 1. Вводная / Связь железа с компьютером. / Сообщество EasyElectronics.ru


Здравствуйте, решился я испытать свои творческие таланты 🙂 Речь пойдет об популярном интерфейсе USB, а именно как заюзать этот самый USB на простых микроконтроллерах AVR. Планирую написать несколько топиков с примерами кода и разъяснениями как со стороны микроконтроллера, так и со стороны компьютера. Конечно на просторах интернета полно всяческих примеров на данную тематику, но как писал DI HALT в правилах конкурса: «в лучшем случае это исходник в котором сам черт ногу сломит, да краткое, на страничку, его описание.»

Начну с того, что ранее широко распространенные интерфейсы как COM, LPT, MIDI в настоящее время морально устарели, но ещё нередко присутствует на современных компьютерах и используется в промышленном и узкоспециализированном оборудовании. Так что для связи какой нибудь собственной железки с компьютером давно уже пора осваивать что-то другое. Как вариант ещё можно использовать всякие конверторы/переходники/эмуляторы, но они не всегда работают как оригинальный интерфейс, порождая массу проблем.

Всё хватит пустой болтовни, приступим к делу. Как использовать USB в собственных устройствах?

  1. Можно взять микроконтроллер, который имеет аппаратную поддержку USB интерфейса (например AT90USB* ). Далее нужно знать как с ним работать и написать для него специальную прошивку. Ну и на последок также необходимо написать драйвер для компьютера, если ваше устройство не стандартного класса USB.
  2. Использовать универсальный конвертор USB в «другой» интерфейс (например Преобразователь USB-UART на FTDI FT232RL). В качестве «другого» может быть RS232, I2C,… При таком раскладе нам не нужно знать как работает USB, не нужно писать специальную прошивку и драйвер для компьютера. За нас всю работу делает конвертор, и как правило драйвер уже написан производителем конвертора.
  3. Взять обычный микроконтроллер без аппаратной поддержки USB и программно эмулировать интерфейс USB. Тут возникает проблема в производительности нашего микроконтроллера. Скорость USB очень большая: LowSpeed — 1.5Mbit/s, FullSpeed — 12Mbit/s, HighSpeed — 480Mbit/s. Я вообще молчу за USB 3.0 🙂 Поэтому дома на коленке получится только LowSpeed USB, и то з некоторыми трудностями. Правда в большинстве случаев для самодельных устройств этого более чем достаточно.
Мы настоящие джедаи, поэтому пойдем по пути эмуляции 🙂 На данный момент уже существует три готовых проекта для программной эмуляции USB на микроконтроллерах AVR:
Проект от Igor Češko был первым, написан полностью на ассемблере и он послужил своего рода вдохновением для V-USB. На его основе сделан заслуживающий внимания универсальный ИК приемник для компьютера, а также множество других проектов. V-USB в свою очередь написан на C, правда с использованием ассемблерного кода в местах критических к производительности и точности эмуляции. USBtiny является производным от более ранней версии V-USB, имеет меньше возможностей из-за чего теоретически он проще для понимания.

Я остановился на реализации от V-USB, думаю вот основные преимущества:
  • V-USB опубликован на засадах GNU General Public License Version 2, так же имеется коммерческая лицензия
  • полная эмуляция USB 1.1 low-speed устройств за исключением обработки ошибок связи и электрических характеристик
  • запускается практически на всех AVR-ках, нужно минимум 2 килобайта флеша, 128 байт RAM и частота не меньше 12 MHz
  • V-USB предоставляет свободную пару идентификаторов (Vendor-ID и Product-ID)
  • хорошо задокументированный код на C, легче разбираться

Я у своих экспериментах с USB прошивку для МК писал языком C на AVR-Studio 4 + WinAVR, программу для ПК разрабатывал при помощи Borland C++ Builder 6.0 как самый быстрый и простой вариант. Соответственно такими будут все будущие примеры (кстати ATMEL уже выпустила 5-ю версию студии). Вообще выбор средств разработки очень ответственный шаг, но холивар по поводу что лучше C или Assembler устраивать не нужно. Я скажу просто: это лишь инструменты в наших руках. Нужно владеть всеми а использовать тот что удобней и правильней в поставленных перед собой целях. Естественно в умелых руках любой инструмент эффективный 🙂

Также нужно отдельно сказать про идентификаторы VID и PID. Это 16-битные числа, при помощи которых операционная система определяет устройства и подгружает нужный драйвер. Для того, чтобы получить Vendor-ID нужно заплатить usb.org 2000$. Интересные мысли по поводу легальности использования VID/PID можно прочитать на страничке эмбеддера BSVi. Тот факт, что V-USB предоставляет свободную пару VID/PID (легально купленную в usb.org) очень греет душу. Но что делать когда нужно одновременно подключить несколько USB устройств с одинаковыми VID/PID? Ничего страшного, помимо этих VID/PID каждое USB устройство имеет VENDOR_NAME и DEVICE_NAME идентификаторы, потом в примерах я покажу как этим воспользоваться.

Несколько ссылок по сабжу:
www.usb.org/developers/docs — официальная документация по USB. Не легкая для чтения, но наиболее полная.
www.beyondlogic.org/usbnutshell/usb1.htm — хороший обзор важных частей USB спецификации. Легче раскуривать чем официалку…

www.lvr.com/usb.htm — много хороших ссылок связанных с USB

В заключение напишу, что все условия для создания USB 1.1 устройств доступны каждому:

  • дешевые микроконтроллеры AVR
  • программная эмуляция USB, выберем V-USB
  • свободная пара Vendor-ID и Product-ID (вместе с V-USB)
  • множество примеров как для микроконтроллера так и для компьютера
Остается только одно — желание разобраться! А потом творить чудеса на копеечных микроконтроллерах всем мажорам на зависть 🙂
Продолжение: USB для AVR. Часть 2. HID Class на V-USB

Ещё один шаг в сторону от ардуинонизации

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.
USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.

Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание: ссылка

Список поддерживаемых микроконтроллеров

ATmega серияATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серияATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

Серия ClassicAT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серияAT90CAN128

PWM серияAT90PWM2 AT90PWM3

Внешний видКомплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.

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







Некоторые отверстия не целиком заполнены припоем

SMD-элементы тоже криво припаяны

Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл

Размеры платы несколько больше USB-TTL-конвертера на CP2102

Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.

Органы управления на платеНа плате имеются три перемычки, задающие разные режимы работы программатора:
JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.

Установка драйверовЧтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».

3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»

4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»

5) «Всё равно установить этот драйвер»

6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собратаМне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1:

Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.

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

Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер

Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.

Скачиваю прошивку для программатора с этой странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.

Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.

Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.



Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано, какие из них установлены, а какие нет.

Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:

Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.

Связь с платой Pro Mini (Atmega 168, 3.3V/8MHz) В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.



Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8 Соединение согласно схеме ниже. Но тут всё немного интереснее.

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

AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.

Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3

2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3

Внести туда четыре строчки кода и сохранить. (взято отсюда)

progisp=jtag2pdiportprog=COM1portenabled=1[UsbaspSpeed]
progisp=Usbasp -B 3
portprog=usb
portenabled=0
Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах

После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.

Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.

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

Но стоит замкнуть перемычку JP3, и можно спокойно работать

Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.

Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000
то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally [CKDIV8=0] — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.
Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.

Интеграция программатора в Atmel Studio 7 Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.

Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.

На верхней панели инструментов выбрать «Tools» — «External Tools…»

Откроется небольшое окно, нажать «Add»

В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.

Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой

Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию

Конфигурация для Atmega168

-p m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a

-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите здесь — также там найдёте описания ключей AVRDUDE.

Конфигурация для ATtiny13

-p t13 -c usbasp -B 3 -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a 
Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ «-B» со значением «3» для снижения скорости программирования
После заполнения полей нажать «Apply» и «ОК». Окно закроется

Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.

Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:

Перейти во вкладку «Commands» — нажать кнопку «Add Command…»

Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»

«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».

Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.

При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».

И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.

Дополнение по фьюзам программатора Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом khazam’ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником):

Как рекомендует выставить разработчик:

HFUSE=0xc9
LFUSE=0xef

Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF.

Если всё сходится, можно нажимать «программирование»

ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя.
_____________________________________

Выводы Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.

Список ссылок
1) Описание USBASP
2) AVRDUDE PROG 3.3 (форум)
3) Khazama AVR Programmer 1.7
4) Китайская стоковая прошивка (10кб)
5) Архив с прошивками для USBASP и драйверами для Windows — сайт создателя проекта

USBAsp USB SPI AVR — программатор

Описание

Характеристики USBAsp USB SPI AVR — программатора:

  • Работает под несколькими платформами. Linux, Mac OS X и Windows
  • Никаких специальных контроллеров или компонентов smd не требуется.
  • Скорость программирования до 5 кБайт / с.
  • Опция SCK для поддержки целей с низкой тактовой частотой (<1,5 МГц).
  • Размер: 64 x 20 x 10 мм
  • Длина соединительного кабеля: 30 мм.
  • Вес: 20 г.

Комплект:

  1. USBAsp USB SPI AVR — программатор x 1 шт.
  2. Соединительный кабель x 1 шт.

Особенности:

На плате имеются три перемычки, задающие разные режимы работы программатора:

JP1 — замыкается в случае обновления прошивки самого программатора.
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение).
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой. (на данной прошивке не требуется).

.

Список поддерживаемых 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 USB SPI AVR — программатора

USBAsp USB SPI AVR — программатор

Использование программатора USBASP в Atmel Studio

Программатор USBASP является на сегодняшний день самым дешевым программатором микроконтроллеров AVR компании ATMEL и позволяет программировать большое множество микроконтроллеров серий AVR ATTiny, AVR ATMega и других. В данной статье я расскажу вам об основных особенностях использования этого программатора из под ОС Windows 7 и как настроить его работу совместно со средой разработки программ Atmel Studio на примере версии 6.1. К сожалению, по умолчанию, Atmel Studio не поддерживает этот программатор.

Установка драйвера программатора

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

Драйвер можно скачать по ссылке с нашего Google диска.

Установка Avrdude

Для программирования микроконтроллеров AVR будем использовать программу Avrdude. Эта программа поддерживает большое количество программаторов, в том числе и USBASP. Этой программе посвящена отдельная страница в википедии.

Скачать Avrdude по ссылке с нашего Google диска

Программа avrdude является консольной и запускается из командной строки. Для выполнения программирования ей передается набор параметров, определяющий настройки. Ниже приведен пример командной строки для программирования контроллера при помощи программатора USBASP:

avrdude -c usbasp -p atmega32 -U flash:w:myhexfile.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m

Поясним основные параметры:

  • -c usbasp параметр определяет тип программатора, в нашем случае это usbasp;
  • -p atmega32 параметр определяет тип микроконтроллера, для примера использован ATmega32;
  • -U flash:w:myhexfile.hex параметр определяет hex файл для записи в контроллер. Файл должен располагаться либо в каталоге программы, либо необходимо указать полный путь к файлу;
  • -U lfuse:w:0x6a:m параметр определяет младший байт регистра Fuse;
  • -U hfuse:w:0xff:m параметр определяет старший байт регистра Fuse;

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

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

Настройка программирования из Atmel Studio

Как уже было упомянуто, Atmel Studio не поддерживает программатор USBASP. Однако в нее встроен механизм для запуска внешних программ для выполнения различных действий. Используя данный механизм внешних инструментов, программирование контроллера будет осуществляться одной кнопкой прямо из меню Atmel Studio.

В Atmel Studio открываем пункт меню Tools и выбираем пункт External tools…

В открывшемся окне настройки инструментов нажимаем кнопку Add для добавления нового инструмента. Заполняем следующие поля:

  • Title: произвольное имя инструмента, мы указали USBASP atmega32.
  • Command: файл запуска программы avrdude. Мы указали C:AVRDUDEavrdude.exe, так как у нас она размещена в каталогеAVRDUDE на диске С.
  • Arguments: параметры запуска для avrdude, которые мы рассмотрели выше. Мы задали строку -c usbasp -p atmega32 -U flash:w:$(TargetName).hex, в которой указали имя программатора, имя контроллера, и путь к файлу прошивки. Путь к файлу указан через специальные макросы и Atmel Studio подставит их сама. Мы не указали регистр Fuse в этом примере, но при необходимости вы можете добавить их самостоятельно.
  • Initial directory: указан макрос для подстановки каталога, в котором находится файл прошивки.
  • Use Output window: установите эту галочку для того, что бы результат работы программы показывался в окне Atmel Studio. Послу установки всех настроек нажмите кнопку OK для сохранения настроек и выхода.

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

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

Программатор USBASP подключается к микроконтроллеру по стандартному интерфейсу ISP. Физически на программаторе интерфейс имеет 10 контактов. Большинство контактов объединены общим проводом. Назначение используемых контактов следующее:

  • MISO, MOSI, SCK, RESET — подключается к соответствующему выводу микроконтроллера;
  • GND – земля, подключается к мину или GND микроконтроллера;
  • VCC – используется для подачи питания на микроконтроллер.

На печатных платах модулей, где используются контроллеры AVR, разработчики очень часто располагают интерфейс SPI 6 контактов, позволяющий произвести внутрисхемное программирование контроллера. Такой интерфейс можно видеть даже на платах Arduino. Для подключения программатора к такому 6-и контактному интерфейсу можно использовать соединительные провода мама-мама или специальный переходник ISP10 в ISP6 для программатора AVR USBASP.

USBasp | AVRDUDE | Программирование микроконтроллеров AVR ⋆ diodov.net

Чтобы перенести нашу программу с компьютера в микроконтроллер нам понадобится программатор USBasp и программа AVRDUDE. Сегодня существует широкий выбор программаторов, предназначенных для программирования микроконтроллеров AVR. Среди них можно найти много самодельных, который даже трудно назвать программаторами, поскольку они с помощью всего лишь нескольких резисторов напрямую подключаются к COM порту. Однако современные компьютеры и ноутбуки уже практически не оборудываются COM портами, поэтому одним из основных критериев при выборе программатора является возможность подключения его к USB порту. Наиболее дешевый, простой и очень распространенный – это программатор USBasp. Его можно приобрести практически в любом радиомагазине по доступной цене. Стоимость его в китайских интернет магазина находится в пределах от 1,5 $ до 3 $.

Программатор USBasp

Связь компьютера с микроконтроллером осуществляется посредством программатора USBasp через USB порт, а данные передаются по интерфейсу SPISerial Peripheral Interface (последовательный периферийный интерфейс). Для связи МК с программатором задействуются специальные выводы: MOSI, MISO, SCK, RESET, VCC, GND. Хотя SPI предполагает использование всего трех выводов MOSI, MISO и SCK, но мы будем задействовать все шесть выводов.

При обмене данными по интерфейсу SPI микроконтроллер может одновременно либо принимать (вывод MISO) либо передавать данные (вывод MOSI). Установка режима приема или передачи данных осуществляется путем подачи определенного импульса на вывод SCK.

Разъем программатора, как правило, имеет 10 пинов и подключается к микроконтроллеру с помощью 10 проводного шлейфа. Однако удобней пользоваться шлейфами, которые имеют переходник на 6 пин, так как в таком случае все пины заняты. У десяти пинового разъема одни пин остается не занятым, а четыре пина подключены к общему проводу (GND).

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

Фото подсоединенного программатора к микроконтроллеру ATmega8 приведено ниже.

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

Настройка AVRDUDE

Теперь нам осталось выполнить финальный шаг. Запускаем программу AVRDUDE. По умолчанию открывается вкладка Program. В нижней части окна в меню Настройки выбираем тип программатора usbasp. Далее в категории Микроконтроллер выбираем наш микроконтроллер ATmega8. Ниже, в категории Flash кликаем по значку троеточия и в открывшемся меню указываем путь к скомпилированному файлу с расширением hex. Путь к файлу и сам файл будут теми же, что мы ранее задавали в Proteus.

Чтобы убедится в том, что программатор определен операционной системой (драйвер программатора корректно установлен) и правильно подключен к микроконтроллеру, кликаем по кнопке Чтение. Если ошибок нет, то появится окно с записью “Калибровочные ячейки генератора считаны!” И в верхнем окошке отобразится шестнадцатеричное число. У каждого МК это число индивидуальное.

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

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

Результат записанной, или, как еще говорят, прошитой программы – это засветившийся светодиод, подключенный к выводу PC0 нашего микроконтроллера.

Первая наша программа очень проста, а частота работы микроконтроллера оставлена по умолчанию и для ATmega8 равна 1 МГц. В случае изменения частоты или подключения внешнего кварцевого резонатора, необходимо внести некоторые изменения во вкладке Fuses, путем установки галочек в соответственные чекбоксы CKSEL0… CKSEL3.

Подробно настройки данной вкладки мы рассмотрим в статье Fuses (биты настройки или биты защиты) микроконтроллера.

Скачать USBasp драйвер

Скачать AVRDUDE

Еще статьи по данной теме

USB программатор для программирования микроконтроллеров AVR

Пользователи, знакомые с микроконтроллерами Atmel или хотя бы с Arduino скорее всего знают о дешевом программаторе USBasp, цена которого на Ebay около $ 3. Распространены две версии программатора:

  • USBasp 2.0 — с стабилизатором на 3.3 вольта.
  • USBasp 3.0 — плата поменьше, без стабилизатора. Так же у него не выведены на разъем порты PD0 и PD1(Аппаратный UART).

Технические характеристики

  • Поддерживаемые ОС: Windows, MacOS, Linux
  • Процессор: Atmega8A
  • Интерфейс подключения к ПК: USB
  • Интерфейс программирования: ISP (внутрисхемное)
  • Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
  • Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
  • Поддерживаемые контроллеры: все AVR с интерфейсом SPI

Список поддерживаемых AVR микроконтроллеров

USBASP Программатор AVR поддерживает все микроконтроллеры ATMEL с режимом последовательного программирования ISP (In System Programming), это все микроконтроллеры у которых есть порт SPI (Serial Peripheral Interface):

  • ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
  • AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
  • ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325, ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega8515, ATmega8535
  • AT90CAN32, AT90CAN64, AT90CAN128
  • AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
  • AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
  • AT89S51, AT89S52
  • AT86RF401.

Устройство программатора USBasp

Программатор состоит из небольшого числа деталей. Мозгом программатора является микроконтроллер Atmega8, который имеет всего 8 кб флеш памяти и 1 кб ОЗУ(SRAM).Вроде и слабенький микроконтроллер по современным меркам, но столько всего можно на нем сделать.Из-за особенностей работы программного USB м/к работает на частоте 12мгц. Соответственно, при написании своей прошивки необходимо учитывать это.

USBasp имеет 10 контактный разъем, на который выведены 6 выводов микроконтроллера: PB5 (SCK), PB4 (MISO), PB3 (MOSI, PWM), PB2(PWM), PD0 (RXD), PD1 (TXD).

Плата имеет два встроенных светодиода на выводах PC0 и PC1.Выводы м/к PB0,PB1 и PD2 используются для программного USB,PC2 выведен на перемычку JP3.Остальные выводы микроконтроллера не распаяны.

схема USBasp2.0

распиновка разъема USBasp

Органы управления на плате

На плате имеются три перемычки, задающие разные режимы работы программатора:

JP1 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой

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

Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Драйвер для программатора USBASP (v 2.0) USB ISP ранее был основан на libusb-win32. После того, как действие сертификата истекло, библиотека была заменена на libusbK. 

Работа драйвера тестировалась на версиях от Windows XP до Windows 10 (32-разрядные и 64-разрядные версии). Поскольку драйвер подписан, отпадает необходимость принудительного отключения сертификата драйвера или использования Zadig, достаточно скачать драйвер USBasp и запустить файл InstallDriver.exe из распакованного архива. В Windows XP можно просто указать мастеру установки папку с распакованными файлами драйвера.

Скачать драйвер программатора USBasp 3.0.7

ВНИМАНИЕ! Вы устанавливаете этот драйвер на свой страх и риск!

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 Programmer 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, USB-программатор Pololu 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 — USB-драйвер только с прошивкой для микроконтроллеров Atmel AVR

V-USB — USB-драйвер только с прошивкой для микроконтроллеров Atmel AVR Товары Маленький снитч Микро-снитч LaunchBar Средство просмотра политики доступа в Интернет Больше продуктов Блог Магазин Служба поддержки Вакансии V-USB Меню

V-USB — это программная реализация низкоскоростного USB-устройства для микроконтроллеров Atmel AVR®, позволяющая создавать USB-оборудование практически с любым микроконтроллером AVR®, не требуя дополнительных микросхем.

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

  • Низкоскоростное устройство, полностью совместимое с USB 1.1, за исключением обработки ошибок связи и электрических характеристик.
  • Примеры проектов демонстрируют реализацию драйверов устройств и хостов в Linux, Mac OS X и Windows.
  • Поддерживает несколько конечных точек: одну конечную точку управления, две конечные точки прерывания / массового ввода и до 7 конечных точек прерывания / массового вывода. (Обратите внимание, что спецификация USB запрещает массовые конечные точки для низкоскоростных устройств, но V-USB в некоторой степени их поддерживает.)
  • По умолчанию передается размер до 254 байтов, больше — как вариант конфигурации.
  • Поставляется со свободно используемыми идентификаторами USB (пары Vendor-ID и Product-ID).
  • Работает на любом микроконтроллере AVR с объемом флэш-памяти не менее 2 КБ, ОЗУ 128 байт и тактовой частотой не менее 12 МГц.
  • Не требуется UART, таймера, входного блока захвата или другого специального оборудования (кроме прерывания, запускаемого фронтом).
  • Может работать с тактовой частотой 12 МГц, 15 МГц, 16 МГц, 18 МГц или 20 МГц или от 12.Внутренний RC-генератор на 8 МГц или 16,5 МГц.
  • Функциональность высокого уровня написана на C и хорошо прокомментирована.
  • Размер кода всего от 1150 до 1400 байт.
  • Вы можете выбрать лицензию: с открытым исходным кодом или коммерческую. Щелкните здесь, чтобы узнать подробности.

Оборудование

На этой схеме показана типовая схема устройства с питанием от шины.

D1 и D2 — это недорогая замена микросхеме стабилизатора с низким падением напряжения 3,3 В, такой как LE33. Работа AVR при более высоких напряжениях выходит за пределы синфазного диапазона многих микросхем USB.Если вам нужно запустить АРН при 5 В, добавьте стабилитроны 3,6 В на D + и D-, чтобы ограничить напряжение.

Макетную плату см. На metaboard.

Преимущества перед альтернативными решениями

Почему бы не выбрать микроконтроллер со встроенным USB-оборудованием? Доступно несколько из них (см. Http://janaxelson.com). Или объединить микроконтроллер по вашему выбору с USB-чипом?

Преимущества перед микроконтроллерами с USB-оборудованием

  • Стандартные контроллеры AVR обычно легче получить.
  • Большинство контроллеров с поддержкой USB доступны только в SMD, с чем практически невозможно справиться любителям.
  • V-USB поставляется с бесплатной общей парой Vendor- / Product-ID.
  • Для AVR доступны хороший бесплатный компилятор ANSI-C (GNU gcc) и бесплатная система разработки для Windows (WinAVR).
  • Контроллеры
  • AVR быстрее, чем большинство контроллеров со встроенным USB, и стоят меньше.
  • Автономная работа: некоторые контроллеры USB загружают микропрограммное обеспечение с главного компьютера в оперативную память.Они не работают без подключения к хосту.
  • Контроллеры
  • AVR имеют встроенную EEPROM.

Преимущества перед отдельным периферийным USB-устройством

  • Без дополнительных затрат.
  • Никаких дополнительных аппаратных сложностей: более простая печатная плата, меньше отказов.
  • Больше свободы в выборе дескрипторов USB.
  • V-USB поставляется с бесплатной общей парой Vendor- / Product-ID.
  • Используется мало аппаратных ресурсов: всего два-три контакта ввода-вывода.
  • Микросхемы USB
  • часто трудно достать.

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

Аналогичный драйвер для микроконтроллеров серии AVR можно приобрести у Игоря Чешко. Наш USB-драйвер имеет следующие преимущества перед драйвером Игоря:

  • Весь настраиваемый код написан на ANSI-C, поэтому его легче поддерживать.
  • Модульная концепция: легче интегрировать в существующие проекты.
  • Немного меньший размер кода, несмотря на языковые модули высокого уровня.
  • Быстрее: все кодирование / декодирование (USB требует кодирования NRZI и вставки битов) выполняется в реальном времени, а не в основном цикле после сохранения потока необработанных данных.
  • Больше конечных точек, дескрипторы USB могут быть лучше настроены.
  • V-USB поставляется с бесплатной общей парой Vendor- / Product-ID.
  • Уровень соответствия стандартам задокументирован (описание ограничений и потенциальных проблем).
  • Лицензировано в соответствии с условиями Стандартной общественной лицензии GNU или, в качестве альтернативы, по коммерческой лицензии.

Дик Стрифланд урезал старую версию V-USB до самых основ. Его код легче читать и понимать, но ему не хватает некоторых функций, которые есть в V-USB:

.
  • V-USB поддерживает до 4 конечных точек.Это позволяет реализовать устройства, соответствующие классу устройств HID или CDC.
  • V-USB проходит тесты в тестовой утилите usb.org.
  • V-USB поддерживает множество различных тактовых частот, некоторые даже с внутренним RC-генератором.


AVR является зарегистрированным товарным знаком Atmel Corporation

V-USB — ссылки

USB-код продукта и идентификаторы поставщика

pid.codes/ — Бесплатные идентификаторы продуктов USB для проектов с открытым исходным кодом.

USB-драйверы на стороне хоста

www.libusb.org/ — библиотека абстракций для управления функциями USB в Unix (Linux, BSD, Mac OS X и т. Д.).

sourceforge.net/apps/trac/libusb-win32/wikis — версия libusb для Windows с тем же API. Для этого требуется установка библиотеки DLL ядра, которая является частью libusb-win32.

www.icsharpcode.net/OpenSource/SharpUSBLib/ — оболочка C # для libusb-win32.

Другие USB-драйверы только для прошивки

mecrisp.sourceforge.net/mecrimus-b.htm — Mecrimus-B — это реализация USB только для ассемблера, аналогичная v-usb, но для MSP 430.

code.google.com/p/16fusb/ — 16FUSB — это только ассемблерная реализация низкоскоростного USB на микроконтроллерах PIC.

ziblog.ru/2014/02/22/programmnyiy-usb-na-st … — Это реализация низкоскоростного USB-устройства только для прошивки для микроконтроллера STM8. Ссылка ведет на блог на русском языке, содержащий загрузку исходного кода. Используйте Google Translate для перевода на предпочитаемый вами язык.

scanlime.org/2010/04/its-alive-bit-banging -… — Это полноскоростной хост-контроллер USB для микроконтроллера Parallax Propeller.

www.cesko.host.sk/ — Это оригинальная работа Игоря Чешко. Хотя он послужил источником вдохновения для V-USB, у этих двух проектов нет общего кода.

www.xs4all.nl/~dicks/avr/usbtiny/ — это драйвер Дика Стрифланда, производный от более ранней версии V-USB. У драйвера Дика меньше возможностей, поэтому код легче читать.

Микропрограмма драйвера

для AVR с USB-оборудованием

www.fourwalledcubicle.com/LUFA.php — Этот проект представляет собой драйвер для серии микроконтроллеров Atmel AVR с аппаратной поддержкой USB и некоторых микросхем AVR32, выпущенных по лицензии MIT.

savannah.nongnu.org/projects/avrusb — бесплатный драйвер USB для микросхем серии AT43USB3XX. Но проект кажется мертвым.

Встроенные USB-хосты

Instruct1.cit.cornell.edu/courses/ee476/Fin… — Это низкоскоростной USB-хост только для микропрограмм для AVR.

www.vinculum.com/ — Их микросхема USB-хоста — это простой способ добавить функциональность USB-хоста без особых усилий.

www.embedded-projects.net/index.php?page_id … — Этот драйвер хоста USB поддерживает AVR Atmel со встроенным оборудованием USB и микросхемой SL811HS. Он включает драйверы классов для различных классов USB.

USB-анализаторы

www.sxlist.com/techref/io/serial/usb/atapch … — низкоскоростной аппаратный анализатор USB только для микропрограмм.

sourceforge.net/projects/usbsnoop/ — это сниффер USB для Windows. Это очень важно при отладке проблем с прошивкой на USB-устройстве.

Документация по USB

codeandlife.com/2012/01/22/avr-attiny-usb-t … — Пошаговое руководство по V-USB

www.usb.org/developers/docs/ — Спецификация USB. Не легко читать, но исчерпывающий справочник.

www.beyondlogic.org/usbnutshell/usb1.htm — «USB в двух словах» — хороший обзор соответствующих частей спецификации USB.Прочтите это вместо настоящей спецификации!

janaxelson.com/usb.htm — много хороших ссылок, связанных с USB.

juicedsystems.com/blogs/news/know-your-usb -… — Все о USB — краткое введение в USB в целом.

USB AVR Programmer AVR ISP для внутрисистемного программирования AVR — AVRISP с JTAG

USB AVR Programmer с JTAG


AVR In System Programmer (AVR ISP) для порта USB на ПК. Содержит дополнительные функции для микроконтроллеров ATtiny, AT90S и ATmega AVR.Этот программатор USB AVR питается от шины USB, имеет поддержку низковольтных устройств, работает очень быстро и поддерживает JTAG , а также AVR ISP. Версии командной строки и DLL доступны бесплатно.

Основные характеристики


  • Новая более быстрая версия — ATmega128 Программирование / проверка за 19 секунд
  • Программное обеспечение включает интерфейс JTAG и адаптер для программирования JTAG поставляется в комплекте.
  • Версии DLL и командной строки доступны бесплатно — см. Страницы поддержки
  • Программатор AVR с питанием от шины USB
  • Несколько интернет-провайдеров AVR с 1 ПК
  • Соответствует требованиям к питанию USB, включая сон
  • Поддерживает USB v1.1 протокол и Совместимость с USB v2.0
  • Драйверы Direct USB, а не виртуальный последовательный порт
  • Программирует микроконтроллеры AVR от 1,8 В до 5 В
  • Использует стандартный 10-позиционный целевой интерфейс AVRISP Kanda
  • Доступен 6-контактный адаптер ISP
  • Опция программирования AVR JTAG и адаптер включены
  • Автоматический запуск программы при вставке
  • Загружает производственные файлы Atmel ELF
  • Редактировать предохранители на экранах предохранителей или в шестнадцатеричном формате

Поддержка ОС Windows


Поддерживает Windows 2000, XP, VISTA, Windows7, Windows8, Windows 10, 32 и 64-разрядные версии.

Windows 98 и ME поддерживаются до версии программного обеспечения v2.1.7, доступной на наших страницах поддержки. Эта версия программного обеспечения НЕ будет обновляться в будущем.
Win 95 и ранняя версия Win98 должны работать с обновлением Microsoft USB до версии 2.1.7

NT4 НЕ поддерживается, так как Microsoft не обновила поддержку ядра и драйвер не доступен

Функции программного обеспечения


  • Простая установка и обнаружение каждый программист AVR
  • Выберите AVR ISP или JTAG-программатор из раскрывающегося списка
  • Полная поддержка AVR Fuse и Lockbit на удобном экране с улучшенными значениями по умолчанию для улучшения обнаружения устройства
  • Или изменить предохранители как шестнадцатеричные значения
  • Цветные буферы Flash и EEPROM можно редактировать в шестнадцатеричном и ASCII
  • Пользовательская серийная нумерация во Flash или EEPROM
  • Полная поддержка контрольной суммы CR16 / 32, XOR 16/32
  • Гибкие возможности автоматического программирования
  • Всплывающее окно сброса при ошибке предотвращает игнорирование ошибок — можно отключить
  • Режим Plug and Program — программист запускается автоматически при обнаружении новой цели, если установлен этот режим.Теперь с улучшенным интерфейсом для идентификации программиста и работы.
  • Полная проверка или только страницы проверки с данными для дополнительной скорости
  • NEW Экран источника часов использует тип часов, а не биты предохранителя, чтобы упростить установку правильных часов
  • НОВАЯ поддержка двоичных файлов, а также Intel Hex, Motorola и т. Д.
  • Чтение байтов калибровки
  • Загрузить файлы ELF, включая настройки устройства, предохранителей и битов блокировки

AVRUSB Содержимое


  • USB AVR Программатор ISP — 66 x 66 x 28 мм (2.6 х 2,6 х 1,1 дюйма)
  • 1,8 м USB A (ПК или концентратор) к Кабель USB B (программатор)
  • Кабель для программирования длиной 1 м с 10-канальным интерфейсом Kanda целевой интерфейс
  • Загрузки бесплатного программного обеспечения, включая все обновления
  • Адаптер интерфейса JTAG AVR

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


  • Старые AVR: AT90S2313, AT90S2323, AT990S2333, AT90S2343
  • AT90S4414, AT90S4433, AT90S8515, ATmega108535, ATmega108535, 900
  • AT90CAN128, AT90CAN32, AT90CAN64
  • AT90PWM2 / 3, AT90PWM316
  • AT90USB1286, AT90USB646
  • ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1
  • ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168, ATmega169
  • ATmega16M1, ATmega16U2, ATmega16U4
  • ATmega2560, ATmega2561
  • ATmega32, ATmega323, ATmega324, ATmega325, ATmega3250, ATmega328, ATmega329
  • ATmega3290, ATmega32C1, ATmega32M1, ATmega32U2, ATmega32U4, ATmega32U6
  • ATmega48, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649
  • ATmega6490, ATmega64C1, ATmega64M1
  • ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega8U2
  • ATtiny13, ATtiny1634, ATtiny167, ATtiny1634
  • ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261
  • ATtiny4313, ATtiny43U, ATtiny44, ATtiny45, ATtiny461, ATtiny48, ATtiny441
  • ATtiny84, ATtiny85, ATtiny861, ATtiny87, ATtiny88, ATtiny828, ATtiny841
  • Поддерживаются все микроконтроллеры P (PicoPower), PA, PB, V, L и A AVR.

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


Только новые устройства AVR ATmega с 40 контактами и более имеют интерфейс JTAG.
  • ATmega16, ATmega162, ATmega164, ATmega165, ATmega169, ATmega16U4
  • ATmega32, ATmega324, ATmega325, ATmega3250, ATmega329, ATmega3290, ATmega32U4, ATmega32U6
  • ATmega406, ATmega64, ATmega128, ATmega1280, ATmega1281, ATmega1284, ATmega128RFA1, ATmega2560, ATmega2561
  • ATmega640, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega640, ATmega644
  • AT90CAN32, AT90CAN64, AT90CAN128
  • AT90USB1286, AT90USB162, AT90USB646, AT90USB82
  • Поддерживаются все варианты микроконтроллеров P (PicoPower), PA, PB, V, L и A AVR.

DLL и версии командной строки этого программного обеспечения для программирования AVR для использования с существующими системами, например Доступны Labview или Visual Basic, см. Страницы поддержки для загрузки программного обеспечения DLL и документации.

6-ходовой адаптер


Теперь у нас есть адаптеры для преобразования стандартного 10-стороннего заголовка Kanda в другие 6-сторонние заголовки.
6-контактный адаптер DIL
6 односторонних проводов
6-контактный разъем Micromatch
Программатор поставляется с адаптером JTAG

Другая информация


Обзор линейки программаторов Kanda AVR

Руководство по схемам AVR ISP для схем рекомендуемых схем AVR ISP (новое окно).

AVR-USB-162

Прототип платы микроконтроллера AVR USB AT90USB162 с USB и ICSP https://www.olimex.com/Products/AVR/Proto/AVR-USB-162/
Цена 7,95 EUR
10 — 49 шт. 7,16 EUR
50 — 10000 шт. 6,36 EUR

AT90USB162 — это самый простой способ добавить функциональность USB к вашему следующему устройству, Atmel предоставляет бесплатный код HID (мышь, клавиатура) и CDC (USB-to-RS232) с открытым исходным кодом, а кроме того, стоимость AT90USB162 такая же, как у ATMega16, ну и что вы ждете?

Плата

AVR-USB-162 обеспечивает базовую схему, необходимую для работы с AT90USB162 — разъем и схему USB, внешний источник питания, если ваша схема требует больше мощности, чем 100 мА, которые обычно обеспечивает порт USB, кнопка, индикатор состояния, кнопка сброса.Все AT90USB162 поступают от Atmel с предварительно запрограммированным загрузчиком, который позволяет программировать код внутри чипа без какого-либо внешнего программатора, просто загрузите программное обеспечение FLIP с веб-сайта Atmel и загрузите свой HEX-код в AT90USB162. Чтобы войти в режим загрузчика, нажмите и удерживайте кнопку НО, затем нажмите и отпустите кнопку RST. Если вы предпочитаете использовать программатор ICSP, обратите внимание, что только AVR-ISP-MK2 поддерживает AT90USB162, поскольку есть довольно новые устройства, вероятно, AVR Dude добавит поддержку позже, но на данный момент вы не можете использовать AVR-PG1 или AVR-PG2 для Программирование ICSP, еще одна плохая новость заключается в том, что AT90USB162 поддерживает только отладку Wire, а не JTAG, поэтому для его отладки вам понадобится дорогой AT-JTAGICE-MK2.

ОСОБЕННОСТИ
  • Микроконтроллер AT90USB162 с флэш-памятью 16 КБ, ОЗУ 512 ГБ, EEPROM 512 ГБ
  • Разъем ICSP 5×2 для внутрисхемного программирования с помощью AVR-ISP-MK2 (обычно нет необходимости использовать ICSP, поскольку вы можете программировать через USB)
  • Debug Wire может выполняться с помощью 3 проводов, подключенных к ICSP (AT-JTAGICE-MK2 имеет такой разъем для потери проводов, который будет использоваться, вам нужны только сигналы VCC, GND, RST)
  • Разъем USB 2.0 Full Speed ​​
  • Пользовательская кнопка НО (может использоваться для входа в режим загрузчика после сброса)
  • Кнопка сброса RST
  • Получает питание от USB, не требует внешнего адаптера
  • Внешний источник питания и регулятор напряжения, если USB не может обеспечить достаточную мощность
  • Схема кварцевого генератора 8 МГц
  • Разъемы удлинительных штифтов для каждого штыря uC
  • Четыре монтажных отверстия 3.3 мм (0,13 дюйма)
  • Сетка 100 мил
  • Шина GND
  • Vcc автобус
  • FR-4, 1,5 мм (0,062 дюйма), зеленая паяльная маска, белая шелкография, компонентная печать
  • Размеры 100×80 мм (3,9×3,15 дюйма)

USBasp — USB-программатор для контроллеров Atmel AVR

Следующие пакеты включают схему и прошивку.

(519 Кбайт) Поддержка TPI, поддерживает программистов с ATMega88 и ATMega8.

(118 Кбайт) Поддерживает программистов с ATMega48 и ATMega8.

В Linux и MacOS X драйвер ядра не требуется. Windows требует драйвер для USBasp. Используйте этот инструмент для установки драйвера для Windows (см. Также:

Вот список протестированных макетов печатных плат. Если вы разработали свою собственную печатную плату, сообщите мне.


usbasp_single_side.t3001.zip
Томас Фишль,
Односторонняя печатная плата, TARGET 3001! файл макета
Размер: 90×40 мм (оптимизирован для корпуса Hammond 1591ATBU)

lv_usbasp.tar.gz
Павел Шрамовский (11/2007)
С Низковольтный интерфейс .
Односторонняя печатная плата, файлы макета EAGLE, некоторые компоненты SMD

Бернхард Валле
Двусторонняя печатная плата, файлы компоновки EAGLE, список деталей с номерами для заказа для Reichelt.de и Conrad.de
Размер: оптимизирован для корпуса Hammond 1591ATBU

http: // thomaspfeifer.net / atmel_usb_programmer.htm
Томас Пфайфер,
Односторонняя печатная плата, файлы макета PDF, компоненты SMD

Томаш Островски
Односторонняя печатная плата, файлы макета PDF и EPS, только четыре части 0805 SMD, остальные дискретные компоненты

USBasp_CH.молния
Автор: Christian Heigemeyr,
. Односторонняя печатная плата, с некоторыми компонентами SMD 0805, PDF-файлы
С дополнительными кнопками сброса и отключения мишени

USBasp.sch, USBasp.pcb
ComponentSide.pdf, TopSide.pdf, Schematics.pdf
по Журов Павел
Односторонняя печатная плата, формат P-CAD 2002 и файлы PDF
Крестовина TXD и RXD добавлены для разъема ISP

usbasp_gr.rar
автор: J.A. de Groot
Плата односторонняя (формат EAGLE), имеет размеры 3 на 8 см и использует только обычные компоненты.

usbasb_mg.zip
Маттиас Гёрнер,
Плата односторонняя, формат орла, с файлами PS / PDF
интегрированные разъемы для целевых микросхем ATmega8 и ATmega32

Тарбол с макетом
по Ханнес Остлунд
Двусторонняя печатная плата, компоненты SMD, очень маленькие

Сергей Богданцев (01/2010)
3.Версия 3V, только ATMega48. Односторонняя печатная плата, формат макета ExpressPCB + плата разъемов для различных AVR. Без будущего последовательного интерфейса чип изначально должен быть запрограммирован другим программатором.

Eaglefiles (sch / brd) и дизайн корпуса CAD (dxf)
Ганса Хафнера, HTL Mössingerstrasse-Klagenfurt, Österreich, hans.hafner (at) htl-klu (dot) at
(01/2010)
Корпус, фрезерованный на ЧПУ (доступен файл DXF), макет Eagle, всего несколько деталей для поверхностного монтажа


Различные версии USBasp: простая в сборке версия без smd, smd и очень маленький USBasp
Свен Хедин (01/2011)
Доступны файлы Eagle.

Программатор USB Key AVR
Фабио Балтьери (09/2011)
Очень маленький USB-ключ, как и габариты. Детали SMD.

Программатор AVR ISP
Ярослав Вадель (04/2012)
Маленький программист.Детали SMD.

Целевой проект и PDF-файлы (макет / схемы)
Мариус Шефер (09/2013)

tinyUSBboard с USBasp-совместимой прошивкой
Стефан Барвольф (04/2014)

USBasp на макетной плате с разъемом для дочерних плат контроллера.
от Фабиана Хаммеля (11/2018)

Тьяарт ван Асвеген разработал SMD-плату: файлы DIP TRACE и GERBER.
Тьяарт ван Асвеген (09/2019)

Многофункциональный (например,г. различные уровни напряжения, встроенный преобразователь USB в последовательный порт, разъем USB-C) Конструкция, совместимая с USBasp. AVR Programmer Github project.
Брайан Пепин (12/2019)

USBasp с разъемом ZIF и компонентами со сквозным отверстием.
Бруно (04/2020)

Плата USBasp с дополнительным 6-контактным разъемом и выбираемым целевым источником питания (3.3 В / выкл. / 5,0 В).
Марти Э. (10/2020)

Джон включил в комплект универсальную розетку на 40 контактов, на которую можно установить устройства с 8, 14, 20 и 28 контактами. Он также добавил универсальный кварцевый генератор с выходами 1, 2, 4, 8 и 16 МГц для синхронизации микросхем. Также имеется стандартный 6-контактный разъем ICSP и пользовательский светодиод, подключенный к контакту MOSI.
от Джона П. (11/2020)

QUSBASP отличается небольшими размерами и гибкостью (различные варианты подключения: USB-A или штыревой разъем, ICSP с 6 или 10 контактами или штырями pogo).
по Qetesh (07/2021)

AVR ISP ATmega64 ATmega128 ATmega1280 ATmega1281


Подключение USB AVRISP XPII к целевой плате
(Нажмите на изображение, чтобы увеличить)


— Совместимость с AT AVR ISP, проста в использовании, стабильная и надежная


— Обозначается как AVRISP mkII в AVRStudio, высокоскоростное программирование


— Прошивка обновляется для поддержки будущих устройств
— Автоматическое обновление


— AVR Studio 4/5/6 или WINAVR (GCC) используется в качестве внешнего программного обеспечения
— Поддерживает программные файлы, созданные IAR, ICCAVR, CVAVR


— USB AVRISP XPII поддерживает все устройства AVR с интерфейсом ISP и PDI.Поддержка новых устройств будет добавлена ​​в новых версиях AVR Studio.
— поддерживает AT86RF401 / AT89S51 / AT89S52

Обратитесь к AVR Studio 6, поддерживаются следующие устройства:
AVR Mega
AT90CAN128 AT90CAN32 AT90CAN64 AT90PWM1 AT90PWM161 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM81 AT90USB1286 AT90USB1287 AT90USB162 AT90USB646 AT90USB647 AT90USB82 ATA5702M322 ATA5782 ATA5790 ATA5790N ATA5795 ATA5831 ATA5832 ATA5833 ATA6285 ATA6286 ATA6612C ATA6613C ATA6614Q ATA6616C ATA6617C ATA664251 ATmega128 ATmega1280 ATmega1281 ATmega1284 ATmega1284P ATmega1284RFR2 ATmega128A ATmega128RFA1 ATmega128RFR2 ATmega16 ATmega162 ATmega164A ATmega164P ATmega164PA ATmega165A ATmega165P ATmega165PA ATmega168 ATmega168A ATmega168P ATmega168PA ATmega168PB ATmega169A ATmega169P ATmega169PA ATmega16A ATmega16HVA ATmega16HVB ATmega16HVBrevB ATmega16M1 ATmega16U2 ATmega16U4 ATmega2560 ATmega2561 ATmega2564RFR2 ATmega256RFR2 ATmega32 ATmega324A ATmega324P ATmega324PA ATmega325 ATmega3250 ATmega3250A ATmega3250P ATmega3250PA ATmega325A ATmega325P ATmega325PA ATmega328 ATmega329 ATmega328P ATmega3290 ATmega3290A ATmega3290P ATmega3290PA ATmega329A ATmega329P ATmega329PA AT mega32A ATmega32C1 ATmega32HVB ATmega32HVBrevB ATmega32M1 ATmega32U2 ATmega32U4 ATmega48 ATmega48A ATmega48P ATmega48PA ATmega48PB ATmega64 ATmega640 ATmega644 ATmega644A ATmega644P ATmega644PA ATmega644RFR2 ATmega645 ATmega6450 ATmega6450A ATmega6450P ATmega645A ATmega645P ATmega649 ATmega6490 ATmega6490A ATmega6490P ATmega649A ATmega649P ATmega64A ATmega64C1 ATmega64HVE2 ATmega64M1 ATmega64RFR2 ATmega8 ATmega8515 ATmega8535 ATmega88 ATmega88A ATmega88P ATmega88PA ATmega88PB ATmega8A ATmega8HVA ATmega8U2
AVR Крошечный
ATtiny10 ATtiny13 ATtiny13A ATtiny1634 ATtiny167 ATtiny20 ATtiny2313 ATtiny2313A ATtiny24 ATtiny24A ATtiny25 ATtiny26 ATtiny261 ATtiny261A ATtiny4 ATtiny40 ATtiny4313 ATtiny43U ATtiny44 ATtiny441 ATtiny44A Attiny45 ATtiny461 ATtiny461A ATtiny48 ATtiny5 ATtiny828 ATtiny84 ATtiny841 ATtiny84A ATtiny85 ATtiny861 ATtiny861A ATtiny87 ATtiny88 ATtiny9
АРН Xmega
ATxmega128A1 ATxmega128A1U ATxmega128A3 ATxmega128A3U ATxmega128A4U ATxmega128B1 ATxmega128B3 ATxmega128C3 ATxmega128D3 ATxmega128D4 ATxmega16A4 ATxmega16A4U ATxmega16C4 ATxmega16D4 ATxmega16E5 ATxmega192A3 ATxmega192A3U ATxmega192C3 ATxmega192D3 ATxmega256A3 ATxmega256A3B ATxmega256A3BU ATxmega256A3U ATxmega256C3 ATxmega256D3 ATxmega32A4 ATxmega32A4U ATxmega32C3 ATxmega32C4 ATxmega32D3 ATxmega32D4 ATxmega32E5 ATxmega384C3 ATxmega384D3 ATxmega64A1 ATxmega64A1U ATxmega64A3 ATxmega64A3U ATxmega64A4U ATxmega64B1 ATxmega64B3 ATxmega64C3 ATxmega64D3 ATxmega64D4 ATxmega8E5

Поддерживает все версии устройств с различным напряжением и скоростью, перечисленные в таблице выше.
Проверьте другие поддерживаемые устройства: UC3, Mega, SAM, Tiny, Xmega


— Высокоскоростные программы FLASH, EEPROM, предохранители и бит блокировки
— Программирование файла программы 12K с проверкой занимает всего 2,5 секунды (скорость программирования была установлена ​​на 1M, а максимальная скорость могла достигать 8M)


— Использует интерфейс USB для связи с программным обеспечением внешнего интерфейса (вероятно, AVR Studio)
— Использование PDIUSBD12, USB 1.1 (USB 2.0 Full Speed) 12 Мбит / с
— Каждый USB AVRISP XPII имеет уникальный идентификатор, что может подключается к нескольким устройствам одновременно


USB AVRISP XPII подключается к целевой плате с помощью 3 дополнительных кабелей.В зависимости от существующего разъема на целевой плате необходимо соответствующим образом заменить кабель.
— Стандартный 6-контактный разъем ISP, с использованием 6-контактного кабеля ISP
— Стандартный 10-контактный разъем ISP, с использованием кабеля ISP с 6-контактного на 10-контактный разъем
— Пользовательский разъем ISP, с использованием 6-проводного разноцветного пользовательского соединительного кабеля
На рисунках 1 и 2 показаны распиновки 10-контактных и 6-контактных разъемов ISP.

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

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