Я купил программатор USBasp на Dx.com чтобы использовать с Arduino IDE для прошивки Arduino Pro mini.
Всё работало нормально, но выдавало вот такую ошибку:
〉 avrdude: warning: cannot set sck period. please check for usbasp firmware update
В-общем требовалось обновление прошивки программатора USBasp.
Гугление в Интернете выдало вот такое решение:
- Качаем обновление прошивки отсюда .
- Распаковываем, и лучше сразу положить новую прошивку в папку с avrdude (у меня это было здесь: C:Program Files (x86)Arduinohardware oolsavrin).
- Подключаем USBasp программатор к Arduino Uno по схеме:
- На программаторе ставим джампер в позицию J1 (для этого я воспользовался скрепкой). Стоит отметить, что программаторы бывают разные, а значит и джампер может отличаться:
- Подключаем Arduino Uno, запускаем Arduino IDE, выбираем ArduinoISP и загружаем
- И нужно запомнить com-порт, к которому подключена Arduino Uno (Инструменты ⇒ Порт).
- Запускаем командную строку. Переходим в папку C:Program Files (x86)Arduinohardware oolsavrin. Проверяем подключение к USBasp, для этого вводим следующую команду: avrdude -C ../etc/avrdude.conf -c avrisp -P COM2 -b 19200 -p m8 -v (замените com-порт на ваш). Если всё в порядке, Вы получите вот такой результат:
- Теперь прошиваем наш программатор вот этой командой: avrdude –C ../etc/avrdude.conf –c avrisp –P COM2 –b 19200 –p m8 –U flash:w:usbasp.atmega8.2011-05-28.hex и должны получить вот такой результат:
- Поздравляю! Теперь можно использовать программатор по назначению!
Я купил программатор USBasp на Dx.com чтобы использовать с Arduino IDE для прошивки Arduino Pro mini.
Всё работало нормально, но выдавало вот такую ошибку:
〉 avrdude: warning: cannot set sck period. please check for usbasp firmware update
В-общем требовалось обновление прошивки программатора USBasp.
Гугление в Интернете выдало вот такое решение:
- Качаем обновление прошивки отсюда .
- Распаковываем, и лучше сразу положить новую прошивку в папку с avrdude (у меня это было здесь: C:Program Files (x86)Arduinohardware oolsavrin).
- Подключаем USBasp программатор к Arduino Uno по схеме:
- На программаторе ставим джампер в позицию J1 (для этого я воспользовался скрепкой). Стоит отметить, что программаторы бывают разные, а значит и джампер может отличаться:
- Подключаем Arduino Uno, запускаем Arduino IDE, выбираем ArduinoISP и загружаем
- И нужно запомнить com-порт, к которому подключена Arduino Uno (Инструменты ⇒ Порт).
- Запускаем командную строку. Переходим в папку C:Program Files (x86)Arduinohardware oolsavrin. Проверяем подключение к USBasp, для этого вводим следующую команду: avrdude -C ../etc/avrdude.conf -c avrisp -P COM2 -b 19200 -p m8 -v (замените com-порт на ваш). Если всё в порядке, Вы получите вот такой результат:
- Теперь прошиваем наш программатор вот этой командой: avrdude –C ../etc/avrdude.conf –c avrisp –P COM2 –b 19200 –p m8 –U flash:w:usbasp.atmega8.2011-05-28.hex и должны получить вот такой результат:
- Поздравляю! Теперь можно использовать программатор по назначению!
среда, 10 октября 2018 г.
Прошивка USBasp
1. Подготовка Ардуино
В качестве программатора можно использовать любую имеющуюся плату Ардуино. Для этого подключаем ее к компьютеру и загружаем в нее скетч ArduinoISP из стандартных примеров:
2. Подключение USBasp к Ардуино
Микроконтроллеры семейства AVR, а значит и базирующиеся на них платы (как Ардуино, так и USBasp) поддерживают программирование по ISP-технологии с использованием линий связи SPI. Поэтому сейчас нам нужно:
- соединить выводы Ардуино MOSI, MISO, SCK GND и VCC (5В или 3.3В) с одноименными выводами USBasp;
- цифровой вывод 10 Ардуино подключить к выводу RESET USBasp;
- установить электролитический конденсатор на 10мкФ между RESET и GND Ардуино, чтобы предотвратить автоматическую перезагрузку. Хотя возможно будет работать и без конденсатора, зависит от используемой платы Ардуино.
Для подключения можете использовать как ICSP разъем Ардуино, так и цифровые выводы — не принципиально. Я, например, взял MOSI, MISO, SCK, GND и VCC с ICSP разъема:
На всякий случай приведу таблицу соответствия сигналов MOSI, MISO и SCK цифровым выводам различных плат Ардуино:
Плата Ардуино | MOSI | MISO | SCK |
---|---|---|---|
Uno, Duemilanove | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 |
Nano | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 |
Pro Mini | 11 | 12 | 13 |
Mega1280, Mega2560 | 51 или ICSP-4 | 50 или ICSP-1 | 52 или ICSP-3 |
Leonardo | ICSP-4 | ICSP-1 | ICSP-3 |
Due | ICSP-4 | ICSP-1 | ICSP-3 |
Zero | ICSP-4 | ICSP-1 | ICSP-3 |
101 | 11 или ICSP-4 | 12 или ICSP-1 | 13 или ICSP-3 |
3. Установка джампера JP2 на USBasp
На плате USBasp присутствуют 3 джампера, хотя распаян у вас, скорее всего, будет только JP1 — выбор напряжения питания программируемого микроконтроллера. Для прошивки USBasp (и любых других манипуляций с ним при помощи программатора) необходимо установить джампер JP2. Советую не мучиться с замыканием контактов подручными средствами и впаять пару штырьков, так будет надежней:
4. Скачивание прошивки
Заходим на страничку автора USBasp https://www.fischl.de/usbasp/ и скачиваем последнюю версию прошивки в разделе Download — Firmware and circuit. На момент написания данной статьи актуальной является версия от 28.05.2011. Файлы прошивки находятся внутри архива по пути usbasp.2011-05-28infirmware, их там три штуки, для каждого типа микроконтроллера (программатор USBasp может быть построен на базе ATmega8, ATmega48 или ATmega88). У меня в USBasp установлен микроконтроллер ATmega8, поэтому я буду использовать файл usbasp.atmega8.2011-05-28.hex.
Прошивать USBasp будем при помощи уже знакомого нам avrdude, входящего в состав IDE Arduino. Файл прошивки нужно поместить в каталог avrdude, чтобы потом не пришлось указывать полный путь к нему. Для этого запускаем Проводник Windows и переходим в каталог Arduino_dirhardware oolsavrin, где Arduino_dir — это путь к IDE Arduino. В моем случае он выглядит так: d:Arduinoarduino-1.6.12hardware oolsavrin, сюда я копирую файл usbasp.atmega8.2011-05-28.hex.
5. Прошивка USBasp
После копирования файла прошивки в каталог avrdude поместите курсор в адресную строку Проводника, удалите из нее путь, введите cmd и нажмите Enter.
Запустится интерпретатор командной строки. В нем нужно ввести команду:
avrdude -C ..etcavrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex
Не забудьте проверить и с корректировать ее параметры:
-C ..etcavrdude.conf — путь к конфигурационному файлу (без этого параметра avrdude иногда ругается: can’t open config file "": Invalid argument)
-p m8 — определяет тип микроконтроллера. Значение m8 сообщает avrdude о том, что мы собираемся работать с ATmega8. Если у вас в USBasp установлен ATmega48 или ATmega88, то замените это значение на m48 или m88 соответственно.
-P com18 — определяет COM порт, присвоенный плате Ардуино. У меня это com18, вам нужно подставить свое значение.
-U flash:w:usbasp.atmega8.2011-05-28.hex — определяет действие, которое мы хотим выполнить. В данном случае мы хотим записать в FLASH память данные из файла usbasp.atmega8.2011-05-28.hex. При необходимости скорректируйте имя файла прошивки в соответствии с типом микроконтроллера в USBasp.
Убедитесь, что команда набрана верно и программатор правильно соединен с Ардуино. После этого подключаем Ардуино к компьютеру и нажимаем Enter в интерпретаторе командной строки. Должен отобразиться прогресс перезаписи содержимого FLASH памяти, а затем сообщение об успешном выполнении команды — avrdude done. Thank you: