Многим знаком один из самых распространённыхи и доступных программаторов для прошивки AVR микроконтроллеров USB ASP. Который можно без особых проблем изготовить самостоятельно или приобрести в различных магазинах и на интернет площадках. Есть множество различных программ, которые без проблем работают с этим, народным, программатором. Так же в интернет магазинах имеет большое распространение программатор USB ISP, который схож по схемотехники с USB ASP, но отличается прошивкой и ПО, которое менее разнообразно и менее распространено.
Бывший программатор USB ISP, теперь USB ASP
Т.к. данные программаторы схожи схемотехникой — следовательно можно без особых проблем переделать и перепрошить ISP программатор в ASP, только для этого ненадолго понадобится ещё один программатор для AVR микроконтроллеров.
Зачем может понадобиться приобретать программатор ISP вместо ASP, а потом его перепрошивать:
Собственно когда я приобретал второй программатор 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 снизу (уже модифицирован)
Соединённые программаторы 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 |
Описание USBASP программатора AVR:
Программатор AVR USBASP позволит радиолюбителю получить простой, компактный и надежный программатор
всех микроконтроллеров с режимом последовательного программирования семейства AVR компании ATMEL,
подключаемый к USB-порту персонального компьютера. Что очень актуально, т.к. COM-порт для программатора
существует далеко не на всех современных компьютерах, и тем более на ноутбуках. Использование USB
программатора avr и функции внутрисистемного программирования (SPI) дают возможность быстро и
многократно программировать ваше микропроцессорное устройство в собранном виде, не отключая его
питания. При этом процесс отладки программного обеспечения с помощью данного AVR программатора заметно
упрощается, сокращается затрачиваемое на это время.
Технические характеристики USB программатора AVR:
● Напряжение питания: 5 В (по шине USB)
● Интерфейс подключения к ПК: USB
● Интерфейс программатора: ISP (внутрисхемное программирование)
● Программатор совместим с Windows 98 / 2000 / XP / Vista / Seven / Linux
● Габаритные размеры: 54 х 25 x 9 мм
Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3. 3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Список поддерживаемых 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.
USB ISP USB ASP ATMEGA8 ATMEGA128 — простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega128 (или ATMega8). Может использоваться для восстановления Arduino, заливки кода в чипы. И других целей.
Может использоваться совместно с ISP AVR системная плата.
Просматривая интернет-магазин подарков/веб-магазин Banggood, я наткнулся на этот красивый маленький программатор AVR. И, как и большинство продуктов, которые вы найдете на Banggood, этот был смехотворно дешев с доставкой. Поэтому я решил, что хочу один. Не то чтобы у меня еще не было программатора AVR. У меня уже был старый оригинальный программатор Atmel, который подключался к устаревшему последовательному порту. Просто пришло время для чего-то нового, чего-то современного, чего-то маленького, чего-то дешевого.
Обычно я бы не стал писать обзор на эту вещь, потому что особо не о чем писать.
Недавно я снова нашел его в ящике стола. Почему я не могу заставить эту штуку работать? Это не должно быть слишком сложно.
И после еще нескольких поисков в Google я нашел веб-сайт, объясняющий, что не так с этой вещью. Очевидно, схема не была полностью совместима с исходной конструкцией. Есть один дополнительный провод, соединяющий D- от USB-порта с контактом ввода-вывода PD3 ATmega88 внутри программатора. Это не было бы проблемой, если бы этот вывод был настроен как вход. Но поскольку прошивка USBasp настроила его как выход, он просто боролся с сигналом USB.Вот список веб-сайтов, которые помогли мне починить мой программатор USBasp:
Вся заслуга в этом принадлежит этим парням. Я просто суммирую то, что я сделал, чтобы исправить мой программатор, благодаря их превосходному руководству.
Этот программатор выпускается не только в разных цветах, но и под разными названиями, напечатанными на его боковой стороне.
Обычно USB ISP напечатан на устройстве.
Хотя аппаратное обеспечение почти совместимо с USBasp.
У меня снаружи была напечатана версия 2.0, а на плате внутри было указано, что это версия MX-USBISP-V4.00.
Описанные выше веб-сайты говорят о версиях печатных плат 3.00 и 3.02.
Иногда печать на устройствах даже обнажает логотип Atmel.
Открыть программатор довольно просто.
Просто наденьте корпус на разъем USB и полностью снимите его.
Сборка его просто выполняется в обратном порядке. Никаких специальных инструментов или навыков не требуется.
И если вы не помните, какой стороной вверх, просто посмотрите на светодиоды рядом с кристаллом и маленькое отверстие в корпусе, они должны совпадать.
Возможным решением является перерезание трассы между USB D- и PD3.
Должен признаться, что сам я этого не пробовал.
Вот как я починил свой процессор.
Вы можете загрузить эту модифицированную прошивку с веб-сайта Uwezi, либо версию ATmega8, либо версию ATmega88, в зависимости от того, что применимо к вашему программатору.
Я позволил себе загрузить версию ATmega88 на своем веб-сайте, потому что она мне подошла.
Однако вся заслуга в этом программном обеспечении принадлежит Увези, который его скомпилировал.
Независимо от того, какое решение вы выберете, вам все равно придется прошить новую прошивку в ваш программатор.
Хотя это довольно легко.
Я не буду объяснять вам, как прошить программное обеспечение в процессор Atmel.
Я думаю, вы уже должны знать, как это делается, когда вы зашли так далеко.
Однако у вас может быть проблема с курицей и яйцом.
Вам временно нужен другой программатор AVR.
Если у вас его нет, вы можете одолжить его.
Если вы не можете одолжить один, возможно, вам лучше купить другой программатор вместе.
Прежде чем вы сможете прошить новую прошивку в ваш программатор USBasp, вы должны соединить две контактные площадки с надписью «Up» вместе.
Не забудьте отсоединить перемычку между двумя контактными площадками «Вверх», прежде чем снова закрыть программатор USBasp.
Во всяком случае, у меня снова работает программатор.
По стечению обстоятельств я также только что закончил небольшой адаптер для программирования, который позволяет мне программировать 8-контактные и 24-контактные DIP-устройства Atmel, которые у меня случайно завалялись. Он может даже программировать 8-контактные процессоры PIC (помойте рот с мылом).
Этот адаптер для программирования отлично работал с моим старым программатором AVR ISP на моих процессорах ATmega8, ATmega88 и ATtiny13.
Однако я смог заставить ATmega88 работать только с моим новым программатором USBasp.
Avrdude продолжал жаловаться, что подпись устройства, считанная с устройства, не совпадает.
И вдобавок ко всему сигнатура устройства, считываемая с устройства, менялась каждый раз, когда я пытался его запрограммировать.
Сначала я подозревал, что источник питания загрязнен, потому что это была единственная разница между двумя установками.
Я даже пробовал гораздо более короткий провод между программатором и целевой системой.
Вскоре я обнаружил, что USBasp просто слишком быстр для стандартных тактовых частот ATmega8 и ATtiny13.
По-видимому, интернет-провайдер Atmel был недостаточно быстрым, чтобы это стало проблемой.
К счастью, решение довольно простое.
Добавьте параметр -B 3 в команду avrdude. Вот пример команды для программирования более медленных процессоров:
avrdude -c usbasp -B 3 -p m8 -U flash:w:targetfile.hex
ДОМ > МАГАЗИН > ISP USBasp Programmer (случайный цвет)
{% конец%}
{% для варианта в 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 != » %}
{% 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’ %} {% конец%}
{% для варианта в 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 == 3 или box.template.id == ‘3’ %}
{% if box.title и box.title.text и box.title.text != » %}
{% endif %} {% if box.subtitle и box.subtitle.text и box.subtitle.text != » %}
{{box.subtitle.text}}
{% endif %} {% присвоить total_price = 0 %}
{% если только продукт.доступен %} {{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 %}