Какие преимущества дает использование USB ISP программатора для AVR микроконтроллеров. Какие модели микроконтроллеров поддерживаются. Как правильно подключить и настроить программатор. На что обратить внимание при выборе USB ISP программатора.
Что такое USB ISP программатор для AVR микроконтроллеров
USB ISP программатор — это устройство для программирования микроконтроллеров семейства AVR через интерфейс USB. Аббревиатура ISP расшифровывается как In-System Programming, что означает возможность программирования микроконтроллера непосредственно в целевой системе, без его извлечения.
Основные преимущества USB ISP программатора:
- Подключение к компьютеру через USB порт, не требуется отдельный COM-порт
- Высокая скорость программирования
- Возможность питания целевой платы от USB
- Поддержка большинства популярных микроконтроллеров AVR
- Совместимость с AVR Studio и другими средами разработки
- Компактные размеры
Поддерживаемые модели микроконтроллеров AVR
Типичный USB ISP программатор поддерживает программирование следующих серий микроконтроллеров AVR:
- ATmega: ATmega8, ATmega16, ATmega32, ATmega128 и др.
- ATtiny: ATtiny13, ATtiny25, ATtiny45, ATtiny85 и др.
- AT90: AT90S2313, AT90S8515 и др.
- ATxmega: ATxmega32A4, ATxmega128A1 и др.
Конкретный список поддерживаемых моделей зависит от производителя и модели программатора. Перед покупкой следует уточнить поддержку нужных вам микроконтроллеров.
Подключение и настройка USB ISP программатора
Для подключения USB ISP программатора к целевой плате с микроконтроллером обычно используется 6- или 10-контактный разъем. Основные сигналы, передаваемые через этот разъем:
- MOSI — Master Out Slave In (данные от программатора в МК)
- MISO — Master In Slave Out (данные от МК в программатор)
- SCK — Serial Clock (тактирование передачи данных)
- RESET — сигнал сброса микроконтроллера
- VCC — питание
- GND — земля
Для корректной работы программатора необходимо установить драйверы. Обычно они поставляются в комплекте или доступны для скачивания с сайта производителя. После установки драйверов программатор будет определяться в системе как виртуальный COM-порт.
Особенности использования USB ISP программатора
При работе с USB ISP программатором следует учитывать несколько важных моментов:
- Убедитесь, что выбрано правильное напряжение питания целевого МК (обычно 3.3В или 5В).
- Проверьте правильность подключения всех сигналов к целевой плате.
- Используйте короткие соединительные провода для минимизации помех.
- Не отключайте программатор во время прошивки МК во избежание повреждения.
- Периодически обновляйте прошивку самого программатора для поддержки новых МК.
Популярные модели USB ISP программаторов
На рынке представлено множество моделей USB ISP программаторов для AVR. Наиболее популярными являются:
- AVRISP mkII от Atmel — оригинальный программатор с отличной совместимостью
- USBasp — бюджетный open-source программатор
- STK500 — профессиональный программатор/отладчик
- USBISP — недорогой китайский клон AVRISP
При выборе программатора обращайте внимание на поддержку нужных МК, наличие защиты от неправильного подключения, качество изготовления.
Преимущества использования USB ISP программатора
Использование USB ISP программатора дает ряд существенных преимуществ разработчику:
- Удобное подключение к современным компьютерам через USB
- Высокая скорость программирования по сравнению с COM-портом
- Возможность питания целевой платы непосредственно от программатора
- Компактные размеры, удобно брать с собой
- Поддержка большинства популярных AVR микроконтроллеров
- Совместимость с AVR Studio и другими средами разработки
Программное обеспечение для работы с USB ISP
Для работы с USB ISP программатором можно использовать различное программное обеспечение:
- AVR Studio / Atmel Studio — официальная среда разработки от производителя
- AVRDUDE — консольная утилита для программирования AVR
- Khazama AVR Programmer — удобная графическая оболочка для AVRDUDE
- eXtreme Burner AVR — простая программа для прошивки AVR
- Собственное ПО, поставляемое с некоторыми программаторами
Выбор конкретного ПО зависит от ваших предпочтений и особенностей проекта.
Советы по использованию USB ISP программатора
Чтобы обеспечить надежное программирование AVR микроконтроллеров с помощью USB ISP, придерживайтесь следующих рекомендаций:
- Используйте качественный USB-кабель минимальной длины
- Обеспечьте надежный контакт в разъеме подключения к целевой плате
- По возможности используйте внешнее питание целевой платы
- Отключайте все неиспользуемые периферийные устройства на целевой плате
- Периодически проверяйте целостность соединительных проводов
Следование этим простым правилам поможет избежать большинства проблем при программировании микроконтроллеров.
Заключение
USB ISP программатор — незаменимый инструмент для разработчиков, работающих с микроконтроллерами AVR. Он обеспечивает удобное и быстрое программирование широкого спектра устройств. При правильном выборе модели и соблюдении рекомендаций по использованию, USB ISP программатор значительно упрощает процесс разработки и отладки проектов на базе AVR.
описание USBASP драйвера, инструкция по настройке своими руками в AvrDude Prog, Atmel Studio и Khazama AVR Programmer, обновление проши
В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.
Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.Технические характеристики
Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание:ссылка
Список поддерживаемых микроконтроллеров
ATmega серия ATmega8 ATmega48 ATmega88 ATmega168 ATmega328ATmega103 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
Серия Classic AT90S1200 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, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 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
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.
Соединение согласно схеме ниже. Но тут всё немного интереснее.
Поскольку голый чип в 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 — сайт создателя проекта
Alex_EXE » Переделка программатора USB ISP в USB ASP
Многим знаком один из самых распространённыхи и доступных программаторов для прошивки AVR микроконтроллеров USB ASP. Который можно без особых проблем изготовить самостоятельно или приобрести в различных магазинах и на интернет площадках. Есть множество различных программ, которые без проблем работают с этим, народным, программатором. Так же в интернет магазинах имеет большое распространение программатор USB ISP, который схож по схемотехники с USB ASP, но отличается прошивкой и ПО, которое менее разнообразно и менее распространено.
Бывший программатор USB ISP, теперь USB ASP
Т.к. данные программаторы схожи схемотехникой — следовательно можно без особых проблем переделать и перепрошить ISP программатор в ASP, только для этого ненадолго понадобится ещё один программатор для AVR микроконтроллеров.
Зачем может понадобиться приобретать программатор ISP вместо ASP, а потом его перепрошивать:
- при покупки их можно перепутать
- продавец может ввести в заблуждение или сам перепутать
- в наличии остался только ISP
- у него оказалась более выгодная цена
- Вам USP ISP программатор достался в подарок
Собственно когда я приобретал второй программатор USB ASP для того, что бы он валялся на работе про запас, у продавца значился он, как ASP, а вот пришёл второй вариант. Что оказалось неприятным сюрпризом, к счастью не надолго.
USB ISP программатор очень похож на оригинал. Версий ISP программатора несколько, у них разные платы, следовательно может отличатся расположение перемычек, может немного отличаться схемотехника (не разбирался). Так же они бывают с разными контроллерами ATMega8, ATMega48, ATMega88.
Мне достался программатор USB ISP Version 2.0 с контроллером Atmega88V, маркировка на плате USB ISP mx-usbisp-v4.00. На его примере и покажу, как можно его превратить в распространённый USB ASP. Если у Вас другая версия программатора то его схемотехника, название и расположение перемычек могут отличатся. На официальном сайте USB ASP приведена принципиальная схема оригинального программатора, ссылка в конце статьи. С другими версиями программаторов USB ISP дел не имел, если встречусь — дополню статью.
Вид платы программатор USB ISP сверху
Вид платы программатор USB ISP снизу (уже модифицирован)
- Нужно раздобыть второй программатор.
- Нужно убрать перемычку B с обратной стороны платы (рядом с чёрным уплотнителем справа, на фотографии заметны следы моего вмешательства).
- Для замены прошивки программатора нужно будет установить прошивку UP (на время перепрошивки контроллера). Её можно припаять на время обновления, замкнуть острым пинцетом или установить любым другим способом. Данная перемычка соединяет линию сброса (reset) микроконтроллера с одноименным выводом на разъёме программирования. На схеме оригинального программатора эта перемычка имеет имя — Selfprogramming.
- Скачать прошивку под нужную версию контроллера с официального сайта USB ASP — http://www.fischl.de/usbasp/
- Подключить ПО ISP разъёму второй программатор.
- Перепрошить.
- Убрать перемычку UP.
Соединённые программаторы USB ISP и USB ASP
Так как разработкой данного программатора я не занимался, то в статье заметке, не привожу оригинальную схему и прошивку, а предлагаю перейти на оригинальный сайт программатора USB ASP — http://www. fischl.de/usbasp/ .
Дополнение от 1.01.2022
USB ISP версии MX-USBISP-V6.00, вид сверху
USB ISP версии MX-USBISP-V6.00, вид снизу
Попала в руки ещё одна версия USB ISP программатора MX-USBISP-V6.00 на чипе ATMEGA88-20AU. С переделкой этого программатора в USBASP почти всё то же самое. Единственное отличие у него перемычка B обозвана перемычкой A, т.е. у этого программатора, что бы USB определился нужно удалить перемычку A.
Статья обновлена 1.01.2022
Alex_EXE | 30.09.2017 | AVR |
Оставьте отзыв
USB AVRISP AVR Программатор для программирования микроконтроллеров AVR
Недорогой USB AVR ISP
Надоело запускать AVRStudio только для программирования AVR? Этот программатор имеет собственное программное обеспечение для быстрой и простой работы, а также теперь включает эти мощные функции
- Может питать целевую цепь (только 5 В)
- Способность суперпривода работать с конденсаторами, микросхемами UART и т. д.
- USB Работа с ПК или запуск с AVRStudio 4 или AtmelStudio 5, 6 или 7
- Поддерживает производственные файлы Atmel ELF
- Простая установка через USB на все ОС Windows, включая 64-разрядные версии и Windows 8 и 10
- Новая версия ISP3 для поддержки новейших USB-драйверов FTDI
Функции программатора
- Автоматическая настройка скорости интернет-провайдера выбирает максимально возможную скорость программирования
- Поддерживает целевые напряжения 1,8–5,5 В
- 6- и 10-контактные целевые кабели AVR ISP в комплекте
- Стирание, программирование, проверка и чтение флэш-памяти, EEPROM, предохранителей и битов блокировки
- Простые в использовании экраны настройки предохранителей
- Редактирование предохранителей в шестнадцатеричном формате или экранах предохранителей
- Включает серийный номер, контрольные суммы и байт(ы) калибровки RC
- Функция автопрограммирования с пользовательскими параметрами, включая
- Перезагрузить файлы
- Program Fuses First — изменить часы или установить EESAVE перед удалением
- Чтение байтов калибровки — сохранить в EEPROM или во флэш-память для программирования
- Увеличение серийного номера
- Чтение EEPROM перед стиранием
- Стирание, программирование и проверка флэш-памяти, EEPROM, предохранителей и битов блокировки
- Выполнить — отпустить Сброс
- Высокая скорость программирования, примеры см. в разделе «Скорость»
- Включены 6- и 10-сторонние интерфейсы Atmel AVR ISP
Поддержка микроконтроллера AVR
- Старые версии AVR: AT90S8515,AT90S8535, ATmega103
- АТ90КАН128, АТ90КАН32, АТ90КАН64
- АТ90ПВМ2/3, АТ90ПВМ316
- AT90USB1286, AT90USB162, AT90USB646, AT90USB82
- 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
- ATtiny12, ATtiny13, ATtiny15, ATtiny1634, ATtiny167
- ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261
- ATtiny4313, ATtiny43U, ATtiny44, ATtiny45, ATtiny461, ATtiny48
- ATtiny84, ATtiny85, ATtiny861, ATtiny87, ATtiny88
- АТтини441, АТтини841
- Поддерживаются все микроконтроллеры P (PicoPower), PA, PB, V, L и A AVR.
Бесплатные обновления для поддержки новых микроконтроллеров AVR
Поддержка ОС Windows
Поддерживает Windows 2000, XP, VISTA, Windows7, Windows8/8.1, Windows 10, Win11 — 32- и 64-разрядные версии
Комплект поставки
- USB-кабель
- 10-жильный кабель интернет-провайдера
- 6-жильный кабель интернет-провайдера
- Загрузка бесплатного программного обеспечения, включая все обновления
Другие адаптеры, например, 1,27 мм (0,05″), см. ниже.
Программное обеспечение AVRISP
Программное обеспечение можно вызывать из AVRStudio, AtmelStudio или Microchip Studio для упрощения разработки, но оно имеет автономный интерфейс для программирования на ПК с множеством функций для быстрого программирования, включая
- Редакторы буферов для Flash и EEPROM
- Автоматическая настройка скорости интернет-провайдера в соответствии с целью
- Автопрограмма, гибкие серийные номера, чтение байта калибровки
- Простой экран предохранителя
- Загрузить файлы ELF производства Atmel со всеми данными, включая предохранители и биты блокировки
Как создать файлы ELF - Редактировать предохранители в шестнадцатеричном формате или на экранах предохранителей.
Информация о приводе программатора и пример скорости программирования
Эта новая версия была разработана не только для питания целевой схемы, но и для улучшения ее привода. Это означает, что он может работать с большими конденсаторами и меньшими резисторами при сбросе и сбросе AVR. линии программирования. Хотя мы предлагаем вам следовать рекомендациям в нашем Руководство по схемам AVR ISP, у вас может быть цели, которые уже не соответствуют требованиям, и этот программатор должен иметь дело с чипами MAX232 и другими нагрузками.
Скорость выборки для ATmega128
- Программа Full Flash — 10 секунд
- Проверка флэш-памяти — 5 секунд
- Программа EEPROM заполнена — 40 секунд
- Проверка EEPROM — 1 секунда
- Все операции (стирание, прошивка, программирование и проверка EEPROM, предохранителей и блокировочных битов — 57 секунд
При 5 В, целевой частоте 8 МГц задержка USB (экран настройки) установлена на 2 — некоторым ПК может потребоваться более высокая задержка.
Не знаете, какой программатор лучше?
Сравнение различных программаторов AVR
Другая информация
Обучение
Наш новый тренажер AVR включает в себя этот программатор, макетную плату,
JTAGAVR ICE, книги по AVR и Embedded C, среда разработки и многое другое.
Схемы ISP
Руководство по схемам AVR ISP в новом окне.
Добавление в Atmel Studio
AVRISP-U можно вызывать прямо из Atmel Studio
Добавление в Atmel Studio
Идентификатор продукта
Старые версии AVRISP-U имеют метку с надписью ISP или ISP2 (ISP 2).
Они по-прежнему будут работать с последним программным обеспечением.
Версия ISP не будет питать цель, ISP 2 использует более старый USB-драйвер FTDI (2.12.28), но его можно обновить с помощью последней версии программного обеспечения.
Текущая версия — ISP 3 (ISP3) и поддерживает последнюю версию драйвера FTDI (2. 12.36).
Если на этикетке вашего устройства написано Dongle, Dongle2 или Dongle3, то это не AVRISP-U, а загрузочный ключ Handheld или Keyfob.
ISP USBasp Programmer (случайный цвет)
ДОМ > МАГАЗИН > ISP USBasp Programmer (случайный цвет)
{% конец%}
- {% для продукта в продуктах %}
{% присвоить first_available_variant = false %}
{% для варианта в product.variants %}
{% if first_available_variant == false and variant.available %}{% assign first_available_variant = variant %}{% endif %}
{% конец для %}
{% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %}
{% если product.images[0] %}
{% assign feature_image = product.images[0] | img_url: ‘350x’ %}
{% еще %}
{% присвоить Featured_image = no_image_url | img_url: ‘350x’ %}
{% конец%} id}}»>
{%, если box.template.elements содержит ‘saleLabel’ и first_available_variant.compare_at_price > first_available_variant.price %}
{{перевод.продажа}}
{% конец%}
{% если только продукт.доступен %}
{{translation.sold_out}}
{% бесконечный %}
{{продукт.название}}
{% присвоить варианты_размера = продукт.варианты | размер %}
{% для варианта в product.variants %} {{variant.title}}{%, если только вариант.доступен %} — {{translation.sold_out}}{% endunless %} {% конец для %}
{%, если box.template.elements содержит ‘цену’ %} first_available_variant.price %} ga-product_have_oldprice {% endif %}»>{{first_available_variant.price | деньги}} {% if first_available_variant.compare_at_price > first_available_variant. price %}{% elsif box.template.id == 2 или box.template.id == ‘2’ %}
{% if box.title и box.title.text и box.title.text != » %}
{{box.title.text}}
{% endif %} {% if box.subtitle и box.subtitle.text и box.subtitle.text != » %}
{{box.subtitle.text}}
{% endif %} {% присвоить total_price = 0 %}
{% для продукта в продуктах %} {% присвоить first_available_variant = false %} {% для варианта в product.variants %} {% if first_available_variant == false and variant. available %}{% assign first_available_variant = variant %}{% endif %} {% конец для %} {% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %} {%, если first_available_variant.available и box.template.selected %} {% присвоить total_price = total_price | плюс: first_available_variant.price %} {% конец%} {% если product.images[0] %} {% assign feature_image = product.images[0] | img_url: ‘350x’ %} {% еще %} {% присвоить Featured_image = no_image_url | img_url: ‘350x’ %} {% конец%}
{% если только продукт.доступен %} {{translation.sold_out}} {% бесконечный %}
{% конец для %}
{%, если box.template.elements содержит ‘цену’ %}
{{translation. total_price}} {{total_price | деньги}}
{% конец%} {%, если box.template.elements содержит ‘addToCartBtn’ %} {% конец%}
- {% для продукта в продуктах %}
{% присвоить first_available_variant = false %}
{% для варианта в product.variants %}
{% if first_available_variant == false and variant.available %}{% assign first_available_variant = variant %}{% endif %}
{% конец для %}
{% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %}
{% если product.images[0] %}
{% assign feature_image = product.images[0] | img_url: ‘350x’ %}
{% еще %}
{% присвоить Featured_image = no_image_url | img_url: ‘350x’ %}
{% конец%}
- {% if product.id == cur_product_id %} {{translation.this_item}} {% endif %}{{product.title}}{%, если только product. available %} — {{translation.sold_out}}{% бесконечный %}
{% присвоить варианты_размера = продукт.варианты | размер %}
{% для варианта в product.variants %} {{variant.title}}{%, если только вариант.доступен %} — {{translation.sold_out}}{% endunless %} {% конец для %}
{%, если box.template.elements содержит ‘цену’ %} first_available_variant.price %} ga-product_have_oldprice {% endif %}»>{{first_available_variant.price | деньги}} {% if first_available_variant.compare_at_price > first_available_variant.price %}{{первый_доступный_вариант.compare_at_price | деньги}}{% конец%} {% конец%} {% конец для %}
{% elsif box.template.id == 3 или box.template.id == ‘3’ %}
{% if box.title и box.title.text и box.title.text != » %}
{{box.
title.text}}{% endif %} {% if box.subtitle и box.subtitle.text и box.subtitle.text != » %}
{{box.subtitle.text}}
{% endif %} {% присвоить total_price = 0 %}
- {% для продукта в продуктах %}
{% присвоить first_available_variant = false %}
{% для варианта в product.variants %}
{% if first_available_variant == false and variant.available %}{% assign first_available_variant = variant %}{% endif %}
{% конец для %}
{% if first_available_variant == false %}{% assign first_available_variant = product.variants[0] %}{% endif %}
{%, если first_available_variant.available и box.template.selected %}
{% присвоить total_price = total_price | плюс: first_available_variant.price %}
{% конец%}
{% если product.images[0] %}
{% assign feature_image = product.images[0] | img_url: ‘100x’ %}
{% еще %}
{% присвоить Featured_image = no_image_url | img_url: ‘100x’ %}
{% конец%} id}}»>
{% если только продукт.доступен %} {{translation.sold_out}} {% бесконечный %}
{% if product.id == cur_product_id %} {{translation.this_item}} {% endif %}{{product.title}}{%, если product.available %} — {{translation.sold_out}} {% бесконечный%}
{% присвоить варианты_размера = продукт.варианты | размер %}{% для варианта в product.variants %} {{variant.title}}{%, если только вариант.доступен %} — {{translation.sold_out}}{% endunless %} {% конец для %}
{%, если box.template.elements содержит ‘цену’ %} first_available_variant.price %} ga-product_have_oldprice {% endif %}»>{{first_available_variant.price | деньги}} {% if first_available_variant.compare_at_price > first_available_variant.price %}