Несколько слов о популярном USBASP программаторе AVR микроконтроллеров


Ремонт прибора из прошлой записи был бы невозможен без программатора AVR микроконтроллеров. В целом, не играет особой роли какой именно модели будет программатор, но так вышло, что благодаря низкой цене, сейчас на руках у населения кроме огромной массы самодельных программаторов Громова/AVR910/AVRISP/AVRISP mk2/STK500/и т.д., чаще всего встречаются программаторы условно заводского изготовления модели USBASP.

Я не исключение, и помимо самодельного USBASP, как видно по фото, в моем распоряжении есть одна из первых версий данного программатора.



Честно скажу, что сам давно не вникал в детали развития проекта данного программатора.
За время использования как минимум по разу обновлял прошивку на самодельном и на заводском, но прошивку всегда брал на странице сайта автора проекта Thomas Fischl:

www.fischl.de/usbasp/

Недавно же узнал, что у проекта есть несколько веток развития, о которых хочу кратко написать.

Начну с того, что развитие официальной прошивки остановилась 2011-05-28 на версии 1.4.

Далее эстафету подхватили энтузиасты.

1) Основная, и до настоящего момента живая ветка развития, находится здесь:


github.com/dioannidis/usbasp/releases

Автор Dioannidis добавил «0» в нумерацию и дошел до версии 1.11, ниже приведу список изменений:

v1.11
Differentiate multiple USBasp programmers using Serial Number
Add support for AT89S51/2 ICs

v1.10
Enable long transfers
Refactor to use MS OS 2.0 Descriptors
A lot of fixes to USBaspHIDUART utility

v1.09
From version 1.09 a ( reliable at 9600 Baud, with 120ms — 160ms intervals for higher speeds see note at UART HID protocol ) UART HID implementation is added for debugging purposes. USBasp will appear as a composite device with a WINUSB interface and a HID interface.

v1.08
From version 1.08 the firmware is WCID compliant, meaning it should work on Windows without any driver or .inf install.

v1.07
From version 1.07 a default SCK clock of 1.5Mhz and automatic SCK slowing if target does not respond. PORTD is left as input, so this firmware also works with USBISP modules. ( nerdralph )

v1.06
Firmware version 1.06 (2020-09-14) features a default SCK clock of 1.5Mhz and automatic SCK slowing if target does not respond. PORTD is left as input, so this firmware also works with USBISP modules.

Dioannidis ссылается на то, что его работа является ответвлением от работ Ralph Doncaster и Bill Perry.

Ralph Doncaster:
github.com/nerdralph/usbasp/releases

Данный автор изменил нумерацию, добавил «0», и дошел в развитии до версии 1.08:

v1.08 Latest
Added WINUSB support.

v1.07
possible fix for issue («USBasp incredibly slow?»)
minor Makefile cleanup

v1.06
Includes automatic SCK slowing

Bill Perry:
github.com/bperrybap/usbasp
Автор ничего нового не публиковал, сохранил исходники версии 1.4

Немного смущает отсутствие цифры «5» в нумерации вышеупомянутых авторов, и наводит на мысль, что возможно они использовали в качестве основы ещё чью-либо работу, например Ser9ei.

2) Работа Ser9ei — это вторая из найденных мной веток развития, но она 2 года не обновлялась:

github.com/Ser9ei/usbasp/

Автор продолжил оригинальную нумерацию и дошел до версии 1.5.1:

v1.5.1
— one firmware for the usbasp and the usbisp clone now
— auto-speed (downshift speed) support feature in case error with connection to the target
— firmware size was reduced with help optimization parameter of build

v1.5
— usb-v updated to the last release 2012-12-06
— added support usbisp programmer in firmware (New USBISP_AS_USBASP parameter in the Makefile for firmware build. To build firmware for the usbasp programmer, the USBISP_AS_USBASP should be equal to 0, and to build firmware for the usbisp programmer — USBISP_AS_USBASP = 1)

В общем, обновил оба своих программатора до версии прошивки 1.11 от Dioannidis, полет нормальный.

Прошивка подходит для программаторов, собранных по оригинальной классической схеме:



Fuse bit согласно инструкции:

# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff



Для удобства использования, можно пользоваться почти автоматической установкой драйвера:
zadig.akeo.ie



Из нового и полезного — работа на частоте 1,5МГц с автоматическим снижением частоты в случае отсутствия ответа от программируемого устройства, и расширение списка поддерживаемых микроконтроллеров.


На счет расширения перечня поддерживаемых микроконтроллеров, заявлен только AT89S51/2, но со свежей версией программы для прошивки AVRDUDESS 2.14:

github.com/ZakKemble/AVRDUDESS/releases

Можно прошивать не только AVR микроконтроллеры, но и китайские LGT8F328P, LGT8F168P и LGT8F88P, которые установлены на некоторых транзистор тестерах как альтернатива или клон ATMega328


Это интересный и приятный бонус, так как для прошивки данных контроллеров необходим был свой программатор LGTSWDICE или Arduino Uno/Nano со специально загруженным скетчем.

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

Спасибо за внимание!
Планирую купить +36 Добавить в избранное +81 +110
+
avatar
+4
Спасибо! Не знал, что есть ответвленнные проекты, считал проект давно умершим.
+
avatar
0
Есть прошивки в которых на какую-нибудь ногу выведен сигнал для тактирования МК?
А то попались тини167 в которых фузы были выставлены на внешнее тактирование и, что бы исправить пришлось нанку программировать в scratchmonkey.
+
avatar
  • ghostpvv
  • 05 августа 2023, 18:19
+1
Пока не встречал. Интересно, вроде относительно востребованная функция, но не реализовано.
+
avatar
+1
а что мешает подключить внешний источник сигнала и выставить режим «низкоскоростного» программирования, чтобы МК гарантированно успевал.

делается из пары деталей, которые всегда есть в закромах. требуется 74xx00, пара конденсаторов и пара резисторов (один можно взять переменный). можно при нужде даже на макетке понавтыкать, даже паять не обязательно.

тем более если это нужно раз в пятилетку.
+
avatar
+8
Спасибо за материал, буду изучать! Сам давно пользуюсь asp'ом, только я его доработал, поставил на выход буфер 74HC125, а его «енэйблы» повесил на красный светодиод. Даже ничего не пришлось менять в коде. Заработало прямо так. Смысл этой доработки в том, что висящий на ногах таргета программатор мешал другой периферии висящий на этих же ногах, а с доработкой он прошил и «отвалил», схема перезагрузилась и никто никому не мешает. А было так, что даже зависал сам программатор и его приходилось перетыкать. Стало очень удобно. Заодно вывел питание от USB на таргет через органичитель-защелку настроенную на 0.45А. Теперь можно низкопотребляющие проекты прямо на нем «отлаживать».
Мой asp
+
avatar
+2
Вообще логичным было бы программно переводить выводы микроконтроллера-программатора в третье состояние во время неактивности. Тут ещё надо учитывать вводы периферии, если она пересекается с сигналами для программирования, не должно возникать ситуации подключения выход программатора к выходу этой самой.периферии.
+
avatar
  • ewavr
  • 05 августа 2023, 18:49
0
Я так понял из списка поддерживаемых контроллеров, что он может в UPDI (низковольтный).
+
avatar
  • ghostpvv
  • 05 августа 2023, 19:00
0
Судя по списку, да, но по факту напряжения питания прошиваемого контроллера задаются перемычкой, и могут быть 3,3 или 5В.
Учитывая немного конские цены на низковольтные микроконтроллеры, я бы их шил чем-то не ниже tl866ii plus
+
avatar
  • Sintetik
  • 05 августа 2023, 19:13
+1
Если «пошерстить» тему про другой программатор на 4pda(тема называется «CH341A Programmer»), то в этой теме можно найти прошивки для USBasp таких версий. Эти версии адаптированы для работы с приложением Neoprogrammer. Ссылку не даю только по одному поводу, без регистрации файлы не скачиваются.

+
avatar
  • ghostpvv
  • 05 августа 2023, 20:09
+3
Спасибо, скачал, посмотрю из любопытства. Одно время еще на изиэлектроникс следил как USBASP пытались заставить прошивать SPI флешки, но не особо интересно было при наличии специализированного программатора.

Здесь же, судя по описанию, USBASP пытаются заставить работать как CH341.
Но нужен немного другой драйвер в системе и не ясно, сохранится ли совместимость со старым софтом для USBASP.

4pda.to/forum/index.php?showtopic=884713&st=3760#entry96411343
+
avatar
  • Miha52
  • 06 августа 2023, 21:25
0
Давно перешил USBASP. Совместимость с AVRDUDESS и аналогичными программами сохранилась. Перешитым пользовался также и с Аrduino IDE. Только я познакомился с перепрошивкой USBASP здесь forum.easyelectronics.ru/viewtopic.php?f=17&t=10947&sid=b4d36be8c981c126a70fa762724ef744&start=2425
+
avatar
0
Простите что не по теме, есть смысл переплачивать за PIC KIT 3, или хватит втрой версии? Интересует внутрисхемная отладка, камень будет 18-й серии. Давно с PIC дела не имел, лет 15.
+
avatar
  • ghostpvv
  • 05 августа 2023, 19:41
+1
С pic практически не знаком. Пару раз прошил контроллеры для тестера мирон63 готовой прошивкой при помощи tl866 и все.
+
avatar
  • r0c
  • 06 августа 2023, 16:17
0
Это как диван и кровать
+
avatar
0
Спасибо, очень информативно.
+
avatar
  • penzet
  • 06 августа 2023, 16:53
+1
Я со своей колокольни пару слов вставлю. Ваш вопрос нужно рассматривать шире. Например будете работать с отладчиком только в виндовс или и в других операционках? Нужна ли инструкция и описание на русском.Если на эти два вопроса ответ положительный то я бы советовал PIC Kit 2
+
avatar
  • dungeon
  • 08 августа 2023, 08:09
0
PIC KIT 3 уже устаревший, недавно уже 5-й вышел. К тому же есть «обрезаний» вариант называется Snap. Как вариант еще можно самодельный pic kit2 использовать, он тоже поддерживает 18 серию.
+
avatar
-2
Зачем он, сейчас в 2023 году, нужен, когда avrdude с версии 6.3 умеет шить через обычный usb-com адаптер?

Подробности тут — elchupanibrei.livejournal.com/37828.html

Пы.сы. за форки оригинального USBASP проекта спасибо. Не знал про них.
+
avatar
  • ghostpvv
  • 05 августа 2023, 19:46
+2
С одной стороны согласен, а с другой — ну не выбрасывать же его, если он есть, пользоваться и хранить очень удобно, он весьма компактный.

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

Бывает вижу по объявлениям, что дешевле usbasp или arduino nano купить, чем atmega8 или 328.
+
avatar
-2
Да чего уж там, дешевле и лучше купить stm32 — elchupanibrei.livejournal.com/30157.html
+
avatar
  • kpbicka
  • 07 августа 2023, 15:03
+2
звучит как «ком порт» но всё неверно
и не ЧЕРЕЗ ЛЮБОЙ, а только через FT232, которая голая микросхема дороже чем собранный usbasp, к тому же, bitbang еще настроить надо. пользуюсь и тем и другим, бывают всякие ситуации подходящие или для одного или для второго программатора
+
avatar
  • alex323
  • 05 августа 2023, 20:17
+1
Есть альтернативный софт AsProgrammer, требующий перепрошивки USBASP. После перепрошивки работа с оригинальным софтом сохраняется. Позволяет работать с SPI, I2C, MW. Под каждый вид EEPROM нужен свой адаптер. Я со всем этим побаловался, да и забросил в дальний ящик. Купил CH341. Софта море.
А для серьёзной работы у меня оригинальный UPA-USB есть.
+
avatar
  • ghostpvv
  • 05 августа 2023, 20:25
0
Да, под флешки у меня тоже есть tl866ii plus, так что эта сторона жизни usbasp меня обошла стороной.

А вот программатор UPA USB мне на глаза не попадался. Много разного видел, но именно UPA USB не встречал, видимо чисто автомобильная тематика, а мне ближе компьютерно-телевизионная.

Вот обзоры специализированных программаторов, типа UPA USB, RT809 и др. не помешали бы, информации о них не много даже на ютуб.
+
avatar
  • alex323
  • 05 августа 2023, 22:12
0
А вот программатор UPA USB мне на глаза не попадался. Много разного видел, но именно UPA USB не встречал, видимо чисто автомобильная тематика, а мне ближе компьютерно-телевизионная.
Вот ссылка, если интересно. Автор Пенко из Болгарии. Смотрю, сейчас программатор недоступен для заказа из России. Для компьютерно-телевизионной темы тоже подойдёт. Охват устройств большой, но только с последовательными интерфейсами. На Али есть ломаный UPA-USB предыдущей версии 1.3. После взлома Пенко прекратил его поддержку, поэтому последнее обновление было почти десять лет назад.
Tl866 у меня тоже есть, только первых версий. Почти не пользовался. Один только кривой софт чего стоит, да и параллельные устройства у меня редкость.
+
avatar
  • penzet
  • 06 августа 2023, 06:39
-2
недоступен для заказа из России
И нафиг не нужен. Есть www.chipstar.ru/programmator-universal-chipstar-janus.html/contents_of_delivery импортозамещение рулит.
+
avatar
  • alex323
  • 06 августа 2023, 15:24
0
Конечно не нужен, если их нет в наличии :)
Я же никого не уговариваю. Если вам хватает чипстара, значит вам повезло. Денег сэкономили.
+
avatar
  • penzet
  • 06 августа 2023, 16:40
-2
Денег сэкономили.
Нет потратил…
+
avatar
  • alex323
  • 05 августа 2023, 22:11
0
Удалил
+
avatar
  • oleg235
  • 06 августа 2023, 00:10
0
А вот чем можно контроллер Novatek прошить?
+
avatar
  • CuMr
  • 06 августа 2023, 00:56
-1
программатором для контроллеров Novatek
+
avatar
  • ghostpvv
  • 06 августа 2023, 09:28
0
Такие контроллеры пока встречал только в мониторах, читал и писал их RT809H по VGA кабелю.

Больше вариантов не знаю.
+
avatar
  • oleg235
  • 06 августа 2023, 14:43
0
RT809H
Не, ну так каждый может.
+
avatar
  • Cremator
  • 06 августа 2023, 01:13
0
Жаль, что в AVRDUDESS нет редактора считанных данных, по типу минипро.
+
avatar
+4
Так куча же бесплатных hex редакторов. Скачал AVRDUDESS, открыл в стороннем, сохранил и прошил обратно AVRDUDESS.
+
avatar
  • Cremator
  • 06 августа 2023, 11:54
-5
+
avatar
  • penzet
  • 06 августа 2023, 14:50
-3
Имхо- если сделают цена на программатор поднимется и его не купят
+
avatar
  • alex323
  • 06 августа 2023, 17:13
0
AVRDUDESS — это бесплатная графическая оболочка над DOS софтом USBASP. Её автор к USBASP отношения не имеет, поэтому цены на него никак не изменятся.
+
avatar
  • iamjdoe
  • 07 августа 2023, 23:03
+1
Только не DOS, а просто консольный (без GUI).
+
avatar
+5
Спасибо, но не надо навязывать свои костыли, ходите с ними сами.
Ок. Согласен, все в одном удобнее. Но не забывай все описанное в статье бесплатное и открытое. Кто мешает добавить нужный вам функционал самому. Исходники на avrdude и arvdudless в свободном доступе. Берите и делайте.
+
avatar
+1
Берите и делайте.
Вот когда до такого доходит, то выясняется что не очень то и надо.
+
avatar
  • Cremator
  • 07 августа 2023, 01:32
-3
Выясняется, что не все это могут, а менее нужным оно не становится, представляешь? Хотя, куда тебе…
+
avatar
0
Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколько-нибудь развязности, какая у Балтазара Балтазарыча, да, пожалуй, прибавить к этому ещё дородности Ивана Павловича
+
avatar
  • Cremator
  • 07 августа 2023, 01:38
-3
Если бы мог — сделал бы, разве не логично? И не надо вести себя так надмерно в каждом своем сообщение (я в целом о твоих камментах, типа старье выкиньте, бери делай и т.п. в целом на муське). Я не кидал претензий, ни тебе, ни к софту (лишь упомянул, что нехватает данной опции), чтобы ты дерзил мне в ответе.
+
avatar
+2
дерзить вам? да кому вы нужны :)
+
avatar
  • Cremator
  • 07 августа 2023, 08:42
-2
как и ты, со своими «советами»
+
avatar
+3
Колличество плюсов на мои реплики вам, как бы намекают, что вам пора остановиться и подумать
+
avatar
0
Шел 23 год. Люди до сих пор продолжают пользоваться атмегами.