Перейти к содержимому

Как перепрошить программатор usbasp

  • автор:

Alex_EXE

Многим знаком один из самых распространённыхи и доступных программаторов для прошивки AVR микроконтроллеров USB ASP. Который можно без особых проблем изготовить самостоятельно или приобрести в различных магазинах и на интернет площадках. Есть множество различных программ, которые без проблем работают с этим, народным, программатором. Так же в интернет магазинах имеет большое распространение программатор USB ISP, который схож по схемотехники с USB ASP, но отличается прошивкой и ПО, которое менее разнообразно и менее распространено.

Бывший программатор USB ISP, теперь USB ASP

Бывший программатор USB ISP, теперь USB ASP

Т.к. данные программаторы схожи схемотехникой — следовательно можно без особых проблем переделать и перепрошить ISP программатор в ASP, только для этого ненадолго понадобится ещё один программатор для AVR микроконтроллеров.

Зачем может понадобиться приобретать программатор ISP вместо ASP, а потом его перепрошивать:

  1. при покупки их можно перепутать
  2. продавец может ввести в заблуждение или сам перепутать
  3. в наличии остался только ISP
  4. у него оказалась более выгодная цена
  5. Вам 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 сверху

Вид платы программатор USB ISP снизу (уже модифицирован)

Вид платы программатор USB ISP снизу (уже модифицирован)

  1. Нужно раздобыть второй программатор.
  2. Нужно убрать перемычку B с обратной стороны платы (рядом с чёрным уплотнителем справа, на фотографии заметны следы моего вмешательства).
  3. Для замены прошивки программатора нужно будет установить прошивку UP (на время перепрошивки контроллера). Её можно припаять на время обновления, замкнуть острым пинцетом или установить любым другим способом. Данная перемычка соединяет линию сброса (reset) микроконтроллера с одноименным выводом на разъёме программирования. На схеме оригинального программатора эта перемычка имеет имя — Selfprogramming.
  4. Скачать прошивку под нужную версию контроллера с официального сайта USB ASP — http://www.fischl.de/usbasp/
  5. Подключить ПО ISP разъёму второй программатор.
  6. Перепрошить.
  7. Убрать перемычку UP.

Соединённые программаторы USB ISP и USB ASP

Соединённые программаторы 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, вид снизу

USB ISP версии MX-USBISP-V6.00, вид снизу

Попала в руки ещё одна версия USB ISP программатора MX-USBISP-V6.00 на чипе ATMEGA88-20AU. С переделкой этого программатора в USBASP почти всё то же самое. Единственное отличие у него перемычка B обозвана перемычкой A, т.е. у этого программатора, что бы USB определился нужно удалить перемычку A.

Статья обновлена 1.01.2022

8 комментариев на « Переделка программатора USB ISP в USB ASP»

  1. Slaa пишет 29.10.2018 в 17:58 #

Привет! У меня есть небольшой вопрос по программатору, описанному в вашей статье. Я купил похожий программатор USB ISP и тоже на atmega88V. При включении в usb (Win XP) он определяется как хид устройство и всё, драйверы не устанавливаются. По даташиту для atmega88V его тактовая частота не более 10МГц, а в программаторе стоит кварц на 12 МГц. Не есть ли это то самое противоречие, мешающее нормально работать программатору? ( Я к сожалению, пока слабо разбираюсь в этих вопросах, только решил заняться контроллерами).

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

прошивку UP — видимо перемычку

Точно такой же USBISP с маркировкой MX-USBISP-V4.0 на плате и чипом ATMEGA88V прошивал просто замкнув перемычкой контакты UP, т.е. никакие другие перемычки менять не потребовалось (A, B, C, D). Фьюзы тоже не менял.
Прошивал стареньким самопаянным программатором AVR910 (от protoss).
Прошивку долго не искал, использовал первую попавшуюся для чипа ATMEGA88V.
Потом снял перемычку и накатил libusb0-драйвер через программу zadig.
Полученный USBasp прошивает удивительно быстро.

ребята подскажите кто-то версия программатора mx-usbisp-v5.00 пробовал шить и с гитхаба самыми последними архивами и в инете искал прошивки не работает он на атмеге 88v собран может есть у кого прошивка поделитесь плиз

Доброго времени суток.
Очень вовремя эта статейка попалась на глаза. У меня программатор был USBISP (mx-usbisp-v5.00). Решил из него ASP вытворить… Но плата ни на 4.0 ни на 6.0 не похожа…
Прошить то не проблема- перемычку на UP и все.. Но вот комп ее потом не видел.. напрочь.. И, как правильно замерил Автор, перемычку надо удалять «А». А точнее, это не дорожка на плате, а СМД резистор с 0-м сопротивлением.. Выпаял — и все пошло как надо.. Только вот цвета светодиодов «поменялись» местами )). Теперь готовность- синий, а программирование — красный.. Так даже веселее..
И всех — с Новым Годом !

спасибо комментатору выше. (MIG) REV5.0 начинает работать только когда выпаять 0резистор

ПОДДЕРЖИВАЮ. спасибо за совет, полдня промучался пока не прочитал, что REV5.0 начинает работать только когда выпаять 0 резистор

Как перепрошить программатор usbasp

«Перепрошить» китайский программатор USBasp может даже новичок. Для этого достаточно:

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

Например, у программатора на фото — это контакты, отмеченные линией!

2. Подключить USBasp к любому программатору, который поддерживает программирование AVR контроллеров!
Выходы контактного разъема USBasp должны быть соединены в точности так же, как и при «прошивке» обычного микроконтроллера! То есть:

GROUND (GND) — общий провод GND GND

VCC (питание) должно быть не больше 5V! VCC VCC

SCK (serial clock) — последовательная синхронизация! Импульсы генерирует MASTER (ведущее устройство) SCK SCK

MOSI (MASTER OUT SLAVE IN) – это выход сигнала с MASTER (ведущего) устройства на SLAVE (ведомое)

MISO (MASTER IN SLAVE OUT) – вход для ведущего устройства, на который сигнал приходит с выхода ведомого!

RESET (сброс) – обратите внимание именно на этот контакт поступает сигнал для начала программирования! По умолчанию вывод RESET встроенного в USBasp контроллера не подключен – подключается он замыканием соответствующих выводов (установкой перемычки) см. фото!

Внимание, если ваш USBasp работает нормально, не спешите его сразу «перепрошивать» – сделайте вначале резервную копию «прошивки»!
Перед «прошивкой» желательно полностью стереть чип, не изменяя FUSE Bits!
Фьюз биты AVR микроконтроллера – это специальные ячейки памяти для конфигурации его работы. Помните, что неправильная установка даже одного фьюз бита, может привести к тому, что контроллер начнет работать совсем не так, как ожидалось, и возможно даже перестанет реагировать на команды с обычного ISP программатора!
Если «прошить» USBasp у вас не получается, скорее всего:
— неправильно подсоединены выводы – попробуйте поменять местами MOSI и MISO, предварительно убедившись, что всё соединения имеют надежный контакт!
— неправильно выбран тип микроконтроллера – выберите его вручную!

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

Стоит также заметить, что для «перепрошивки» USBasp не обязательно использовать программатор – его можно заменить даже дешевой платой Arduino, поддерживающей USB! Например, китайским аналогом Arduino Nano ! Разумеется, предварительно в плату Arduino необходимо загрузить скетч (программу) «Arduino ISP».

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

USBasp — простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны. Особенности программатора:
— работа под любой платформой: Windows, Linux и Mac OS X
— какие-либо специальные компоненты или smd не нужны
— скорость программирования до 5 кБ/сек
— SCK-джампер позволяет программировать низкоскоростные контроллеры ( < 1.5МГц)
— в планах: последовательный интерфейс (например для отладки) Схема программатораПринципиальная схема программатора Схема предназначена для программирования только 5В кристаллов. В других случаях, уровни должны быть преобразованы! Заливка прошивки Т.к. в схеме программатора используется микроконтроллер, то его необходимо предварительно прошить. Для этого подключите другой рабочий программатор и установите джампер J2, для активации функции обновления прошивки.
Прошейте программатор при помощи прошивки: «bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex» или «bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»
Необходимо будет установить фьюзы для подключения внешнего кварца
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff Установки джамперовJ1 — источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
J2 — обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
J3 — если программируемый МК низкоскоростной Установка драйверов под Windows Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку «bin/win-driver«. Windows установит драйвер.
Теперь можно запустить avrdude, к примеру:
1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hexСборка их исходников (под Linux) Компиляция прошивки:
1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
2. Войдите в директорию firmware/
3. Выполните команду «make main.hex»
4. Прошейте «main.hex» ATMega(4)8. Например при помощи uisp или avrdude (используйте
Makefile с опцией «make flash«). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
с опцией «make fuses«). Компиляция avrdude:
ПО AVRDUDE поддерживается программатором USBasp начиная с версии 5.2.
1. Установите пакет libusb: http://libusb.sourceforge.net/
2. Скачайте последнюю версию avrdude: http://download.savannah.gnu.org/releases/avrdude/
3. cd avrdude-X.X.X
4. Сконфигурируйте:
./bootstrap
./configure
5. Компиляция:
make
make install Фото программатора USBaspПрограммы для работы с программатором

  • AVRDUDE — поддерживается USBasp начиная с версии 5.2
  • BASCOM-AVR — поддерживается USBasp начиная с версии 1.11.9.6
  • Khazama AVR Programmer — Windows XP/Vista GUI приложение для USBasp и avrdude
  • eXtreme Burner — AVR — программа Windows GUI для USBasp

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

Последнюю версию всегда можно взять на официальном сайте USBasp

Печатные платы

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

Обновление прошивки USBASP USBISP AVR Programmer

К слову, мне достался вариант ATMega8L, работающий в режиме разгона, на частоте 12МГц. По документации, должно быть не более 8МГц.

Не вдаваясь в подробности, решил обновить прошивку:
— взял прошивку usbasp.2011-05-28 с вышеуказанного сайта;
— замкнул на плате контакты J2;
— подключил 10pin разъем к другому программатору;
— залил прошивку;
— выставил fuse для atmega8: HFUSE=0xc9 LFUSE=0xef
Программатор определился в системе, но перестал видеть подключенные к нему контроллеры.

Процесс поиска решения проблемы описан здесь:
Форум

В итоге решение проблемы следующее:
— на всякий случай удалил два резистора R9 (270 Ом) и R10 (100 Ом), так как не совсем понимаю для чего необходимо подтягивать RXD и TXD сигналы к GND, да ещё при помощи резисторов столь малых номиналов;

— необходимо припаять перемычку с PC2(ADC2) на GND.

После вышеуказанных манипуляций программатор снова в строю.

Для счастливых обладателей вышеуказанного программатора — желаю учиться на чужих ошибках, для остальных — позволю себе напомнить главное правило, которое может помочь во многих житейских ситуациях: «работает — не трожь!» 🙂

Надеюсь кому-нибудь данная информация поможет.

P.S. Номиналы в схеме вышеуказанного программатора наиболее близки к указанным в следующей схеме:
USB программатор AVR — USBAsp

Комментарии ( 20 )

Тоже имеется такой же дома. Недавно пришли семпли от атмел, и там била аттини9 которая шйется только по протоколу TPI, который стал поддержывать последняя прошивка для данного программатора. Тепер и незнаю нужен ли апгрейд програматора + минимальный гемор.
P.S. Видел где то статейку как превратить такой программатор в STK500 и подцепить к студии.

Не тут, но статья вроде копи-пастчена. Картинки одинаковые.

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

для чего необходимо подтягивать RXD и TXD сигналы к GND

… а разве они подключены к земле? по моему они выведены на разъем и все

  • grand1987
  • 16 августа 2012, 01:41

В том-то и дело, что в данном варианте схемы программатора они не выведены на разъем, а через 270 и 100 Ом резисторы подключены на землю. Зачем это было необходимо, и для чего экономные китайцы потратили 2 драгоценных резистора впустую — остается только гадать.

— необходимо припаять перемычку с PC2(ADC2) на GND.

Это нужно только до смены фузов, когда мк ещё «тормозит» на 1МГц тактовой частоты. После того как переведёте программируемый мк на внешний кварц и уберёте предделитель, лучше вернуть «fast mode», отключив эту перемычку. У меня на большей скорости мк «надёжнее» прошиваются. В «slow mode» же ппри размере прошивки более 500 байт один из 10 раз прошивается удачно. Да и просто долго очень шьётся. Так что воткните джампер туда как в оригинальной схеме.

Дело в том, что я сразу после заливки прошивки перевел контроллер на работу от внешнего кварца, я же выше писал, что прошил LFUSE=0xef, т.е. CKSEL в режиме, цитирую с www.getchip.net:
CKSEL3…0 = 1111 – Внешний тактовый генератор – кварц частотой больше 8 МГц.

Вы не так поняли.

После того как переведёте программируемый мк на внешний кварц и уберёте предделитель, лучше вернуть «fast mode», отключив эту перемычку.

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

Пользуюсь таким же программатором и оболочкой khazama, не сказать, чтоб предел мечтаний, но работает всё стабильно. Но суть не в этом, сразу по получению программатора, залил в него прошивку «usbasp 2011-05-28», что позволило в широких приделах изменять скорость программирования из самой программы. Так что замедляющая перемычка не актуальна.

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

Вот спасибо мил человек! Валились у меня купленные до кучи когда-то 2 шт таких программаторов. Ни один не работал нормально. Был у меня еще AVRISP MK2, но сегодня трагически помер с красивым дымком. Тут то я и вспомнил про AVRASP китайские. Благодаря этой статье вернул им жизнь, теперь почти счастлив =)

  • prostosergik
  • 08 июля 2013, 22:11

Прправочка: AVRASP = USBASP

Вобщем, поигравшись с переделанным девайсом, обнаружилось, что медленные МК оно шьет только в медленном режиме, т.е. с перемычкой как у автора статьи, а быстрые контроллеры — только без перемычки. Тиню 13 с заводскими вьюзами (т.е. 1.2 мгц) в быстром режиме не видит, только в медленном. Но стоит только убрать предделитель на 8, сразу же перестает видеть в медленном режиме, зато замечательно шьет в быстром. Поэтому, обмозговав немного, переделал свои девайсы так:


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

  • prostosergik
  • 11 июля 2013, 02:31

Обновление поможет исправить ошибку: avrdude: warning: cannot set sck period. please check for usbasp firmware update.
?

Чтобы вернуть программатор в боевое состояние без припаивания перемычки достаточно прошить его прошивкой из этого архива

У меня похожий программатор — usbasp v2 после перепрошивки начал при попытке прошить mega32 выдавать:

avrdude.exe: error: programm enable: target doesn’t answer. 1
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

Если я все правильно разобрался, то проблема заключается в следующем:
Мега, которая работает на 1МHz, требует, что бы ее прошивали на любой скорости ниже 1/4 от своей (то есть 250 kHz и ниже). Но Usbasp в «нормальном» режиме шьет с частотой 375 kHz, что есть много. Однако, для этого есть джампер JP3, про который в документации прямо и сказано

If the target clock is lower than 1.5 MHz, you need to set this jumper. Then SCK is scaled down from 375 kHz to about 8
kHz.

Если посмотреть устройство программатора, то видно, что этот джампер просто соединяет PC2 и GND.
Китайцы — злодеи. Не знаю, что соединяет этот джампер, но только не PC2 и GND.

Наклевываются 2 решения: 1 — подсоединить таки PC2 на GND, что сделано в посте. 2 — немного поменять прошивку.
В коде я поменял буквально 2 строчки — действия при if и else. Прошил — ура, работает. Теперь по умолчанию медленный режим. Побочный эффект — походу мы теряем режим 375 kHz. Прошивать main.hex
———————————————————
Пока разбирался успел написать китайцам, которые сделали этот программатор. Решение они не прислали, но в ответе была фраза

The board of us is 9F( low-value) D9(high-value) FF(Extension Digit) FF (Security Bit).

Биты отличаются от того, что рекомендуется ставить при прошивании контроллера (H — c9, L — ef). Я только начал разбираться с контроллерами, поэтому не могу нормально проанализировать fuse биты. Но что мне не понравилось — CKSEL все на единицы и SPIEN включен. А с этого же сайта прочитано, что так делать — плохо. Потому рисковать не стал.
Кто лучше разбирается — гляньте, может это и есть решение. (На этом USBasp стоит mega8a)

Хм… Ну, или со стандартной прошивкой использовать опцию -B в avrdude. Например, для контроллера с 1MHz -B 3.

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

Поэтому выложил исправную прошивку отдельно http://rgho.st/7DJZb7GSC
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Прямой эфир

  • Комментарии
  • Публикации
  • sunjob → Кросс-платформенный терминал — SerIO 3.x 24 → Софт для электронщика
  • Gornist → PIP регулятор 2 → Алгоритмы и программные решения
  • whoim → CC1101, Трактат о трассировке 89 → Блог им. khomin
  • OlegG → Часы на Bluetooth LE модуле 8 → Cypress PSoC
  • Technicum505SU → Нюансы ШИМ управления микроконтроллером двигателем постоянного тока 3 → Теория, измерения и расчеты
  • sunjob → DDS синтезатор AD9833 88 → Блог им. grand1987
  • DIHALT → W801, ЖК-экранчик и ложечка дегтя 2 → Деталька
  • nictrace → Новая Ардуино-совместимая плата. 20 → ПЛИС
  • sunjob → Подключение компилятора ARM GCC к CLion 1 → Софт для электронщика
  • Vga → CRC32: на STM32 как на компе или на компе как на STM32. 58 → STM32
  • dmitrij999 → Захват изображения с USB камеры при помощи STM32 6 → STM32
  • Gilaks → Расширение возможностей простого МК вплоть до АЦП на 2 или 1 выводе. 8 → Теория, измерения и расчеты
  • sva_omsk → Lithium ECAD — российская САПР печатных плат 40 → Софт для электронщика
  • x893 → W801 — бюджетный контроллер с Wi-Fi 4 → Деталька
  • podkassetnik → Изменение штатной подсветки щитка приборов логаноподобных автомобилей 5 → Автоэлектроника
  • Vga → ROPS (Rem Object Pascal Script) — встраиваемый интерпретатор языка Pascal. Плагин PSImport_Classes 3 → Алгоритмы и программные решения
  • alexeys3 → Сделал программатор — WILLEM 8 → Блог им. alexeys3
  • anakost → Моддинг UEFI BIOS, инкапсуляция SLIC таблицы. 11 → Модернизация и ремонт
  • zelya → STM8 и LCD на основе HD44780 44 → Блог им. DareDen
  • Melted_Metal → Регулятор громкости усилителей SWAT 8 → Аудиотехника

Блоги

[x]

  • 38.98 AVR
  • 37.92 STM8
  • 29.53 Мусоровоз
  • 28.46 STM32
  • 24.63 Деталька
  • 24.04 Связь железа с компьютером.
  • 18.15 Схемотехника
  • 17.75 Умный дом
  • 17.13 MSP430
  • 14.79 LPC1xxx

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

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