Китайский Hid-Программатор Usbisp (Usbasp) Для Linux. Предварительная Прошивка

Программирование микроконтроллеров и робототехника — очень перспективные направления деятельности.

Это уже обсуждается на государственном уровне.

А начинается все с того, что новички собирают свой первый программатор или заказывают его в интернет-магазине.

Самыми доступными являются китайские поделки.

Они не всегда готовы сразу порадовать своих новых владельцев.

Однако обычно после модификации и/или перепрошивки они вполне работоспособны.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Ситуация осложняется тем, что существует множество похожих моделей и разных версий печатных плат китайской разработки.

Мне пришли программаторы с печатной платой, несовместимой с доступной в сети прошивкой.

Банально, что назначение выводов микроконтроллера на плате и в программе не совпадает. Далее я опишу процесс лечения небольшой партии этих программистов и некоторые хитрости для новичков.

Надеюсь, эта статья будет кому-то полезна, так как информации именно по этой версии программаторов в интернете видимо нет. Для тех, кто хочет быстрого решения, в конце статьи есть ссылка на архив с модифицированной мной прошивкой USBASP от Thomas Fischl и список изменений в формате git diff.



Покупка

Я решил пойти на занятия по робототехнике в нашем Центр детского компьютерного творчества приобрести комплект программатора и микроконтроллера.

Выбор пал на Алиэкспресс.

Дешево и сердито.

Я заказал пачку Attiny13A, пару планшетов к ним, несколько Atmega32 на обучающих платах, макетные платы и, конечно, с десяток программаторов USBASP. Раньше я заказывал пару подобных программаторов - один из них даже работал.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Как оказалось, поставленные программаторы оказались неработоспособными в Ubuntu Linux. Один из них соответствовал рекламной картинке, остальные 9 были немного длиннее и не были упакованы в антистатические пакеты.

При этом все 10 имели на корпусе надпись USBISP и гордо идентифицировались как HID-устройства.

Описание программатора USBASP USBISP с Алиэкспресса (кстати, о Linux ни слова): Программатор серии USBASP USBISP AVR/51. Загрузить алюминиевый корпус без ограничения 64K. Поддержка WIN7 64. Описание: Идеально поддерживает WIN7 1, поддержка связи USB1.1 или USB2.0. 2, поддержка операционной системы WIN98, WINME, WIN2K, WINXP. 3. Источник питания USB-портов, выходная мощность источника питания составляет 500 мА, поскольку восстановление, которое может эффективно предотвратить короткое замыкание из-за внешнего воздействия USB, целевая плата может питать USB вместе.

4. Загрузка не завершена, что влияет на работу целевой платы.

5, поддержка записи чипов S51 и AVR, скорость быстрее, чем у параллельного ISP, более стабильная; Не существует параллельного ноутбука, используйте лучший выбор.

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

7, используя стандартный интерфейс IDC10 Хитрые китайцы, желая облегчить жизнь пользователям дефолтной ОС, написали прошивку, не требующую драйверов.

Один минус - с этими программаторами может работать только одна китайская программа с интерфейсом на китайском языке и только в одной ОС.

Меня этот вариант категорически не устроил.



Поиск решения

Поиск в сети привел меня на страницу Взлом AVR-программатора .

Там все замечательно и понятно описано.

Я обрадовался и начал разбирать программаторы.

Это оказалось легко.

Меня поразили оригинальные конструктивные решения в виде изолятора из двустороннего скотча.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Я был рад рано.

На указанной странице описан процесс прошивки для другой версии программатора (v3.0), которая была зашита по-другому.

У меня на руках была неопознанная версия программатора.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Результатом изучения платы стала картинка ниже.

Всё что можно было распаяно иначе, чем в уже знакомой третьей версии с синей платой.

Это не помешало нам модифицировать прошивку, в которой нам пришлось изменить номера пинов и их инициализацию (см.

статью Взлом AVR-программатора ) и алгоритм управления светодиодами.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

В оригинальной прошивке usbasp за USB и светодиоды отвечают контакты 12,13 и 23,24. На плате были разведены пины 1.32 и 9.10. В данном случае светодиоды оказались подключены встречно, что впоследствии было учтено в программе.

Никаких перемычек для программирования здесь не было.

Поэтому пришлось немного переделать кабель, выпустив на волю проводку «Reset».

Этот провод я временно припаял к входу «Сброс», чтобы запрограммировать жертву.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Наглядная картинка, которая помогла мне сравнить ножки контроллера (ATmega8):

Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Хорошо, что рабочий программатор уже имелся.

Просто версия v3.0, но с рабочей прошивкой.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка



Мигает

Первые два программатора прошились успешно.

Третий протестовал.

Оказалось, что не припаяна именно 29-я ножка «Ресета».



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Устранив этот косяк, я продолжил работу.



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

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



Китайский HID-программатор USBISP (USBASP) для Linux. Предварительная прошивка

Программатор-жертва подключается к USB-хабу (синий) только для того, чтобы он стоял более устойчиво - хаб никуда не подключается.

Иногда я получал сообщения от avrdude о том, что контроллер не отвечает. Помогло снижение напряжения трехметровым USB-удлинителем и снижение скорости программирования (ключ -B в строке «avrdude -c usbasp -p m8 -B 50»).



Самое главное для перекуса

Архив с оригинальной прошивкой: www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz Посмотрите в Readme.txt раздел «СБОРКА И УСТАНОВКА ИЗ ИСХОДНОГО КОДА» Извлеките из архива папку /usbasp.2011-05-28/firmware/ Модифицируем прошивку по вкусу.

В консоли перейдите в папку прошивки и запустите make, чтобы получить справку по доступным командам.

Компилируем прошивку и заливаем ее в программатор (через другой рабочий программатор).

Git diff для этого проекта (мои изменения)

   

diff --git a/main.c b/main.c index a225432.64755ca 100755 --- a/main.c +++ b/main.c @@ -306,11 +306,16 @@ int main(void) {

Теги: #Сделай сам или Сделай сам #программист #avr #прошивка #прошивка #atmega8 #usbasp #usbisp
Вместе с данным постом часто просматривают: