Прошивка usbasp: Обновление прошивки USBASP USBISP AVR Programmer / Блог им. GhostPVV / Сообщество EasyElectronics.ru

Обновление прошивки USBASP USBISP AVR Programmer / Блог им. GhostPVV / Сообщество EasyElectronics.ru

Недавно для обучения работе с Atmel AVR микроконтроллерами был куплен один из самых простых и недорогих программаторов USBASP USBISP AVR Programmer вот такого типа:
USBASP USBISP AVR Programmer

Данный программатор является одним из вариантов схемы проекта USBasp, вот оригинальный сайт:
USBasp

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

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

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

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

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

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

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

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

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

Как обновить прошивку USBAsp через Arduino Uno

Прошивка USBASP

Я купил программатор USBasp на Dx.com чтобы использовать с Arduino IDE для прошивки Arduino Pro mini.

Всё работало нормально, но выдавало вот такую ошибку:



〉 avrdude: warning: cannot set sck period. please check for usbasp firmware update

В-общем требовалось обновление прошивки программатора USBasp.

Гугление в Интернете выдало вот такое решение:

    1. Качаем обновление прошивки отсюда.
    2. Распаковываем, и лучше сразу положить новую прошивку в папку с avrdude (у меня это было здесь: C:\Program Files (x86)\Arduino\hardware\tools\avr\bin).
    3. Подключаем USBasp программатор к Arduino Uno по схеме:
      arduino-usbasp
    4. На программаторе ставим джампер в позицию J1 (для этого я воспользовался скрепкой). Стоит отметить, что программаторы бывают разные, а значит и джампер может отличаться:
      USBasp2
    5. Подключаем Arduino Uno, запускаем Arduino IDE, выбираем ArduinoISP и загружаем
      2016-01-26 23-35-49 Скриншот экрана
    6. И нужно запомнить com-порт, к которому подключена Arduino Uno (Инструменты ⇒ Порт).
  1. Запускаем командную строку. Переходим в папку C:\Program Files (x86)\Arduino\hardware\tools\avr\bin. Проверяем подключение к USBasp, для этого вводим следующую команду: avrdude -C ../etc/avrdude.conf -c avrisp -P COM2 -b 19200 -p m8 -v (замените com-порт на ваш). Если всё в порядке, Вы получите вот такой результат:
    Connect USBasp
  2. Теперь прошиваем наш программатор вот этой командой: avrdude –C ../etc/avrdude.conf –c avrisp –P COM2 –b 19200 –p m8 –U flash:w:usbasp.atmega8.2011-05-28.hex
    и должны получить вот такой результат:
    Flash
  3. Поздравляю! Теперь можно использовать программатор по назначению!

 

Как «перепрошить» китайский программатор USBasp

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

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

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

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

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

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

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

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

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

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

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

Если «прошить» USBasp у вас не получается, скорее всего:
— неправильно подсоединены выводы – попробуйте поменять местами MOSI и MISO, предварительно убедившись, что всё соединения имеют надежный контакт!
— неправильно выбран тип микроконтроллера – выберите его вручную!

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

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

ПЕРЕПРОШИВКА USBISP В USBASP

Примерно года два назад я заинтересовался программированием микроконтроллеров AVR. Изучение шло не слишком быстро, так как тема достаточно сложная, но все-таки, мной были собраны и доведены до ума несколько устройств в корпусах, с применением микроконтроллеров семейства Tiny. За это время успел обзавестись двумя программаторами, один собрал сам, это простой и всем известный программатор Громова, второй заказал с Али экспресс, по цене 3 доллара это программатор USBISP. 

Программатор 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,  в которой можно установить порядок действий, запускаемых впоследствии в один клик. Например, стирание файла, последующая запись и верификация. Есть и другие функции на выбор. 

KHAZAMA рабочее окно

Перейдем к делу, что же нам требуется сделать для того, чтобы перепрошить программатор? Программаторы могут идти в двух вариантах, в алюминиевом корпусе, и без корпуса. Если со вторым вариантом все понятно, то с первым, если программатор в корпусе, нужно аккуратно стянуть его в сторону разъема USB на программаторе. Снимается он довольно легко, и с этим проблем быть не должно. На контакты разъема программирования с обратной стороны будет наклеена резиновая изоляционная прокладка, отклеиваем её, она нам будет мешать при пайке. При сборке в корпус не забываем приклеить её обратно, во избежание замыкания корпуса с разъемом для программирования. Далее переворачиваем и смотрим на программатор с обратной стороны. Вы должны увидеть в зависимости от разводки вашей платы следующее:

Места где нужно удалить припой

Но возможно существуют и другие варианты разводки программаторов у китайцев. Что нам требуется здесь сделать? Требуется удалить припой с двух или трех контактов на плате программатора, в зависимости от разводки вашей платы. По информации с того сайта по которой я перепрошивал свой программатор, была представлена следующая разводка:

Места где нужно удалить припой программатора

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

Перемычка на программаторе

Я воспользовался вместо кусочка провода, выводом, откушенным от резистора. И разумеется, также удалил припой с контактов на программаторе, обозначенных буквами А и В. Только в моем случае таких контактов было два.

Места где нужно удалить припой на моей версии

Как мы видим на фото выше, перемычка из вывода резистора уже запаяна мной к контактам самопрограммирования программатора UP. На фото ниже можно убедиться в этом. Заодно мы можем видеть, что на контактах А и В отсутствует припой.

Новая версия программатора фото

Припой удаляется с помощью демонтажной оплетки. Мы вытягиваем кусочек оплетки, обмакиваем его в спирто канифольный флюс, и, прогревая жалом паяльника, кладем на контакт, придавливая сверху паяльником. В результате припой с контактов должен полностью перейти на оплетку так, чтобы между ними не было замыкания. В чем и нужно убедиться, прозвонив мультиметром в режиме звуковой прозвонки. Для использования совместно с программаторами  USBISP и USBASP мной был сделан переходник, который оказался удобен для программирования микроконтроллеров при отлаживании на цанговых макетных платах, и который я использовал для программирования микроконтроллера этого программатора:

Переходник для макетной платы

К чему я писал в начале статьи о программаторе Громова? К тому, что для прошивки нам потребуется любой другой программатор. Можно точно такой же USBISP. То есть, если у вас нет второго программатора, о перепрошивке USBISP в USBASP можно забыть. А можно спаять по такому случаю программатор Громова, и прошить им микроконтроллер этого программатора. Схема программатора Громова простая, и детали необходимые для сборки, довольно дешевые. Допустим, у вас есть второй программатор. Тогда нам нужно подключить свой программатор к шлейфу программатора USBISP в соответствии с рапиновкой разъема. Её мы можем видеть на следующем рисунке:

Распиновка шлейфа программатора

Контакты в шлейфе идут одинаково с обоих концов. Нам потребуются соединить программаторы между собой, аналогично обычному прошиванию микроконтроллера. То есть выводы VCC, GND, MISO, MOSI, RESET и SCK обоих программаторов нужно соединить. Дополнительное питание, если прошиваем через USB программатор, USBISP, USBASP или другой с которого приходит питание с USB на прошиваемый микроконтроллер, можно не подавать. Если прошиваем через программатор Громова, то питание нужно подать. После прошивания выпаиваем перемычку, замыкаем те два или три контакта, с которых мы удаляли припой капелькой припоя, и, не собирая в корпус, подключаем наш новоиспеченный программатор USBASP к USB порту компьютера. Операционная система должна запросить драйвера. Появится следующее окно:

Определение USBASP в системе

Соглашаемся с установкой и указываем вручную путь к папке 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. Скачать её также можно в архиве в конце статьи.

Khazama AVR Programmer

Как уже писал выше про установку фьюзов, здесь с этим все отлично, можно, как выбирать из ниспадающего списка, так и устанавливать вручную галочками. 

Выставление фьюзов в программе Khazama

Я прошивал Tiny-2313, но эта оболочка поддерживает, помимо этого микроконтроллера, еще множество других типов МК. После запуска программы нам нужно выбрать наш микроконтроллер из списка, у меня как мы видим на скрине, выбран Tiny2313. Также в ней есть функция размещать окно поверх остальных, это расположенная справа с краю пиктограмма канцелярской кнопки. Прошивка для микроконтроллера программатора MEGA-8, HEX файл, также прикреплена в общем архиве. Фьюзы при прошивке изменять не нужно. Желаю всем удачной прошивки! Автор AKV.

Перепрошивка китайского USBAsp программатора — Lifeview… — LiveJournal

? LiveJournal
  • Find more
    • Communities
    • RSS Reader
  • Shop
  • iOS & Android
  • Help
Login
  • Login
  • CREATE BLOG Join
  • English (en)
    • English (en)
    • Русский (ru)
    • Українська (uk)
    • Français (fr)
    • Português (pt)
    • español (es)
    • Deutsch (de)
    • Italiano (it)
    • Беларуская (be)

Программатор USBasp. | Маленький блог скромного айтишника.

Для прошивки своих поделок на 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: 5 523

Прошивка микроконтроллеров Atmega через USBasp

 Прошивка микроконтроллеров Atmega без arduino через USBasp:

Существуют простые и дешевые программаторы для прошивки м/к Atmega ,которые поддерживает среда Arduino IDE- необходимо просто выбрать соотвествующий программатор USBasp в настройках Arduino IDE.USBasp  необходим,если вы просто прошиваете микроконтроллеры Amtel.Программатор основан на м/к Atmega 8 и использует програмный USB.

Цена такого программатора на ebay.com около 3$.Он имеет выход питания 5v/3.3 v(переключается перемычкой JP1) ,а так же соотвествующие выводы SCK,MISO,MOSI,RESET для подключению напрямую к микроконтроллеру.На картинке показаны выводы на самом программаторе — на разъеме шлейфа соответственно будет зеркально относительно ключа (у 5 вывода),не забывайте об этом.

Для работы в операционной системе Windows необходимы  драйвера.Linux же не требует их.

Данный программатор легко превратить в друое устройство,например в I2C-USB переходник , USB контроллер с GIO или контроллер чтения термодатчиков DS18B20.

 Программирование через USBasp в Arduino IDE

Для программирования микроконтроллеров,подключенных через USBasp в Arduino IDE необходимо выбрать его в программе согласно скриншоту.

 

 

 

 

Программирование осуществляется через меню файл,выбрав пункт 

 «Загрузить с помощью программатора».Не забываем выбрать микроконтроллер в меню «сервис» ->»плата».

 

 

 

 

Программирование через USBasp утилитой avrdude

Утилиту avrdude можно найти в папке /hardware/tools/ в дистрибутиве Arduino IDE или скачать в интернете.

Для того,чтобы залить прошивку в микроконтроллер необходимо выполнить команду:

 avrdude -c usbasp -p m8 -U flash:w:имя_файла.hex . где -p m8 — это модель микроконтроллера.В данном случае atmega 8.

Дополнительно так же можно установить фьюзы дописав :-U hfuse:w:0xХХ:m -U lfuse:w:0xХХ:m .Где ХХ — соотвествующие фьюзы микроконтроллера ,необходимые для конкретной прошивки.

Обычно прошивку можно осуществить через команду make flash ,если Вы имеете исходный код прошивки и установленную WinAVR.

В других средах программирования выбор программатора осуществляется через соответсвующее меню программы.

 

Обратите внимание,

Что на некоторых микроконтроллерах с завода,например на серии Attiny включен по умолчанию фьюз CKDIV8 ,который устанавливает делитель на 8 и из-за этого USBasp не программирует такие микроконтроллеры пока не установить перемычку JP3 на USBasp.Для настройки фьюзов воспользуйтесь калькулятором фьюзов чтобы выставить нужные настройки , в том числе выключить данный делитель.Фьюзы прошиваются через avrdude командой  avrdude -c usbasp -p имя_м/к -U lfuse:w:0xХХ:m .

Пример для установки фьюзов attiny85 для внутреннего генератора 8мгц с выключенным делителем на 8 : 

avrdude -c attiny85 usbasp -p -U lfuse:w:0x62:m

При программировании через Arduino IDE можно установить нужные фьюзы выбрав в меню «записать загрузчик»,выбрав перед этим необходимый микроконтроллер.

 

 

«Допиливание» программатора.

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

При программировании некоторых микроконтроллеров(например у серии ATtiny) возможны не фатальные ошибки.Хотя и  программирование микроконтроллера происходит,но обновить прошивку микроконтроллера на программаторе рекомендуется.

Что для этого нужно ? Вы можете использовать плату arduino как программатор или использовать другой USBasp программатор.Для программирования используются те же выводы SCK,MISO,MOSI,RESET.

Порядок действий для прошивки через arduino:

1. Подключаем выводы SCK,MISO,MOSI,RESET к Arduino согласно инструкции.

2. Установавливаем перемычку self programming (на фото обозначена как JP2),обычно место для перемычки не распаяно.

3. Качаем последнюю версию прошивки usbasp.2011-05-28 тут и кидаем в папку путь_к_папке_ардуины_/hardware/tools/.

4. Перейдем в консоль (cmd или bash) Вашей операционной системы в папку через команду cd путь_к_папке_ардуины_/hardware/tools/ и далее вводим команды для Windows,не забывем указать верный порт,на котором подключена Arduina:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -v  

Программа выдаст сообщение ,где покажет состояние фьюзов и другую информацию:

Если Вы видите такие же сообщения- значит подключено все правельно и можно прошивать командой:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:usbavr.hex -U lfuse:w:0xef:m -U hfuse:w:0xc9:m

Успешная прошивка:

 

 

Для прошивки из Linux все аналогично, заменяется часть строки:

 

./avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 …

 

Порядок действий для прошивки через другую USBasp:

Прошивка аналогична прошивке обычного микроконтроллера: подключаем выводы SCK,MISO,MOSI,RESET один в один шлейфом идущим в комплекте с программатором.Не забываем про перемычку JP2.

Указываем опцию -c usbasp вместо -c avrisp

Руководство по обновлению прошивки

USBASP — Electronics-Lab

Программатор USBASP является важным инструментом / аксессуаром для инженеров встраиваемых систем / разработчиков прошивки. Это USB ICSP (внутрисхемный последовательный программатор), который позволяет разработчикам легко загружать прошивки / загрузчики на микроконтроллеры AVR. В отличие от того, что вы найдете для последовательных программистов, таких как преобразователи USB-TTL, он не использует выделенный чип, поскольку он работает на atmega88 (или atmega8), и использует драйвер USB только для прошивки без специального контроллера USB.

Программист USBASP

Хотя этот подход с драйвером USB только для микропрограмм увеличивает его совместимость, он также представляет серьезную проблему для программиста, поскольку требует регулярных обновлений для совместимости с усовершенствованиями в программировании микроконтроллеров. Одним из таких достижений является Tiny Programming Interface (TPI) , который позволяет внешним программистам получать доступ к энергонезависимой памяти (NVM) некоторых микроконтроллеров Atmel начального уровня, таких как серия ATtiny.

Хотя такие функции, как TPI , существуют уже некоторое время, использование программатора USBASP все еще является проблемой, поскольку как старые, так и новые устройства USBASP требуют обновления прошивки, прежде чем их можно будет использовать.Чтобы помочь пользователям, которым нужна эта функция, в сегодняшнем руководстве будет освещен процесс обновления прошивки на вашем программаторе USBASP до последней версии.

Необходимые компоненты

Для обновления прошивки необходимы следующие компоненты:

  • Программист USBASP
  • Arduino Uno (нано должно работать одинаково)
  • Перемычки
  • Макет

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

Подготовьте Arduino Uno

Для загрузки прошивки в USBASP требуется программист. В сегодняшнем руководстве мы будем использовать Arduino Uno в качестве этого программатора. Чтобы сделать Arduino программистом, нам нужно загрузить скетч, доступный среди примеров в Arduino IDE, на плату Arduino. Для этого выполните следующие действия:

  • Перейти к Файл > Примеры > ArduinoISP
  • Подключите плату Arduino к вашему ПК
  • Выберите порт , и тип платы и Щелкните на Загрузить

После этого плата Arduino готова к работе в качестве программиста.

Схемы

Далее нам нужно подключить USBASP к плате Arduino. Используя перемычки и макетную плату (при необходимости), соедините плату Arduino и устройство USBASP, как показано на изображении ниже:

Схема

Поскольку модель fritzing не является точной копией популярных типов USBASP, ниже представлена ​​карта контактов, показывающая, как Arduino подключается к USBASP, чтобы упростить подключение:

Arduino — USBASP

 5 В - VCC
GND - GND
D13 - SCK
D12 - MISO
D11 - MOSI
D10 - СБРОС 

Еще раз проверьте соединения, чтобы убедиться, что все сделано правильно.Если у вас есть сомнения по поводу идентификации контактов на вашем USBASP, вы можете запустить поиск в Google по контактам этой конкретной платы и использовать его в качестве руководства для подключения.

Когда платы подключены, нам нужно сделать еще одну вещь — закрыть перемычкой JP2 (выделено ниже) на плате USBASP. Без этого мы не сможем загрузить прошивку на устройство. Закройте перемычку, замкнув ее припаянными светодиодами или перемычками.

Теперь мы готовы загрузить прошивку.

Загрузка прошивки

Начинаем со скачивания прошивки. Репозиторий, содержащий последнюю версию прошивки, поддерживается на веб-сайте Томаса Фишля. На момент написания последней версии, которая, к счастью, имеет поддержку TPI , была выпущена мая 2011 года . Загрузите это.

Ключевым элементом процесса обновления прошивки является AVRDUDE. Если вы знакомы с Arduino IDE , вы наверняка видели ссылку на нее в подробном виде во время загрузки кода.AVRDUDE — это утилита для загрузки, выгрузки и управления содержимым ROM и EEPROM микроконтроллеров AVR с использованием техники внутрисистемного программирования (ISP). Самый простой способ получить AVRDUDE — загрузить его исполняемый файл, расположенный в папке Arduino -> « ARDUINO FOLDER» / Java / hardware / tools / avr / bin / , или вы можете загрузить его.

После того, как он у вас есть, следующим шагом будет поиск файла конфигурации; avrdude.conf файл, который (если следовать маршруту Arduino IDE) будет находиться в каталоге -> « ARDUINO FOLDER» / Java / hardware / tools / avr / etc /

Поместите эти два файла (исполняемый файл AVRdude и файл конфигурации ) в папку вместе с файлом .hex прошивки USBasp , которую мы только что загрузили. Это помогает сократить длину финальной команды. После этого подключите Arduino с подключенным к нему программатором USBasp к своему компьютеру и запишите порт, который был назначен Arduino вашим компьютером.

Наконец, откройте окно терминала, перейдите в папку, которую мы создали ранее, и выполните команду ниже:

 ./avrdude -C ./avrdude.conf -p m8 -c avrisp -P /dev/cu.usbmodem14101 -b 19200 -U flash: w: usbasp.atmega8.2011-05-28.hex: я
 

Убедитесь, что вы ввели правильный порт после опции -P . Если это завершится успешно без каких-либо сообщений об ошибке, значит на USBASP теперь установлена ​​последняя версия микропрограммы, и он готов к некоторым действиям.

Вот и все для этого урока!

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

Каталожные номера:

.Прошивка обновления

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.

  1. Запрограммируйте Arduino UNO как программист.
    Подключите Arduino Uno. Обратите внимание на назначенный последовательный порт COMXX (введите номер в следующих командных строках!).
    Запустите Arduino IDE (1.6.5 для меня, но это будет работать и со старыми версиями).
    Из примеров (в меню «Файл»). Выберите «Arduino ISP».
    Выберите плату: Uno и последовательный порт к тому, что вы только что отметили.
    Выберите «Загрузить» и подтвердите, что новая прошивка была загружена.
  2. Загрузите последнюю версию прошивки USBASP с сайта Томаса Фишла, разработчика USBASP.
    Самая последняя прошивка — usbasp.2011-05-28.tar.gz
    Разархивируйте файл во временном каталоге и скопируйте usbasp.atmega8.2011-05-28.hex в c: / program files (X86) / arduino / hardware \ tools \ avr \ bin (требуются права администратора!)
  3. Откройте командную строку (Запуск от имени администратора) в c: \ program files (X86) \ arduino / hardware \ tools \ avr \ bin
    Эта папка содержит программу avrdude, которая будет использоваться для прошивки новой прошивки.
  4. Замкните перемычку самопрограммирования на USBASP.
    На моей плате было два пустых отверстия, в которые я впаял перемычку.

    Подключите Arduino к выводам программирования USBASP
    Убедитесь, что вы отключили USBASP от USB вашего компьютера!
  5. Выполните эти соединения
    Ардуино 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 |
     -----------------
     

  6. Убедитесь, что avrdude может подключаться к USBASP В командном окне Windows введите
    avrdude -C../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -v
    
     

    Если все подключено правильно, вы должны увидеть массу информации о плате USBASP, которую вы собираетесь программировать, например, этот

    ...
    Часть АРН: ATMEGA8
    ...
    
    avrdude: устройство AVR инициализировано и готово принимать инструкции
    
     

    Последнее сообщение — это знак, что все подключено, и у вас есть ATMEGA8, как и у меня на моем USBASP.

    Если вы получили сообщение об ошибке о недопустимой подписи, значит, у вас либо неисправен USBASP, либо вы допустили ошибку подключения.

  7. Предполагая, что 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)

  8. Теперь запишите новую прошивку с
    avrdude -C ../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -U flash: usbasp.atmega8.2011-05-28.hex
    
     
  9. Если процесс прошел нормально и AVDRUDE проверил новую прошивку, вы можете отключить USBASP от Arduino.
    Удалите перемычку самопрограммирования, подключите ее через USB к ПК и попытайтесь запрограммировать целевое устройство (используя Arduino IDE). Обратите внимание, что вы теряете загрузчик при использовании USBASP, используйте программу загрузчика Ника Гаммона, чтобы восстановить его.

Эта запись была размещена в Arduino. Добавьте в закладки постоянную ссылку..

Как обновить прошивку AVR USBasp prog

Распространенная причина, по которой вы хотели бы обновить эту прошивку, — это функция медленной разблокировки для дешевых (e-bay или Aliexpress) программаторов USBasp, как этот на картинке. Функция slow-sck позволяет программировать микросхемы AVR, работающие с источником тактовой частоты очень низкой частоты (например, 128 кГц).

Когда программатор USBasp печатает это предупреждение, это означает, что требуется обновление прошивки!

 avrdude -p attiny13 -c usbasp -B 1024 -F -P USB

avrdude: установите частоту SCK на 500 Гц
avrdude: предупреждение: невозможно установить период sck.пожалуйста, проверьте обновление прошивки usbasp.
avrdude: error: program enable: target не отвечает. 1
avrdude: инициализация не удалась, rc = -1
avrdude: устройство AVR инициализировано и готово принимать инструкции
avrdude: подпись устройства = 0x685ba2
avrdude: Ожидаемая подпись для ATtiny13 - 1Э 90 07

avrdude сделано. Спасибо.

 

Что вам нужно

  • два программатора USBasp (первый требует обновления, а второй записывает чип первого)
  • одна перемычка, два разъема 2 × 1 и паяльник (опционально, зависит от типа программатора)

Подготовка программатора USBasp

Нам нужно установить перемычку JP2 для программатора USBasp, который мы хотим обновить.Эта перемычка включает «самопрограммирование ISP». Может случиться так, что вам нужно будет добавить на печатную плату отсутствующий контактный заголовок для JP2. То же самое с контактным разъемом для перемычки JP3, которая активирует «Slow-SCK», когда мы будем обновлять прошивку. В конце концов, сделайте короткие соединения на печатной плате, если нет места для разъемов.

Рисунок 1 Плата программатора AVR USBasp (источник: tosiek.pl)

Рисунок 2 Схема программатора USBasp AVR

Скачивание последней прошивки

Программное обеспечение поддерживается Томасом Фишлем, автором программы USBasp, и его можно найти на его официальной странице загрузки — https: // www.fischl.de/usbasp/.

 cd $ HOME
wget https://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz
tar -xvf usbasp.2011-05-28.tar.gz
 

Прошивка микросхемы программатора USBasp

На этом этапе мы уверены, что перемычка JP2 первого программатора, которую мы хотим обновить, находится на своем месте (пока JP3 не установлен). Теперь мы воспользуемся вторым программатором USPasp, чтобы записать новую прошивку в чип первого программатора. Итак, нам нужно подключить первый программатор USBasp и второй программатор с помощью разъемов IDC-10, а затем подключить второй программатор к компьютеру с помощью разъема USB.

 cd $ HOME / usbasp.2011-05-28
avrdude -p atmega8 -c usbasp -U flash: w: bin / firmware / usbasp.atmega8.2011-05-28.hex: i -F -P usb
 

Проверка

После обновления прошивки нам нужно снять перемычку JP2 и установить JP3 (Slow-Clock).

 avrdude -p attiny13 -c usbasp -B 1024 -F -P USB

avrdude: установите частоту SCK на 500 Гц
avrdude: устройство AVR инициализировано и готово принимать инструкции

Чтение | ################################################ | 100% 0.02с

avrdude: подпись устройства = 0x1e9007 (вероятно, t13)

avrdude: safemode: Предохранители исправны (E: FF, H: FF, L: 7B)

avrdude сделано. Спасибо. 

Вот и все! Теперь, если установлен JP3, вы можете программировать микросхемы AVR, работающие с очень низкими частотами.

.

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

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