Перепрошивка китайского USBAsp программатора — Lifeview… — LiveJournal
Для программирования AVR микроконтроллеров удобно использовать USBAsp программатор. Китайская версия стоит до 2$, но родная прошивка не USBAsp — её надо менять. Родная программа ProgISP1.72.После прошивки программатор будет определяться как usbasp и поддерживаться avrdude.
Проверено на MX-USBISP-V4.00 и MX-USBISP-V5.00.
Для прошивки требуется плата arduino (as isp программатор) или другой программатор.
Прошивка при помощи уже вылеченного китайского программатора:
1. Скачиваем НЕ оригинальную прошивку USBASP, т.к. китайцы поменяли пины в своих программаторах тут. Версия для atmega88v (/bin/firmware/usbasp.atmega88-modify.he
2. Устанавливаем драйвер для вылеченного USBAsp (libusbK)
3. Скачиваем avrdude утилиту
4. Разбираем оригинальный USBAsp, который хотим перепрошить. Замыкаем два контакта (проводом навесу или пайкой).
5. Соединяем родным шлейфом вылеченный и оригинальный USBAsp. Отличие вылеченного — у него горит синий светодиод. У оригинального — красный.
Подключаем вылеченный программатор к ПК и выполняем:
avrdude -c usbasp -P usb -p m88 -B 1 -U flash:w:usbasp.atmega88-modify.hex
Если фьюзы не HFUSE=0xdd LFUSE=0xff, то изменяем и их:
avrdude -c usbasp -P usb -p m88 -B 1 -U lfuse:w:0xff:m -U hfuse:w:0xdd:m
6. Отсоединяем перемычку оригинального USBAsp — светодиод должен загореться синим. Поздравляю!
7. Подключение в USB теперь покажет libusbK устройство.
Прошивка при помощи ардуино:
1. Прошиваем плату Ардуино как программатор ISP
2. Разбираем оригинальный USBAsp, который хотим перепрошить. Замыкаем два контакта (проводом навесу или пайкой).
3. Подключаем ардуино к оригинальному USBAsp по SPI + питание. Ардуино подключаем к ПК.
4. avrdude -p m88 -P COM1 -c avrisp -b 19200 -B 1 -U flash:w:usbasp.atmega88-modify.hex
COM1 — замените на свой порт
-B 1 возможно можно убрать.
Источник:
drive.ru
Фото: github @aleh
прошивки
ПЕРЕПРОШИВКА USBISP В USBASP
Примерно года два назад я заинтересовался программированием микроконтроллеров AVR. Изучение шло не слишком быстро, так как тема достаточно сложная, но все-таки, мной были собраны и доведены до ума несколько устройств в корпусах, с применением микроконтроллеров семейства Tiny. За это время успел обзавестись двумя программаторами, один собрал сам, это простой и всем известный программатор Громова, второй заказал с Али экспресс, по цене 3 доллара это программатор USBISP.
Для того чтобы найти и заказать его на Али-экспресс, достаточно набрать в строчке поиска USBASP USBISP. Этот программатор шел сразу в алюминиевом корпусе, аналогичном корпусе флешки, в комплекте с ним был шлейф для программирования 10 Pin. Про перепрошивку его в полноценный USBASP мы и поговорим в этой статье. Для чего это делать и в чем отличия этих программаторов, USBASP и USBISP ? Дело в том, что Китайский программатор работает только со своей оболочкой, Prog ISP, и не поддерживается, в отличие от USBASP программой AVR Studio. Несмотря на то, что Prog ISP оболочка, идет на английском языке, пользоваться ей менее удобно, чем оболочкой для USBASP Khazama.
Для USBASP существуют и другие графические оболочки, помимо Khazama работающие с консольным AVR DUDE. От себя скажу, что разница в удобстве пользования после перепрошивки сильно заметна. Например, в той же Prog ISP неудобное выставление фьюзов, с этим у Khazama полный порядок. Можно выбирать запись конфигурации фьюзов для МК по умолчанию одним кликом есть возможность выставления фьюзов, как галочками, так и из выпадающего списка.
Также присутствует функция Auto programm, в которой можно установить порядок действий, запускаемых впоследствии в один клик. Например, стирание файла, последующая запись и верификация. Есть и другие функции на выбор.
Перейдем к делу, что же нам требуется сделать для того, чтобы перепрошить программатор? Программаторы могут идти в двух вариантах, в алюминиевом корпусе, и без корпуса. Если со вторым вариантом все понятно, то с первым, если программатор в корпусе, нужно аккуратно стянуть его в сторону разъема USB на программаторе. Снимается он довольно легко, и с этим проблем быть не должно. На контакты разъема программирования с обратной стороны будет наклеена резиновая изоляционная прокладка, отклеиваем её, она нам будет мешать при пайке. При сборке в корпус не забываем приклеить её обратно, во избежание замыкания корпуса с разъемом для программирования. Далее переворачиваем и смотрим на программатор с обратной стороны. Вы должны увидеть в зависимости от разводки вашей платы следующее:
Но возможно существуют и другие варианты разводки программаторов у китайцев. Что нам требуется здесь сделать? Требуется удалить припой с двух или трех контактов на плате программатора, в зависимости от разводки вашей платы. По информации с того сайта по которой я перепрошивал свой программатор, была представлена следующая разводка:
Здесь, как мы видим на рисунке, требуется удалить припой с трех контактов, а также поставить (запаять) проволочную перемычку, чтобы перевести программатор в режим самопрограммирования.
Я воспользовался вместо кусочка провода, выводом, откушенным от резистора. И разумеется, также удалил припой с контактов на программаторе, обозначенных буквами А и В. Только в моем случае таких контактов было два.
Как мы видим на фото выше, перемычка из вывода резистора уже запаяна мной к контактам самопрограммирования программатора UP. На фото ниже можно убедиться в этом. Заодно мы можем видеть, что на контактах А и В отсутствует припой.
Припой удаляется с помощью демонтажной оплетки. Мы вытягиваем кусочек оплетки, обмакиваем его в спирто канифольный флюс, и, прогревая жалом паяльника, кладем на контакт, придавливая сверху паяльником. В результате припой с контактов должен полностью перейти на оплетку так, чтобы между ними не было замыкания. В чем и нужно убедиться, прозвонив мультиметром в режиме звуковой прозвонки. Для использования совместно с программаторами USBISP и USBASP мной был сделан переходник, который оказался удобен для программирования микроконтроллеров при отлаживании на цанговых макетных платах, и который я использовал для программирования микроконтроллера этого программатора:
К чему я писал в начале статьи о программаторе Громова? К тому, что для прошивки нам потребуется любой другой программатор. Можно точно такой же USBISP. То есть, если у вас нет второго программатора, о перепрошивке USBISP в USBASP можно забыть. А можно спаять по такому случаю программатор Громова, и прошить им микроконтроллер этого программатора. Схема программатора Громова простая, и детали необходимые для сборки, довольно дешевые. Допустим, у вас есть второй программатор. Тогда нам нужно подключить свой программатор к шлейфу программатора USBISP в соответствии с рапиновкой разъема. Её мы можем видеть на следующем рисунке:
Контакты в шлейфе идут одинаково с обоих концов. Нам потребуются соединить программаторы между собой, аналогично обычному прошиванию микроконтроллера. То есть выводы VCC, GND, MISO, MOSI, RESET и SCK обоих программаторов нужно соединить. Дополнительное питание, если прошиваем через USB программатор, USBISP, USBASP или другой с которого приходит питание с USB на прошиваемый микроконтроллер, можно не подавать. Если прошиваем через программатор Громова, то питание нужно подать. После прошивания выпаиваем перемычку, замыкаем те два или три контакта, с которых мы удаляли припой капелькой припоя, и, не собирая в корпус, подключаем наш новоиспеченный программатор USBASP к USB порту компьютера. Операционная система должна запросить драйвера. Появится следующее окно:
Соглашаемся с установкой и указываем вручную путь к папке libusb_0.1.12.1, которую можно будет скачать в архиве в конце статьи. В ней находится драйвер для USBASP. После установки в системе появится устройство USBASP:
После того, как убедимся, что все заработало, программатор определился, приклеиваем изоляционную резинку назад на место, и собираем программатор. В одной из статей про оболочку Khazama, было написано, что иногда Khazama работает некорректно без установки дополнительной программы – фильтра libusb-win32-devel-filter-1.2.6.0. Так ли это или нет — не знаю, у меня эта программа была установлена. Скачать её также можно будет в архиве в конце статьи. Сначала Khazama действительно отказывалась работать с моим программатором. Погуглив по этому вопросу на различных форумах, нашел информацию, что нужно установить частоту в программе 187.5 килогерц, что и сделал. Проблема сразу пропала. Эта функция есть только в свежих версиях Khazama, в частности Khazama AVR Programmer 1.7. Скачать её также можно в архиве в конце статьи.
Как уже писал выше про установку фьюзов, здесь с этим все отлично, можно, как выбирать из ниспадающего списка, так и устанавливать вручную галочками.
Я прошивал Tiny-2313, но эта оболочка поддерживает, помимо этого микроконтроллера, еще множество других типов МК. После запуска программы нам нужно выбрать наш микроконтроллер из списка, у меня как мы видим на скрине, выбран Tiny2313. Также в ней есть функция размещать окно поверх остальных, это расположенная справа с краю пиктограмма канцелярской кнопки. Прошивка для микроконтроллера программатора MEGA-8, HEX файл, также прикреплена в общем архиве. Фьюзы при прошивке изменять не нужно. Желаю всем удачной прошивки! Автор AKV.
Originally posted 2019-03-26 01:45:40. Republished by Blog Post Promoter
Обновление прошивки программатора USBASP с помощью Arduino UNO
Обновление прошивки программатора USBASP с помощью Arduino UNO
2020-04-11 16:43:32 — Evgeniy Shumilov
Когда-то давно я приобрёл китайскую копию программатора USBASP. При попытке перепрошивки микроконтроллеров через ISP я, как и многие другие, получал ошибку следующего вида:
avrdude: warning: cannot set sck period, please check for usbasp firmware update
Инструкции, которые я обнаружил, были написаны с рассчётом на использование в Windows, а так же в некоторых статьях я заметил ошибки и несоответствия (например, неверно указан тип программатора для avrdude, из-за чего какое-то время пришлось побуксовать), так что решил написать для себя короткую статью, убрав всё лишнее.
Для начала нам нужен avrdude. Благо, в отличие от windows, нам не нужно искать, качать и ставить драйвера и всё прочее. Если уже установлена среда arduino, то avrdude можно найти по следующему относительному пути:
arduino-X.X.X/hardware/tools/avr/bin/avrdude
Где X.X.X — версия среды. Если же среды arduino на машине нет, то на debian-based системах установить avrdude можно из репозитория:
sudo apt-get install avrdude
В этом случае конфигурационный файл будет расположен тут: /etc/avrdude.conf, но среда нам понадобится, чтобы сменить прошивку на нашей текущей ардуине, с помощью которой будет прошиваться программатор.
Далее необходимо скачать самую «свежую» прошивку для USBASP:
wget https://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz
tar xvzf usbasp.2011-05-28.tar.gz
Да, самой свежей прошивке на текущий момент чуть менее девяти лет. Внутри архива нас интересует файл bin/firmware/usbasp.atmega8.2011-05-28.hex, его мы и будем прошивать.
Далее на плате программатора нужно замкнуть джампер JP1 (на фото установлен зелёный джампер), если его нет, нужно запаять или замкнуть пинцетом на время прошивки.
Затем соединяем проводами соответствующие пины Arduino и программатора:
Схему честно стырил из другой статьи. Теперь открываем среду Arduino, выставляем нужную плату (в нашем случае Arduino Genuino/UNO) и порт (в нашем случае /dev/ttyUSB0). Если вы не знаете, какой алиас получил интерфейс, среда сама должна подсказать. В любом случае, подсказку можно найти тут:
$ ls /sys/bus/usb-serial/devices/
ttyUSB0
Прошиваем скетч из примеров с названием ArduinoISP, на этом окно можно закрывать. В терминале переходим в директорию с avrdude внутри директории с ardunio и сперва проверим, что микроконтроллер нашего программатора виден через Arduino Uno по ISP:
$ ./avrdude -C ../etc/avrdude.conf -p atmega8 -c avrisp -b 19200 -P /dev/ttyUSB0 -v
avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "../etc/avrdude.conf"
User configuration file is "/home/corpse/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/ttyUSB0
Using Programmer : avrisp
Overriding Baud Rate : 19200
AVR Part : ATmega8
Chip Erase delay : 10000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff
flash 33 10 64 0 yes 8192 64 128 4500 4500 0xff 0x00
lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
efuse 0 0 0 0 no 0 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel AVR ISP
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
Vtarget : 0.0 V
Oscillator : Off
SCK period : 0.1 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: safemode: lfuse reads as EF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: Fuse reading not support by programmer.
Safemode disabled.
avrdude: safemode: lfuse reads as EF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: lfuse reads as EF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode
avrdude done. Thank you.
Если чип программатора отличается, проблема в соединении или имеются иные проблемы, мы увидим ворнинги следующего вида или им подобные:
avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x01
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10
В этом случае нужно перепроверить всё ещё раз, особенно подключение. Далее имеет смысл сохранить текущую прошивку в файл на всякий случай (вместо /path/to/backup укажите свой путь):
$ ./avrdude -C ../etc/avrdude.conf -p atmega8 -c avrisp -b 19200 -P /dev/ttyUSB0 -U flash:r:/path/to/backup/original_firmware.bin:r
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: reading flash memory:
Reading | ################################################## | 100% 5.74s
avrdude: writing output file "original_firmware.bin"
avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode
avrdude done. Thank you.
Прошиваем «свежую» прошивку девятилетней давности:
$ ./avrdude -C ../etc/avrdude.conf -p m8 -c avrisp -b 19200 -P /dev/ttyUSB0 -U flash:w:/path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex"
avrdude: input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):
Writing | ################################################## | 100% 6.78s
avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex:
avrdude: load data flash data from input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex:
avrdude: input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: input file /path/to/firmwares/usbasp/usbasp.2011-05-28/bin/firmware/usbasp.atmega8.2011-05-28.hex contains 4700 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 3.31s
avrdude: verifying ...
avrdude: 4700 bytes of flash verified
avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and exited programming mode
avrdude done. Thank you.
Собственно, вот и всё.
Теги: avr
Прошивка Arduino через USBasp — Инструкция со скриншотами
Прошить Arduino с помощью USBasp не сложно, но нужно понимать, для чего необходима данная процедура и как ее произвести в домашних условиях. Разберем по порядку все аспекты, связанные с этим простым программатором.Пройдемся немного по терминологии. Прошивка контроллера – это своего рода запись программного кода в память устройства. Применяется в тех случаях, когда была произведена замена микрочипа либо отдельные его компоненты начали окисляться (попросту вышли из строя).
В глобальной сети Интернет можно отыскать много статей по этой тематике, но некоторые из них запутанны и не совсем понятны. Мы решили обобщить всю информацию и собрали для вас подробный мануал. Итак, приступим.
Прошивка Ардуино через USBasp
Для работы нам понадобятся два устройства: плата расширения Arduino Uno (Nano, Mega) и сам ASP-программатор. Подключаем платформу к компьютеру, запускаем среду IDE. Выбираем сначала в разделе «Инструменты» название платформы (например, Уно), тип программатора, а потом загружаем стандартный скетч ArduinoISP:
Переходим в меню «Скетч» — команда «Загрузить через программатор». Проверили – индикатор мигает зеленым, значит, функционирует. Пока можно отключить, ведь теперь у нас другая задача – задействовать и провести программирование по ISP-технологии. Следуйте подсказкам скриншота:
Обратите внимание на соответствие сигналов подключения:
Для дальнейшей прошивки USBasp следует инсталлировать джампер JP2:
- Скачиваем последнюю версию ПО: https://www.fischl.de/usbasp/
- В архиве ищем файлы согласно типу своего микроконтроллера. Распаковываем, открываем.
- Запускаем Проводник Windows, переходим в каталог Arduino_dir\hardware\tools\avr\bin\, где Arduino_dir — это путь к IDE Arduino. Сюда переносим файл, о котором писали выше. Тут же вводим команду cmd, кликаем Enter.
- В командную строку следует внести: avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex, где первая часть – путь к файлу (например, на диске С), p m8 – тип чипа, com – номер порта и U flash – ваше действие.
- Снова подключаем Ардуино к ПК, щелкаем Enter в интерпретаторе командной строки. Отображается процесс заливки данных, должно появиться системное сообщение: avrdude done.
С программированием всегда непросто работать, но надеемся наши подсказки и скриншоты вам помогли справиться с поставленной целью. На этом пока все! До новых встреч!
Программатор USBasp. | IT миниблог
Для прошивки своих поделок на AVR я использую программатор USBasp, купленный сто лет назад за 100р на AliExpress. Пользоваться очень удобно, никаких тебе древних COM или LTP портов, современный USB!
Вот так выглядит это чудо китайской промышленности!
Ну а теперь по подробнее)
Железо.
Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Работает этот программатор через ISP.
Распиновка контактов на самом программаторе
Поэтому я всегда стараюсь выводить этот разъем если сам развожу плату. Очень удобно, прошивать и отлаживать можно на ходу. Прошил, не заработало, подправил код, прошил еще раз. Не нужно снимать контроллер вставлять в программатор….
В работе и железе выглядит примерно так
Софт
Ну а теперь рассмотрим с каким же софтом работает данная поделка!
Скачиваем драйвера с офф сайта, страничка для загрузки.
Устанавливаем. Внимание! Компьютер будет ругаться на то что драйвер без цифровой подписи. В Windows 7 просто подтверждаем что хотим продолжить,
а для Windows 8 и новее используем инструкцию.
Все теперь программатор готов к работе.
Я использую бесплатный прошивальщик Khazama AVR Programmer. Отличная прога с минималистичным дизайном!
Выбираем чип и поехали!
Тут можно поиграться с FUSES битами, все с описаниями за что отвечают!
Ну вот пожалуй и все!
З.Ы.
Не знаю как у всех, но именно на мой экземпляр USBASP v2.0, Khazama ругается при перепрошивке Error Setting USBASP ISP Clock…
Игра с выставлением разной частоты не дает результатов.
После недолгих поисков в интернете наткнулся таки на такую же проблему у других людей.
Для исправления этого досадного косяка, нужно перепрошить программатор)) Для такого трюка нам понадобится еще один USBasp!
Вот так нужно все соеденить. Теперь заливаем прошивку
файл: usbasp.atmega8.2011-05-28
Выставляем Fuse биты и прошиваем!
После этого доставучие ошибки пропадут!
Update 2016
После отличной работы программатора, внезапно стала вываливаться новая ошибка вот такого вида
error: usbasp_transmit: libusb0-dll:err [contorl_msg]Решение было найдено не незамедлительно, нужно понизить частоту программирования. Идем в Command – > Program Options – > ISP CLK Speed и выставляем 187.5 KHZ (или AUTO).
После этого все снова работает!
Update 2017
Вставляем новую не разу не прошитую Atmega8 и видим такое!
100500 раз проверяем схему и программатор, все в норме! И у же почти сдавшись, находим косяк! При первом включении Atmega8 работает от внутреннего генератора на частоте 1 Mhz, она просто не успевает определиться в программе. Решение простое, нужно уменьшить частоту чтения в Khazama.
После этого прошиваем контроллер на 8 Mhz и выставляем AUTO.
И решение еще проще))) Нужно замкнуть контакты на программаторе JP3, для понижения частоты, а после выставления фьюзов на более высокую частоту работы atmega, разомкнуть.
Post Views: 8 461
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/ .
Alex_EXE | 30.09.2017 | AVR |
описание USBASP драйвера, инструкция по настройке своими руками в AvrDude Prog, Atmel Studio и Khazama AVR Programmer, обновление проши
В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.
Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.
Процессор: 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 — замыкается в случае обновления прошивки самого программатораПрограмматор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Установка драйверовЧтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».
3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»
4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»
5) «Всё равно установить этот драйвер»
6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены
Захожу в программу 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 подписана как 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 написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:то загрузив код на Attiny13, светодиод будет мигать очень медленно?#define f_cpu 9600000
— посмотрим на предпоследнюю строчку, где 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» контроллера.
Минусом 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 — сайт создателя проекта
USBASP — маленькие компьютеры Arduino, Raspberry Pi и ESP8266!
Приобрел с ebay очень дешевый программатор USBASP для AVR. Длинный кабель с 10-контактными разъемами и переходником с 10 на 6 контактов.
Используется для программирования Arduino, где загрузчик не нужен при запуске или когда он занимает слишком много места в ОЗУ.
Вы можете запрограммировать скект в Arduino, когда USBASP подключен с опцией меню Sketch: Upload Using Programmer.Это также удаляет загрузчик, освобождая место.
Когда я подключил USBASP к своему Uno и попробовал это с помощью скетча, загрузка завершилась ошибкой:
avrdude: предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp
Известная проблема, старая прошивка. Вздох, еще одна работа. Это то, что я сделал, чтобы он работал так, как хотел.
Погуглил, и это мой ответ. На основании сообщения Роджера Кларка, выполненного мной в Windows 7.
- Запрограммируйте Arduino UNO как программист.
Подключите Arduino Uno. Обратите внимание на назначенный последовательный порт, COMXX (введите номер в следующих командных строках!).
Запустите Arduino IDE (1.6.5 для меня, но это будет работать и со старыми версиями).
Из примеров (в меню «Файл»). Выберите «Arduino ISP».
Выберите плату: Uno и последовательный порт к тому, что вы только что отметили.
Выберите «Загрузить» и убедитесь, что новая прошивка была загружена. - Загрузите последнюю версию прошивки USBASP с сайта Томаса Фишла, разработчика USBASP.
Самая последняя прошивка — usbasp.2011-05-28.tar.gz
Разархивируйте файл во временном каталоге и скопируйте usbasp.atmega8.2011-05-28.hex в c: / program files (X86) / arduino / hardware \ tools \ avr \ bin (требуются права администратора!) - Откройте командную строку (Запуск от имени администратора) в c: \ program files (X86) \ arduino / hardware \ tools \ avr \ bin
Эта папка содержит программу avrdude, которая будет использоваться для прошивки новой прошивки. - Замкните перемычку самопрограммирования на USBASP.
На моей плате было два пустых отверстия, в которые я впаял перемычку.
Подключите Arduino к выводам программирования USBASP
Убедитесь, что вы отключили USBASP от USB вашего компьютера! - Выполните эти соединения
Ардуино USBASP 5В ———— 2 GND ———— 10 13 ———— 7 12 ———— 9 (MISO) 11 ———— 1 (MOSI) 10 ———— 5 (СБРОС)
Обратите внимание, что выемка на разъеме находится над контактами 3-5-7. На картинке выше контакты показаны в обратном порядке. Вот так разъем в кабеле, вид спереди, где должны быть выполнены подключения:
XXX --------------- | 1 3 5 7 9 | | 2 4 6 8 10 | -----------------
-
Убедитесь, что avrdude может подключиться к USBASP В командном окне Windows введитеavrdude -C../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -v
Если все подключено правильно, вы должны увидеть массу информации о плате USBASP, которую вы собираетесь программировать, например, этот
... Часть АРН: ATMEGA8 ... avrdude: устройство AVR инициализировано и готово принимать инструкции
Последнее сообщение — это знак, что все подключено, и у вас есть ATMEGA8, как и у меня на моем USBASP.
Если вы получили сообщение об ошибке о недопустимой подписи, значит, у вас либо неисправен USBASP, либо вы допустили ошибку подключения.
- Предполагая, что AVRDUDE может подключаться к USBASP, вы можете сделать резервную копию исходной прошивки с помощью команды
avrdude -C ../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -U flash: r: original_firmware.bin: r
Это должно прочитать прошивку и сохранить ее в файле с именем original_firmware.bin (в той же папке, что и avrdude.exe)
- Теперь запишите новую прошивку с
avrdude -C ../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -U flash: usbasp.atmega8.2011-05-28.hex
- Если процесс прошел нормально и AVDRUDE проверил новую прошивку, вы можете отключить USBASP от Arduino.
Удалите перемычку самопрограммирования, подключите ее через USB к ПК и попытайтесь запрограммировать целевое устройство (используя Arduino IDE). Обратите внимание, что вы теряете загрузчик при использовании USBASP, используйте программу загрузчика Ника Гаммона, чтобы восстановить его.
Обновление прошивки USBasp с помощью Arduino — Shannon Strutz
Хорошо, у вас есть программатор USBasp AVR, но вы просто не можете программировать с его помощью, что ж, вам может потребоваться обновить прошивку. По какой-то причине большинство китайских поставщиков USBasp поставляют их со старой плохой прошивкой. Мы можем исправить это с помощью нескольких материалов.
Нам нужно:
- Ардуино
- Некоторые соединительные провода
Если они у вас есть, можете продолжать. Если вам интересно: «Зачем мне использовать USBasp, если я могу использовать Arduino для программирования AVR на USBasp?» Почему бы просто не использовать Arduino вместо USBasp? » Что ж, вы можете, но это действительно отстой, когда нужно переключаться между эскизами на Arduino только для того, чтобы запрограммировать другое устройство.Очень приятно иметь преданного своему делу программиста.
Хорошо, приступим:
ШАГ 1:Возьмите свой программатор USBasp. Вы заметите пару дыр с рамкой вокруг них под названием «JP2», нам нужно соединить их, чтобы мы включили программистам «Режим самопрограммирования», как на картинках.
ШАГ 2:Когда ваш USBasp-программатор находится в режиме самопрограммирования, мы собираемся переключить внимание на Arduino.Идите и подключите свой любимый Arduino, я использовал для этого Uno. Как только он будет подключен, откройте IDE Arduino. Нужная нам программа поставляется с каждой версией IDE, перейдите в Файл-> Примеры-> ArduinoISP. Это откроет программу, которая эффективно превратит Arduino в программатор AVR. Выберите свой Arduino в списке плат и соответствующий COM-порт; затем запрограммируйте Arduino с помощью скетча ISP.
ШАГ 3:Теперь ваш Arduino является программатором AVR! Теперь вернемся к USBasp.Загрузите avrdude и разархивируйте содержимое в папку, в которую вы не будете перемещать его, я поместил его в свою папку «Документы» в моем пользовательском каталоге. Обратите внимание: если вы завершите настройку с помощью Atmel Studio, вы не сможете переместить avrdude, иначе настройка нарушится. Как только это будет распаковано, загрузите последнюю версию прошивки USBasp. Вам придется распаковать его дважды, так как то, что вы загружаете, представляет собой файл .tar.gz, который затем распаковывает файл .tar, а затем, как только вы его распаковываете, у вас будут настоящие файлы. Это показано ниже:
- usbasp.2011-05-28.tar.gz
- usbasp.2011-05-28.tar
- usbasp.2011-05-28
- бин
- прошивка (прошивка устройства USBasp здесь)
- usbasp.atmega8.2011-05.28.hex
- win-драйвер
Цепь - прошивка (прошивка устройства USBasp здесь)
- (электрическая схема / схема USBasp) Прошивка
- (исходный код прошивки здесь)
- Changelog.txt
- Readme.txt
- бин
- usbasp.2011-05-28
- usbasp.2011-05-28.tar
После того, как вы все разархивировали и получили файлы, мы хотим скопировать файл usbasp.atmega8.2011-05.28.hex в тот же каталог, где находится avrdude. Как только у вас это получится, переходите к следующему шагу.
ШАГ 4: Теперь, когда у нас есть все программное обеспечение и прошивка, нам нужно подключить USBasp к Arduino. Убедитесь, что перемычка JP2 на USBasp подключена. Как только это будет проверено, соедините две части, как показано на изображении ниже.
После того, как вы подключили две части, подключите Arduino к компьютеру, не подключайте USBasp.На самом деле ничего не произойдет, так как они оба подключаются к USB, который составляет 5 В, но просто не делайте этого, на случай, если один из ваших USB-портов выйдет из строя, подтолкнуть 5 В к линии VCC не будет хорошо, пока вы не узнаете, почему это пошло. вниз. Это случается не так часто, но просто охватывает все основы.
ШАГ 5:Теперь, когда все оборудование подключено, вся прошивка готова к работе, а программное обеспечение установлено, нам нужно запрограммировать USBasp. Вот где это может быть сложно.Откройте инструмент командной строки. Если вы работаете в Windows, нажмите Windows + R, чтобы открыть окно запуска. Введите «cmd», чтобы открыть командную строку. Каталог по умолчанию, в который вы попадаете, должен быть вашим каталогом пользователя. Нам нужно перейти в каталог, в который вы поместили исполняемый файл avrdude. Вы можете использовать три простые команды для перехода туда, куда вы положили avrdude.exe.
- Используйте «dir» для вывода списка файлов и папок в текущем каталоге.
- Используйте «cd», а затем имя папки, в которую вы хотите изменить текущий каталог.
- Используйте «cd ..» для перехода вверх по каталогу, как при возврате назад, как в браузере.
Как только вы окажетесь в каталоге, где находится ваш avrdude, мы воспользуемся командой для выполнения программирования USBasp. Шаблон:
avrdude -P comport -c avrisp -p m8 -v -U flash: w: usbasp.atmega8.2011-05-28.hex где comport — это какой com-порт включен ваш Arduino, скорее всего, это будет быть тем же самым, что написано в Arduino IDE, но вы также можете узнать об этом в диспетчере устройств.Как только вы наберете эту команду правильно, нажмите Enter и наблюдайте за магией. Если он возвращается с ошибкой, погуглите. Может произойти ряд ошибок, и я не могу объяснить их все.
ШАГ 6:
Теперь, когда на USBasp установлена последняя версия прошивки, сложная часть окончена! Однако вам еще предстоит установить драйвер устройства USBasp для Windows. Идите вперед и отключите Arduino, отделите его от USBasp, снимите перемычку, соединяющую два контакта JP2 на USBasp, и подключите USBasp к вашему ПК.Windows попытается установить устройство с найденными драйверами, но не сможет.
Зайдите в Диспетчер устройств и посмотрите в разделе «Другие устройства», вы должны увидеть USBasp с восклицательным знаком. Это означает, что Windows увидела его, но не может правильно установить. Дважды щелкните по нему и нажмите «Обновить драйвер». Появится окно с просьбой либо найти драйвер, либо найти его автоматически. Нажмите на нижний, чтобы мы могли найти драйвер для Windows, когда вы это сделаете, появится окно, в котором вам нужно будет сопоставить каталог «win-driver», указанный в каталоге прошивки usbasp выше. .После того, как вы согласитесь с этим, Windows попытается установить драйвер. Если вы получили сообщение об ошибке «Устройство не подписано» или что-то в этом роде, вам необходимо отключить функцию принудительного применения подписи устройства в вашей установке Windows. Как только все будет готово, все готово!
Теперь, когда вы закончили, вы можете запрограммировать любой AVR, какой захотите! Удачного программирования!
-Шеннон
SB-Projects — Обзор — Обзор китайского программатора Atmel USB ISP
Программатор AVR от Banggood
Просматривая онлайн-магазин подарков / интернет-магазин Banggood, я наткнулся на этого красивого маленького программатора AVR.И, как и большинство продуктов, которые вы найдете на Banggood, этот был до смешного дешев, доставлен. Поэтому я решил, что хочу такую. Не то чтобы у меня еще не было программатора AVR. У меня уже был старый оригинальный программатор Atmel, который подключается к старомодному последовательному порту. Просто пришло время для чего-то нового, чего-то современного, чего-то маленького, чего-то дешевого.
Я бы обычно не писал об этом обзоре, потому что здесь особо не о чем писать.
Он должен просто работать, и все.Однако оказалось, что это не сработало.
Как и большинство вещей, которые вы покупаете на Banggood, это устройство не поставлялось с руководством пользователя, поэтому мне пришлось самостоятельно выяснить, как подключить это устройство к avrdude.
Мне действительно удалось выяснить, что я должен был сказать avrdude, что я использую программатор USBasp, но каким-то образом он все равно отказывался делать то, что должен был делать.
После некоторого поиска в Google я обнаружил, что прошивка в программаторе явно несовместима с каким-либо программным обеспечением, известным за пределами Китая.Я перепрошил прошивку оригинальной прошивкой USBasp, что довольно легко сделать, если под рукой есть другой программатор AVR.
К сожалению, безрезультатно, но все равно не сработало.
Вот тогда я на время потерял к ней интерес.
Всего 4 евро потрачено впустую.
Какая разница.
Недавно снова нашла в ящике.
Почему я не могу заставить эту штуку работать?
Это не должно быть слишком сложно.
И после еще нескольких поисков в Google я нашел веб-сайт, объясняющий, что с этой штукой не так.
Очевидно, схема не была полностью совместима с оригинальным дизайном.Есть один дополнительный провод, соединяющий D- от порта USB с контактом ввода-вывода PD3 ATmega88 внутри программатора.
Это не было бы проблемой, если бы этот вывод был настроен как вход.
Но поскольку прошивка USBasp настроила его как выход, она просто боролась с сигналом USB.
Во всяком случае, пока что теория.
Мне было интересно, применимо ли то же самое к моему программисту.
И вроде бы так, по крайней мере, была дополнительная связь.
Так что мои надежды на то, что он заработал, снова возродились.
Список литературы
Вот список веб-сайтов, которые помогли мне исправить мой программатор USBasp:
Вся заслуга этих парней.Я просто обобщаю то, что я сделал, чтобы исправить мой программист, благодаря их прекрасному руководству.
Версии и номенклатура
Этот программатор не только бывает разных цветов, но и имеет разные имена, напечатанные на его стороне.
Обычно USB ISP напечатан на устройстве.
Однако оборудование почти совместимо с USBasp.
На
Mine была напечатана версия 2.0 снаружи, а на плате внутри говорилось, что это версия MX-USBISP-V4.00.
На описанных выше сайтах рассказывается о печатных платах версии 3.00 и 3.02.
Иногда печать на устройствах даже обнажает логотип Atmel.
В любом случае, насколько я могу судить (у меня есть только одна, как вы знаете), существует две различные версии.
Более старые, я думаю, это версия V3.00 и ниже, работают на процессоре ATmega 8.
В то время как все более новые версии работают на ATmega 88.
У меня версия V4.00 и работает на ATmega 88.
Открытие программиста
Открыть программатор довольно просто.
Просто надавите корпусом на разъем USB и полностью выдвиньте.Его снова просто собрать в обратном порядке. Никаких специальных инструментов или навыков не требуется.
И если вы не помните, какой путь был вверху, просто посмотрите на светодиоды рядом с кристаллом и маленьким отверстием в корпусе, они должны выровняться.
Решение 1. Удаление лишних следов
Возможным решением является сокращение трассы между USB D- и PD3.
Должен признаться, что сам не пробовал.
К сожалению, след от контакта 1 микроконтроллера (PD3) сразу исчезает под микросхемой, поэтому невозможно сказать, куда он идет.Поэтому самый простой способ вырезать след — отрезать штифт 1 прямо из микросхемы.
Это может быть немного сложно, потому что контакты на корпусе TQFP довольно маленькие.
После отрезания булавки вам все равно придется прошить новую прошивку в чип.
Вы можете использовать оригинальную прошивку с веб-сайта Томаса Фишля.
Я бы выбрал последнюю версию для вашего типа процессора.
Решение 2. Прошивка модифицированной прошивки
Так я исправил свой процессор.
Вы можете загрузить эту модифицированную прошивку с веб-сайта Uwezi, либо версию ATmega8, либо версию ATmega88, в зависимости от того, что применимо к вашему программисту.Я взял на себя смелость предоставить версию для ATmega88 для загрузки на моем веб-сайте, потому что она работала для меня.
Однако вся заслуга в этом программном обеспечении принадлежит Увези, который его скомпилировал.
Благодаря изменениям в прошивке вам не нужно ничего менять на плате программатора.
Прошивка новой прошивки
Независимо от того, какое решение вы выберете, вам все равно нужно прошить новую прошивку в свой программатор.
Однако это довольно просто.
Я не собираюсь объяснять вам, как прошить программное обеспечение в процессор Atmel.Я думаю, вам следует знать, как это делается, когда вы зашли так далеко.
Но у вас может быть проблема с курицей и яйцом.
Вам временно нужен другой программатор AVR.
Если у вас его нет, вы можете его одолжить.
Если вы не можете одолжить одного, возможно, вам лучше купить другого программиста вместе.
Перед тем, как вы сможете прошить новую прошивку в свой USBasp программатор, вы должны соединить две контактные площадки, помеченные «Up» вместе.
Если другой программатор не запитан, как мой, вам нужно подключить USBasp к USB-порту, который затем питает оба программатора.И если другой ваш программист подает питание на свою цель, все в порядке.
Не забудьте отключить перемычку между двумя контактными площадками, прежде чем снова закрыть программатор USBasp.
В качестве дополнительной ноты
В любом случае, у меня снова работает программист.
По совпадению я также только что закончил небольшой адаптер для программирования, который позволяет мне программировать 8- и 24-контактные устройства DIP Atmel, которые у меня случайно лежат.
Он может даже программировать 8-контактные процессоры PIC (полоскать рот с мылом).
Этот программный адаптер отлично работал с моим старым программатором AVR ISP на моих процессорах ATmega8, ATmega88 и ATtiny13.
Однако я смог заставить ATmega88 работать только с моим новым программатором USBasp.
Аврдуде продолжал жаловаться, что подпись устройства, считанная с устройства, не совпадает.
Кроме того, сигнатура устройства, считываемая с устройства, менялась каждый раз, когда я пытался его запрограммировать.
Сначала я подозревал, что блок питания загрязнен, потому что это была единственная разница между двумя установками.Я даже пробовал использовать гораздо более короткий провод между программистом и целевой системой.
Вскоре я обнаружил, что USBasp был слишком быстрым для стандартных тактовых частот ATmega8 и ATtiny13.
Очевидно, интернет-провайдер Atmel был недостаточно быстрым, чтобы это стало проблемой.
К счастью, решение довольно простое.
Добавьте параметр -B 3 в команду avrdude.
Вот пример команды для программирования более медленных процессоров:
avrdude -c usbasp -B 3 -p m8 -U flash: w: targetfile.hex
Обновление прошивки через ISP — SSSR Labs
Некоторые модули SSSR Labs имеют 6-контактный разъем под названием ISP (внутрисхемное последовательное программирование).Этот разъем можно использовать для обновления прошивки модуля до последней выпущенной версии. Для этого вам понадобится программист AVR ISP.
Выбор программиста
На рынке представлено множество различных моделей с ценой от нескольких долларов / евро. В отличие от профессионального аудио, серийные программаторы в наши дни очень легко собрать. Ниже представлен краткий список самых известных и проверенных программистов по разной цене. Купите самый дешевый, если вам нужно только время от времени обновлять какой-либо модуль eurorack.Купите Arduino, если у вас есть навыки программирования. Если вам нужно программировать или читать что-либо еще, кроме AVR (EPROM, EEPROM, PIC и т. Д.), Приобретите TL-866 для этого и USBtinyISP только для обновления ISP: вы не будете разочарованы. Мы рекомендуем использовать avrdude в качестве приложения для программирования. Рядом с каждым именем указаны значения в скобках (например, [avrisp]). Соответствующее значение следует использовать как параметр командной строки (или параметр приложения GUI), определяющий тип соединения и протокол.
USBASP (3 доллара США) [ usbasp ] — недорогой USB-ключ с открытым исходным кодом и 10-контактным разъемом.Должен поставляться с кабелем и переходником ISP с 10 на 6 контактов. Доступно на eBay, Ali Express, Amazon и почти в каждом магазине электроники для компьютерных фанатов. Главный недостаток — это самый медленный программатор, доступный на рынке, но для редких обновлений этого достаточно. (Купить на eBay)
Arduino UNO R3 (8 долларов за клон) [ avrisp ] — самая известная плата разработки ATMEGA328p с собственной IDE. Может использоваться как программатор, совместимый со STK-500. В качестве бонуса вы можете весело провести время, строя проекты Arduino, если захотите.(Покупайте на eBay) Вам понадобится 6 проводов Dupont «папа-мама» длиной не менее 20 см, чтобы подключить его к модулю. (Получите кабели с eBay) Также вам необходимо загрузить на эту плату специальный скетч Arduino. Прочтите любой учебник по ArduinoISP.
USBtinyISP V2 (13 долларов США) [ usbtiny ] — доступный программатор с открытым исходным кодом, совместимый с STK-500. Имеет множество различных версий от Adafruit и других известных и безымянных производителей. (Купить на Amazon)
AVR ISP MK II (20–40 долларов) [ avrisp2 ] — официальная архитектура USB-программатора, полностью совместимая с Atmel STK-500.У него есть только одно преимущество перед более дешевыми программистами: он полностью совместим с Atmel AVR Studio, но это важно только для разработчиков, которые используют AVR Studio. (Покупайте на Amazon). Если вы покупаете другой клон, убедитесь, что он имеет 6-контактный разъем или оснащен адаптером с 10 на 6 контактов.
TL-866A (60–80 долларов) — универсальный параллельный программатор профессионального уровня с собственным графическим программным приложением для Windows. Версия A имеет разъем ICSP, который можно использовать для программирования с использованием проводов Dupont типа мама-гнездо, но это не очень удобный способ, поэтому он не рекомендуется для редкого программирования только с помощью ISP, но настоятельно рекомендуется для повседневного программирования напрямую с отсоединением фишки (купить на eBay)
Обновление предохранительных битов Матриксархата 1.0
Перед обновлением прошивки для Matrixarchate с версии v.1.0 вам обязательно нужно обновить fuse-bit hfuse . Его значение должно быть 0xD7 (биты SPIEN и EESAVE установлены в 0). Если вы этого не сделаете, пользовательская память (EEPROM) будет стираться каждый раз при обновлении прошивки, и модуль не будет работать, пока вы не загрузите стандартную EEPROM. Если вы используете MacOS, AVRFuses легко обновит fuse. Если вы используете WIndows, вам необходимо создать файл с именем, например updatefuse.cmd, содержащий следующий код:
@ эхо выкл. avrdude -c avrisp -p ATMEGA328P -P COM5 -U hfuse: w: 0xd7: m Пауза
Параметры -c avrisp и -P COM5 зависят от конкретного устройства программирования и порта ввода-вывода. Они такие же, как у avrdudeGUI.
После того, как вы обновите бит предохранителя, вы можете обновлять прошивку так часто, как вам нужно.
Программирование в MAC OS X
- Загрузите и установите CrossPack-AVR и AVRFuses
- Загрузите архив с прошивкой и распакуйте его в известное место на локальном диске.
- Вставьте ваш программатор и подождите минуту, пока драйверы установятся автоматически.
- Отсоедините модуль от Eurorack и подключите заголовок ISP к программатору.
- Запустите AVRFuses, выберите File → Preferences (⌘,) и установите следующие параметры:
- Путь к avrdude: путь, по которому был установлен Crosspack (вероятно, это будет / usr / local / bin / avrdude или / usr / local / CrossPack-AVR-20131216 / bin ).
- Programmer: значение, подходящее для вашего устройства программирования (usbasp, avrisp, avrisp2, usbtiny или другое)
- Порт: последовательный порт, соответствующий только что подключенному устройству (usb, tty.usbmodemXXXXX для программаторов usb / serial и usbasp / пустое значение для USBASP)
- Baud Rate: не меняйте, обычно это 115200, но, возможно, вам придется уменьшить это значение до 38400 или даже до 9600 для USBASP. Если что-то пойдет не так, попробуйте поиграть с этим значением.
- бит Тактовая частота: 8
- В главном окне выберите ATmega328P
- Для обновления программы используйте область Flash, укажите местоположение подходящего файла .hex и нажмите кнопку «Программа».
Программирование в Windows
- Загрузите графический интерфейс AVRDude и распакуйте его в известное место на локальном диске.
- Скачайте архив с прошивкой и распакуйте его в ту же папку, где находится avrdude.
- Установите драйверы для вашего программатора, если необходимо, и подключите его к USB-порту. Подождите минуту для завершения распознавания устройства, затем извлеките его из порта.
- Отсоедините модуль от стойки и подключите разъем ISP к программатору.
- Если вы используете USBASP или AVRISP MKII, просто пропустите этот шаг и уже вставьте свой программатор. Если вы используете старый STK500, AVRISP, Arduino или другой программатор на базе USB-последовательного порта, вам необходимо определить имя виртуального последовательного порта, связанного с ним.Для этого откройте Диспетчер устройств (Win + R, «devmgmt.msc») и найдите запись группы «Порты (COM и LPT)». Разверните его и запомните существующие COM-порты. Теперь подключите программатор к USB и следите за появлением новой записи. Его можно прокомментировать читаемым именем, но все, что вам нужно, это пронумерованное имя порта: (например, COM5)
- Запустите приложение avrdudeGUI
- На вкладке «Настройка» выберите интерфейс, подходящий для вашего программатора, и порт, который вы только что определили на шаге 5 (usb, COMxx или usbasp для USBASP).
- На вкладке «Программирование» выберите ATMEGA328P в качестве целевого устройства.Убедитесь, что установлен флажок «Проверять после программирования», а формат файла — Intel Hex.
- Укажите местоположение файла .hex на панели «FLASH» и нажмите кнопку «Программа».
USBASP Программатор AVR
Эти программаторы AVR основаны на дизайне USBasp Томаса Фишла и подключаются к USB-порту вашего компьютера. Они не только довольно компактны (70×20 мм), но и имеют действительно элегантный дизайн. Интерфейс USB достигается за счет использования процессора atmega8, а все остальное делается в прошивке.
Поскольку это проект аппаратного обеспечения с открытым исходным кодом (OSHW), выпущенный под Стандартной общественной лицензией GNU, вы можете бесплатно загрузить схему и прошивку с веб-сайта Томаса, но тогда у вас возникнет проблема с курицей и яйцом. Чтобы загрузить прошивку USBASP на atmega8 на программаторе, да, как вы уже догадались, вам понадобится программатор AVR. Намного проще купить полностью собранный и запрограммированный.
Некоторые из функций включают:
Позволяет читать или записывать EEPROM микроконтроллера, прошивку, биты предохранителей и биты блокировки
Поддержка Windows, Mac OS X и Linux (будет работать на
Эти программаторы AVR основаны на дизайне USBasp Томаса Фишла и подключаются к USB-порту вашего компьютера.Они не только довольно компактны (70×20 мм), но и имеют действительно элегантный дизайн. Интерфейс USB достигается за счет использования процессора atmega8, а все остальное делается в прошивке.
Поскольку это проект аппаратного обеспечения с открытым исходным кодом (OSHW), выпущенный под Стандартной общественной лицензией GNU, вы можете бесплатно загрузить схему и прошивку с веб-сайта Томаса, но тогда у вас возникнет проблема с курицей и яйцом. Чтобы загрузить прошивку USBASP на atmega8 на программаторе, да, как вы уже догадались, вам понадобится программатор AVR.Намного проще купить полностью собранный и запрограммированный.
Некоторые из функций включают:
Позволяет читать или записывать EEPROM микроконтроллера, прошивку, биты предохранителей и биты блокировки
Поддержка Windows, Mac OS X и Linux (будет работать в Windows 8.1)
Максимальная скорость записи 5 КБ / с
Программно управляемая опция SCK для поддержки целей с низкой тактовой частотой (<1,5 МГц)
10-контактный интерфейс ISP (соответствует стандартному 10-контактному разъему ISP)
Последние драйверы Windows полностью подписаны, поэтому вы можете использовать их в Windows Vista и выше без каких-либо проблем.Драйвер будет работать как на 32-битной, так и на 64-битной платформах. В Linux и Mac OS X драйвер ядра не требуется, просто используйте AVRdude и укажите правильный порт.
Программист будет работать с широким спектром микроконтроллеров Atmel AVR, включая Atmega8a и Atmega168a. Полный список доступен на вкладке технических характеристик. Программист также будет работать с разнообразным программным обеспечением, включая
.
AVRdude (http://download.savannah.gnu.org/releases/avrdude/) — версия 5.2 или новее. AVRdude доступен для многих платформ.
Khazama AVR Programmer (http://khazama.com/project/programmer/) — графический интерфейс AVRdude для MS Windows
BASCOM-AVR (http://www.mcselec.com/index.php?option=com_content&task=view&id= 14 & Itemid = 41) — Версия 1.11.9.6 или новее
eXtreme Burner (http://extremeelectronics.co.in/avr-tutorials/gui-software-for-usbasp-based-usb-avr-programmers/) — Легко использовать приложение с графическим интерфейсом для MS Windows.
Links
USBasp — USB-программатор для контроллеров Atmel AVR (http: // www.fischl.de/usbasp/)
Технические характеристики:
Размер: 70 х 20 х 9 мм
Поддерживаемые программы: AVRDUDE 5,2 или выше
Поддерживаемые микроконтроллеры: Mega Series
ATmega8 ATmega8A ATmega48 ATmega48A ATmega48P
ATmega48PA ATmega88 ATmega88A ATmega88P ATmega88PA
ATmega168 ATmega168A ATmega168P ATmega168PA ATmega328
ATmega328P ATmega103 ATmega128 ATmega128P ATmega1280
ATmega1281 ATmega16 ATmega16A ATmega161 ATmega162
ATmega163 ATmega164 ATmega164A ATmega164P ATmega164PA
ATmega169 ATmega169A ATmega169P ATmega169PA ATmega2560
ATmega2561 ATmega32 ATmega32A ATmega324 ATmega324A
ATmega324P ATmega324PA ATmega329 ATmega329A ATmega329P
ATmega329PA ATmega3290 ATmega3290A ATmega3290P ATmega64
ATmega64A ATmega640 ATmega644 ATmega644A ATmega644P
ATmega644PA ATmega649 ATmega649A ATmega649P ATmega6490
ATmega6490A ATmega6490P ATmega8515 ATmega8535
Tiny Series
ATtiny12 ATtiny13 ATtiny13A ATtiny15 ATtiny25 9000 3 ATtiny26 Attiny45 ATtiny85 ATtiny2313 ATtiny2313A
серии Classic
AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535
CAN серии
AT90CAN128
PWM серии
AT90PWM2 AT90PWM3
Скачать
Изображения продукта:
USB — USB-драйвер только с прошивкой для микроконтроллеров Atmel AVR
USBaspLoader — загрузчик USB для микроконтроллеров AVR.Его можно использовать на все AVR с разделом загрузчика не менее 2 КБ, например популярный ATMega8. Прошивка прошивается в верхние 2 кБ флеш-памяти и занимает управление сразу после сброса. Если соблюдается определенное аппаратное условие (это условие можно настроить, например, перемычкой), загрузчик ожидает данные на интерфейсе USB и загружает их в оставшуюся часть флеш-памяти объем памяти. Если условие не выполняется, управление передается загруженной прошивке.
Пока ничего нового, то же самое, что и у других загрузчиков, таких как AVRUSBBoot или bootloadHID.Разница в том, что USBaspLoader представляется хосту как программатор USBasp. USBasp — это простой USB-программатор AVR, поддерживаемый AVRDUDE. Поэтому вам не нужна особая процедура для загрузки, просто представьте, что вы используете USBasp для прошивки устройства.
USBaspLoader требует наличия микросхемы с разделом загрузочного кода во флеш-памяти. Для устройств ATTiny, у которых нет раздела загрузочного кода, проверьте Micronucleus.
Платы, совместимые с Arduino с V-USB
Одним из основных преимуществ этого загрузчика является то, что он может быть интегрирован в Arduino IDE.Просто отредактируйте конфигурацию Arduino hardware /boards.txt и добавьте еще одну плату, на которой вы установите протокол загрузки на «usbasp». Metaboard — это пример макетной платы, совместимой с Arduino, на основе USBaspLoader. Поскольку чип FTDI не требуется, он значительно дешевле, чем, например, Arduino Diecimila. Односторонний дизайн и интегрированная макетная плата делают его идеальным выбором для создания прототипов.
Скачать
Stephan Bärwolf поддерживает форк USBaspLoader на Github, который активно поддерживается.
Информация о версииВыпуск 08.12.2012
- Обновлен до последней версии драйвера с использованием gcc 4.6.2. Это экономит пару байтов, так что мы можем включить поддержку EEPROM в большее количество конфигураций.
Краткое руководство для программиста USBASP ICSP
USBasp — это адаптер ICSP (In Circuit Serial Programming), который позволяет устанавливать новые загрузчики и прошивки на распространенные микроконтроллеры AVR, например те, которые используются в Arduino-совместимых платах.
Плата, которую вы будете программировать, называется «целевой».
Характеристики платы
Для типичного использования вы можете оставить USBasp настроенным точно так, как он поставляется в пакете. Для определенных целей вам может потребоваться изменить некоторые из этих настроек.
Разъем Micro USB. Подключитесь к компьютеру с помощью прилагаемого кабеля.
Выбор целевого напряжения. USBasp поддерживает целевые платы, работающие от 5 В или 3,3 В. Большинство плат, совместимых с Arduino, работают при 5 В. Установите переключатель в положение, соответствующее плате, которую вы будете программировать.
Перемычка «Программа». Если вы закоротите эту перемычку, USBasp перейдет в специальный режим, в котором он не программист, а цель. Это позволяет вам обновлять прошивку на самом USBasp с помощью другого программатора.
Перемычка целевой мощности. С этой перемычкой USBasp будет подавать питание на цель через заголовок ICSP. Обычно это желательно. Однако, если цель получает питание независимо (например, через разъем постоянного тока или USB-соединение), вам следует удалить эту перемычку.
Заголовок ICSP для цели. Программный выход USBasp, который вы подключаете к ICSP-заголовку цели с помощью прилагаемого кабеля.
Джемпер «Slow Clock». Если вы закоротите эту перемычку, USBasp будет работать на более низкой скорости для максимальной совместимости с некоторыми целями. Обычно не требуется, если вы не программируете новые AVR (см. Ниже).
Светодиод состояния. Показывает состояние питания, записи и активности.
Подключение оборудования
1.Отключите вашу целевую плату от других источников питания, если у вас нет особых требований к ее независимому питанию во время программирования.
2. Подключите USBasp к компьютеру с помощью прилагаемого USB-кабеля.
3. Подключите USBasp к целевой плате с помощью прилагаемого 6-жильного кабеля.
ПРЕДУПРЕЖДЕНИЕ: Обратите особое внимание на ориентацию кабеля. Вы увидите, что на одной стороне кабеля есть красная полоса, указывающая, какой конец является контактом 1. USBasp имеет точку рядом с заголовком ICSP на конце контакта 1, а на целевой плате также должна быть маркировка рядом с контактом 1.Подключите кабель так, чтобы сторона с красной полосой была ближе всего к контакту 1 на USBasp и на мишени. Для большинства мишеней это станет естественным, если вы положите доски так, чтобы они смотрели на вас, как показано ниже.
Драйверы для Windows
Пользователи Linux и OS X могут пропустить этот раздел (хотя, если вы пользователь Linux, обязательно прочтите раздел «Разрешения в Linux» внизу этой страницы).
Windows требует универсального драйвера USB для связи с USBAsp.Инструмент под названием Zadig упрощает установку этого драйвера.
- Отключите USBasp.
- Загрузите Zadig с http://zadig.akeo.ie/. Обратите внимание, что существуют отдельные версии для Windows XP или более новых версий Windows.
- Запустите Zadig, а затем подключите USBasp. Отмените все всплывающие диалоговые окна Windows.
- Настройте диалог Zadig следующим образом, проверьте выделенные поля:
- «Usbasp» выбран в главном раскрывающемся списке (это должно появиться автоматически, когда вы подключаете USBasp.Если вы не видите его в списке, выберите «Список всех устройств» в меню «Параметры» в Zadig.
- libusb-win32 в качестве типа драйвера (используйте маленькие стрелки вверх / вниз, чтобы выбрать эту запись.)
- Нажмите «Установить драйвер» и дождитесь завершения установки драйвера.
- Вы закончили с Zadig, пора использовать USBasp!
Использование из Arduino IDE
Важное примечание: В отличие от многих других плат и программаторов, USBasp не отображается как последовательный порт USB.Поэтому порт не указан в разделе «Инструменты> Последовательный порт» в Arduino IDE или в других местах. Это нормально.
Установка нового загрузчика
IDE Arduino включает загрузчики для различных поддерживаемых плат. Подключите компьютер, USBasp и цель, как показано выше, затем запустите IDE и используйте следующие пункты меню.
1. Выберите Инструменты > Доска и выберите тип платы, который соответствует вашей цели.
2. Выберите «Инструменты »> «Программатор » и выберите «USBasp» в качестве типа программатора.
3. Выберите Инструменты > Записать загрузчик . Затем IDE Arduino установит загрузчик на вашу целевую плату.
Установка эскиза
Обычно скетчи устанавливаются через порт USB на вашем Arduino, но вы также можете установить их напрямую, используя USBasp, который обходит загрузчик и USB-соединение. При открытом эскизе используйте следующие пункты меню.
1. Выберите Инструменты > Доска и выберите тип платы, который соответствует вашей цели.
2. Выберите «Инструменты »> «Программатор » и выберите « USBasp » в качестве типа программатора.
3. Выберите файл > Загрузить с помощью программатора . Затем IDE Arduino скомпилирует и загрузит ваш эскиз на целевую плату.
Использование из командной строки
Средство командной строки avrdude также можно использовать для программирования AVR. Это более сложный инструмент, чем программирование через IDE Arduino, но гораздо более гибкий.
Аргумент программиста для использования avrdude с USBasp — -c usbasp
.
Вы можете установить avrdude для Windows как часть пакета WinAVR или для OS X как часть AVR CrossPack. Пользователи Linux обычно могут установить его как часть системы управления пакетами своего дистрибутива.
Например, чтобы использовать avrdude для чтения статуса ATMega328P на плате Freetronics Eleven:
avrdude -p m328p -c usbasp -v
Инструменты графического программирования
Для автономных инструментов программирования на основе графического интерфейса пользователя в Windows, ознакомьтесь с Khazama AVR Programmer или eXtreme Burner — AVR.eXtreme Burner также работает в Linux.
Программирование новых AVR
По умолчанию USBasp программирует цель с «тактовой частотой программирования» 375 кГц. Это обеспечивает быстрое программирование, но работает только в том случае, если AVR chp настроен на тактовую частоту не менее 1,5 МГц.
Совершенно новые микросхемы AVR обычно поставляются с заводскими настройками с внутренней тактовой частотой 1 МГц. Это устанавливается как часть «предохранителей» внутри микроконтроллера. Если вы используете IDE Arduino, она перепрограммируется для использования внешнего кристалла 16 МГц при загрузке загрузчика Arduino.
Симптомы попытки запрограммировать AVR с чрезмерно быстрым программированием часов такие же, как если бы AVR вообще не был подключен:
avrdude: ошибка: включение программы: цель не отвечает. 1
avrdude: инициализация не удалась, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этот чек.
Эту проблему можно решить двумя способами.
Установите перемычку «Медленные часы»
Это лучший вариант, если вы используете Arduino IDE для программирования прошивки на новые AVR.
Перемычка через перемычку медленной тактовой частоты снижает тактовую частоту программирования до 8 кГц, что достаточно медленно для AVR, работающих на частоте всего 32 кГц.
Вы можете установить перемычку в два отверстия для перемычки, или, если вы используете ее только изредка, вы можете обойтись простым использованием куска проволоки или даже пары пинцета!
Установить часы в программе
Это лучший вариант, если вы используете avrdude в командной строке. Опция Avrdude -B
позволяет вам установить тактовую частоту программирования из программного обеспечения, перемычка не требуется!
Опция -B 4
устанавливает скорость программирования 187.5 кГц, все еще быстро, но достаточно медленно для нового AVR с частотой 1 МГц.
Например, чтобы прочитать конфигурацию нового ATTiny85:
avrdude -p t85 -B 4 -c usbasp -v
Если вам нужны еще более медленные часы программирования, просто продолжайте увеличивать -B
. Максимальное значение -B 64
дает программируемую тактовую частоту 8 кГц, как если бы была установлена перемычка «медленной тактовой частоты».
Обратите внимание, что -B
полностью игнорируется, если установлена перемычка «медленных часов».
Разрешения в Linux
ПользователиLinux могут столкнуться с ошибкой типа «Ошибка отправки сообщения управления об ошибке : операция не разрешена, » при попытке использовать USBAsp. Это связано с тем, что по умолчанию обычные пользователи не имеют доступа к USB-устройствам.
Временный обходной путь — запустить операцию от имени пользователя root с помощью sudo или su. Гораздо лучшее решение — сообщить Linux, что вы хотите, чтобы всем пользователям был разрешен доступ к USBAsp.