Программы для прошивки avr через usbasp

Обновлено: 21.11.2024

Как правило, есть два способа загрузить программу в Arduino:

  1. Способ USB/последовательного соединения
  2. Метод интернет-провайдера

Первый метод является наиболее распространенным методом, который реализуется с использованием микросхемы/преобразователя адаптера USB-последовательный порт. Например, CT-UNO использует микросхемы FTDI FT23x, которые являются популярными микросхемами адаптера USB-to-serial, а BBFuino требует преобразователя USB-to-serial UC00A для загрузки программы. В то время как оригинальный Arduino UNO использует Atmega32u4 в качестве микросхемы USB-to-Serial (аналогично CT-UNO). Метод, примененный к CT-UNO, можно применить и к Arduino UNO.

Еще один метод — это метод ISP, при котором требуется программист ISP. ISP (внутрисистемное программирование) — это метод, используемый для программирования новых пустых чипов Atmel AVR. Если в микросхемы Atmel AVR не загружена прошивка загрузчика, можно использовать метод ISP для загрузки программы в микросхемы; Метод загрузчика не работает. Как и в руководствах «Использование ISP Programmer для записи загрузчика в Arduino» и «Запись загрузчика Arduino с помощью AVR USBasp», мы использовали ISP для записи загрузчика в Arduino. В этом руководстве показано, как загрузить программу в Arduino с помощью программатора ISP — AVR USBasp, и в этом руководстве есть 3 сеанса:

  1. Загрузить программу в CT-UNO
  2. Загрузить программу в BBFuino
  3. Загрузить программу в автономный Arduino

Введение

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

Заголовок ISP состоит из контактов 2×3. Вы заметите, что рядом с заголовком ISP есть метка «1» или метка со стрелкой. Эта метка указывает, что контакт рядом с ней является контактом 1 разъема ISP.

Прежде чем перейти к следующему шагу, убедитесь, что на вашем ПК установлен драйвер AVR USBasp. Если нет, загрузите драйвер AVR USBasp и следуйте инструкциям в руководстве пользователя AVR USBasp.

Сеанс 1: Загрузка программы в CT-UNO

Сеанс 2. Загрузка программы в BBFuino

BBFuino использует микросхему ATmega328 вместо микросхемы ATmega328P (на момент написания этого руководства).

Разница между ATmega328 и ATmega328P заключается в том, что в ATmega328P используется технология Atmel picoPower, а в ATmega328 ее нет. Идентификационная подпись ATmega328 и ATmega328P тоже различается. ATmega328 имеет сигнатуру 0x1E 0x95 0x14, а ATmega328P имеет сигнатуру 0x1E 0x95 0x0FB. В остальном ATmega328 и ATmega328P во всех смыслах одинаковы архитектурно. Для загрузки скетчей в ATmega328 требуется некоторая модификация конфигурации:

Затем подключите головку кабеля программатора ISP к разъему ISP BBFuino. Пластиковый наконечник наконечника радужного кабеля должен находиться на той же стороне, что и этикетка «ISP» на BBFuino.

Процедура загрузки скетчей в BBFuino аналогична сеансу 1:

Занятие 3. Загрузка программы в автономный Arduino

Создайте схему автономного Arduino, как показано ниже:

Рисунки ниже будут хорошим ориентиром при подключении AVR USBasp и автономного Arduino:

Источник: Arduino.cc

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

Процедура загрузки скетчей в автономный Arduino аналогична сеансу 1. Выберите «USBasp» в меню «Инструменты» > «Программист» и выберите меню «Загрузить с помощью программатора».

Процесс загрузки завершен, когда в Arduino IDE отображается сообщение «Выгрузка завершена».

Отлично! Я закончил делиться методом ISP для загрузки скетчей в Arduino, надеюсь, он будет полезен, и если у вас есть какие-либо вопросы, пожалуйста, обсудите их на нашем техническом форуме, поскольку мы редко проверяем раздел комментариев на учебном сайте. Обратите внимание, что для этого метода есть ограничение, то есть прошивка загрузчика заменяется исходным кодом примера мигания. Чтобы вернуться к загрузке скетчей с помощью USB, вам нужно записать загрузчик в микросхему на плате Arduino. См. Запись загрузчика Arduino с помощью AVR USBasp, чтобы записать загрузчик на Arduino с помощью AVR USBasp.

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

Учебное пособие по Arduino. Мастер-класс Arduino на уровне встроенного регистра C

Также посетите страницу выпуска, чтобы ознакомиться с библиотекой аппаратных абстракций на уровне регистра Embedded C и кодом для AVR.

Введение

Это руководство проведет вас через процесс настройки Atmel Studio для прошивки плат Arduino на основе AVR из Atmel Studio с использованием USBasp. Вы также узнаете, как установить драйверы USBasp.

Чтобы прошить плату Arduino или любую плату AVR с помощью интерфейса ISP, USBasp является дешевым и лучшим вариантом. Он поддерживает широкий спектр микроконтроллеров AVR и прост в использовании.

Использование AVR USBasp для программирования платы Arduino даст вам больше места во флэш-памяти, чем при программировании через последовательный порт USB. По умолчанию платы Arduino используют загрузчик для программирования себя без использования какого-либо внешнего программирующего оборудования, но для этого платы Arduino используют 2 КБ флэш-памяти для загрузчика. Если вы используете USBasp, вы можете использовать эти дополнительные 2 КБ для своей прошивки, и ваша программа начнет выполнение без каких-либо задержек, которые в противном случае вызывает загрузчик.

Прежде чем продолжить, вы должны установить Arduino IDE, так как мы будем использовать avrdude из раздела Установка Arduino. Если вы хотите узнать, как установить, перейдите по ссылке.

Чему вы научитесь

  • Как установить драйверы USBasp в Windows 10?
  • Как использовать USBasp в Atmel Studio?
  • Как прошить Arduino UNO с помощью USBasp от Atmel Studio?
  • Как прошить Arduino NANO с помощью USBasp от Atmel Studio?
  • Как прошить Arduino от Atmel Studio?

Этапы настройки

Необходимое время: 15 минут.

Как установить драйверы USBasp и настроить Atmel Studio для Flash с помощью USBasp

Самый лучший и простой способ установить драйверы USBasp — использовать установщик USB-драйверов Zadig.

Вы должны увидеть значок ‘!’ рядом с USBasp.

В левом углу вы увидите сообщение «Найдено 1 устройство».

Выберите 'libusb-win32' и нажмите 'Установить драйвер'.

Обычно установка драйвера занимает несколько минут.

Сообщение об успешном завершении отображается, если все в порядке.

Откройте Диспетчер устройств, чтобы проверить установку. Метки ‘!’ быть не должно.

Откройте Atmel Studio и выберите Меню -> Инструменты -> Внешние инструменты.

Будет создана новая запись.


Название: USBasp

Команда: C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

Аргументы: -C"C:\Program Files (x86)\arduino\hardware\tools\avr\etc\avrdude.conf" -v -p atmega328p -c usbasp -U flash:w:"$(ProjectDir)Debug\$ (TargetName).hex":i

Выберите «Использовать окно вывода»

Измените параметр -p в зависимости от вашего чипа AVR.

Микроконтроллер Arduino UNO / NANO > -p atmega328p
Микроконтроллер Arduino MEGA > -p atmega2560

Обязательно проверьте правильность ориентации контактов.

Перейдите в Меню -> Инструменты -> USBasp. Вы должны увидеть такой экран:

Учебники, советы и рекомендации по микроконтроллеру AVR, встроенной электронике, Интернету вещей и многому другому!

AVRdude — отличная программа для записи шестнадцатеричного кода в микроконтроллер Atmel AVR. USBasp — отличный программатор Atmel AVR на базе USB. В этом уроке мы увидим, как использовать AVRdude для записи шестнадцатеричных файлов в микроконтроллер AVR с помощью USBasp.

AVRdude доступен для установки в Windows и Linux. Его можно загрузить с портала загрузки avrdude, указанного ниже.

Введение

Для программирования микроконтроллера AVR вам понадобится файл .HEX. Это не что иное, как машинный код для микроконтроллера. Этот файл генерируется ассемблером AVR, который преобразует ассемблерный код в машинный код. Ассемблерный код может быть создан сторонним программным обеспечением кросс-компилятора C или может быть написан от руки. Обычно все используют Atmel Studio или среду Arduino для написания программ на языке C. После компиляции эти инструменты создают файл .hex в качестве выходных данных.

Загрузите и распакуйте этот исполняемый файл в подходящую папку. Я лично использовал usbasp и avrdude на платформах Windows 7 и Windows 10.

ПРИМЕЧАНИЕ 1. Убедитесь, что путь к папке avrdude добавлен в переменную среды PATH, иначе «avrdude.exe» не будет доступен из любого случайного каталога в командной строке. Обратитесь к этой странице, чтобы узнать, как добавить путь к переменной среды PATH.

ПРИМЕЧАНИЕ 2. При подключении оборудования USBasp к компьютеру с Windows 10 вам потребуется загрузить и установить драйверы для него.

Подключения

– Подключите USBasp к ПК.
– Подключите контакты программирования SPI USBasp к микроконтроллеру AVR. На следующем рисунке показан пример принципиальной схемы. Если у вас другой AVR, подключите контакты MOSI, MISO, SCK, RESET и GND этого uC к соответствующим контактам USBasp.

– Подайте питание +5В на микроконтроллер.
– VIMP: Если вы записываете новый микроконтроллер, закройте перемычку Slow Serial Clock на USBasp. Поскольку многие новые микроконтроллеры запрограммированы на заводе для внутреннего генератора с частотой 1 МГц. USBasp использует очень высокоскоростные последовательные часы для более быстрого программирования. Таким образом, вам придется специально указать USBasp использовать медленные последовательные часы. Эта настройка осуществляется вышеупомянутой перемычкой.

ПРИМЕЧАНИЕ. Если у вас есть uC с включенным внутренним генератором, и после программирования вы не планируете менять его фьюз-биты обратно на настройку внешнего тактового генератора, вы можете пропустить кварц.

Выполнение AVRdude:

К счастью, AVRdude — это инструмент командной строки, так что вы можете быть уверены в том, что делаете с вашим UC. К сожалению, AVRdude — это инструмент командной строки, поэтому вам придется потратить немного времени, чтобы ознакомиться с ним 🙂

  • Если вы НЕ добавили путь avrdude к системному пути, выполните следующую команду с вашим путем. В противном случае пропустите этот шаг.
  • Чтобы записать шестнадцатеричный файл, введите следующую команду. Рассмотрим, например, имя моего шестнадцатеричного файла io.hex :

Вы должны увидеть что-то вроде этого:

Вот и все. Это так просто! 🙂

Пояснение к команде

avrdude –c usbasp –p m16 –u –U flash:w:io.hex

-c : Указывает тип программатора. Поскольку мы используем программатор USBasp, упоминается аргумент «usbasp».

-p : Процессор. Мы используем ATmega16, отсюда и «m16». Примечание. ATmega16 имеет два варианта: «ATmega16L» (медленная версия) и «ATmega16» — обычная версия 16 МГц. Однако сигнатура их устройств одинакова, поэтому вам придется использовать «m16» в качестве параметра для обоих AVR. Это относится ко всем AVR, имеющим варианты «L».

-u : отключает поведение по умолчанию, при котором считываются фьюзы три раза перед программированием, а затем проверяется в конце программирования, что фьюзы не изменились. Всегда используйте эту опцию. Много раз случается, что мы забываем включить питание +5В AVR, тогда в конце цикла программирования avrdude обнаруживает несовместимые предохранители и пытается их перепрограммировать. Так как питания нет, фьюзы программируются неправильно и весь микроконтроллер глючит (средство становится бесполезным). Поэтому всегда используйте эту опцию.

Выполнить операцию с памятью. Можно указать несколько параметров ‘-U’ для работы с несколькими блоками памяти в одном и том же вызове командной строки.

Поле memtype указывает тип памяти для работы.

калибровка Один или несколько байтов данных калибровки RC-генератора.
eeprom EEPROM устройства.
efuse Расширенный байт предохранителя.
flash Флэш-память устройства.
fuse Байт предохранителя в устройствах, которые имеют только один байт предохранителя.
hfuse Старший байт предохранителя.
lfuse Младший байт предохранителя.
lock Байт блокировки.

Поле op указывает, какую операцию выполнять:

r читать указанную память устройства и записывать в указанный файл
w читать указанный файл и записывать его на указанное устройство память
v прочитать указанную память устройства и указанный файл и выполнить операцию проверки

Укажите шестнадцатеричное имя файла. Если файл находится не в текущем каталоге, укажите имя файла с соответствующим путем.

Формат указывать не нужно, для шестнадцатеричных файлов avrdude автоматически определит формат.

Хитрость, чтобы сделать это быстро: пакетный файл:

Очень скучно каждый раз вводить такую ​​длинную команду при программировании УК. Поэтому, чтобы избежать этого, вы можете создать нечто, называемое пакетным файлом. Это текстовый файл, содержащий ряд команд, которые будут выполняться командным процессором DOS. Чтобы создать пакетный файл, выполните следующие действия:

  • Открыть блокнот
  • Введите нашу команду avrdude. то есть скопируйте и вставьте следующую строку в блокнот.
    avrdude –c usbasp –p m16 –u –U flash:w:io.hex
  • Сохраните файл с именем «burn.bat» и поместите его в каталог, в котором находится шестнадцатеричный файл.

Теперь всякий раз, когда вы перекомпилируете свою программу и хотите ее записать, просто дважды щелкните на файле burn.bat. Это выполнит введенную нами команду avrdude.

Возможные ошибки и проблемы


1)не удалось найти usbasp:

найдено 5 шин
найдено 5 шин
avrdude: ошибка: не удалось найти USB-устройство «USBasp» с vid=0x16c0 pid=0x5dc

Это происходит, когда USBasp не подключен или не распознается ПК. Попробуйте подключить его к другому порту USB. Убедитесь, что перемычка «Самопрограммирование» USBasp разомкнута. Всегда отключайте AVR от USBasp перед подключением USBasp к ПК.

2)цель не отвечает

найдено 5 автобусов

avrdude: ошибка: включение программы: цель не отвечает. 1
avrdude: инициализация не удалась, rc=-1
Дважды проверьте соединения и повторите попытку или используйте -F, чтобы переопределить
эту проверку.

< em>avrdude готово. Спасибо.

Проверьте соединения USBasp с UC. Проверьте питание УК. Проверьте, подключили ли вы кварцевый и развязывающий конденсаторы.Если все в порядке, но вы по-прежнему получаете эту ошибку, это означает, что либо ваш uC не работает, либо его биты предохранителей сбились.

Я надеюсь, что этот пост поможет вам начать работу с AVRdude. Отзывы приветствуются.

Ссылка

Вот так:

Связанные

33 комментария

Я собрал себе программатор USBASP,
с ним и этим туториалом все работает нормально.
Но теперь мне нужно запрограммировать AT89LP4052,
которого я не могу найти в списке микроконтроллеров AVRDUDE SS.
Есть ли новый файл avrdude.conf,
где доступен этот процессор?
Если да, не могли бы вы дать ссылку на него?
Необходимо ли модифицировать какое-то оборудование,
относительно разъема ISP
для вышеупомянутого процессора,
из-за нового SS-Bit?

Большое спасибо. Я использую AVR 8,16,32 уже давно. Но с помощью ISP-программатора. Этот урок был очень полезен. Я использовал его для программирования atmega644p

Привет,
Windows только что сделала крупное обновление (Windows 10) С тех пор exe-файл вылетает сразу при запуске.
(0xc000007b)
У нас 64-битная версия и мы используем avrdude.exe версии 6.3, мы пытались установить совместимость с windows 8 или XP, но ничего не помогает
Спасибо

как установить sck на 1 МГц

avrdude.exe: установите частоту SCK на 1500000 Гц
avrdude.exe: предупреждение: нельзя установить период SCK. Пожалуйста, проверьте наличие обновления прошивки usbasp.
avrdude.exe: ошибка: включение программы: цель не отвечает. 1
avrdude.exe: инициализация не удалась, rc=-1
Дважды проверьте соединения и повторите попытку или используйте -F, чтобы переопределить
эту проверку.

avrdude.exe готов. Спасибо.
Эта ошибка показывает. как разобраться с этой ошибкой… дайте совет….

Спасибо за сообщение. Я новичок. Поэтому, пожалуйста, помогите мне начать. из каких компонентов можно построить схему с использованием uC?

Классный блог! Ваша тема сделана на заказ или вы ее откуда-то скачали?
Дизайн, подобный вашему, с несколькими простыми изменениями действительно сделал бы мой блог выдающимся.
Пожалуйста, дайте мне знать, где вы получили свою тему. С благодарностью

Это легкодоступная бесплатная тема WordPress.

попытка подключиться к устройству……
averdude: error:programm enable:target не отвечает.1
averdude:сбой инициализации,rc=-1
дважды проверьте соединение и попробуйте еще раз или используйте -F, чтобы переопределить эту проверку

avrdude done .thnku
это показывает, когда я пытаюсь запрограммировать свой микроконтроллер .. в чем проблема .. plzzz помогите ….

Возможные причины — 1) Питание цели отключено / 2) Цель работает на внутреннем низкоскоростном генераторе, и в этом случае вам придется снизить скорость программирования. / 3) У цели нет кристалла / 4) Проблемы с подключением.

Привет, я новичок в этом мире, я не могу запрограммировать свой atmega 32 для ЖК-программ, пожалуйста, помогите, это ошибка

Ссылка: main.elf
avr-gcc -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MMD -MP - MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,-cref -lm
main.o: В функции `main':
C :UsersAMIRDesktopprojectslcd interface/main.c:12: неопределенная ссылка на `LCDInit'
C:UsersAMIRDesktopprojectslcd interface/main.c:15: неопределенная ссылка на `LCDByte'
C:UsersAMIRDesktopprojectslcd interface/main.c: 18: неопределенная ссылка на `LCDWriteString'
C:UsersAMIRDesktopprojectslcd interface/main.c:21: неопределенная ссылка на `LCDGotoXY'
C:UsersAMIRDesktopprojectslcd interface/main.c:21: неопределенная ссылка на `LCDWriteString'
C:UsersAMIRDesktopprojectslcd interface/main.c:26: неопределенная ссылка на LCDGotoXY
C:UsersAMIRDesktopprojectslcd interface/main.c:26: неопределенная ссылка на LCDWriteInt
C:UsersAMIRDesktopprojectslcd interface /main.c:27: не определено ed ссылка на `LCDGotoXY'
C:UsersAMIRDesktopprojectslcd interface/main.c:27: неопределенная ссылка на `LCDWriteString'
C:UsersAMIRDesktopprojectslcd interface/main.c:36: неопределенная ссылка на `LCDByte'
C:UsersAMIRDesktopprojectslcd interface/main.c:40: неопределенная ссылка на `LCDWriteString'
C:UsersAMIRDesktopprojectslcd interface/main.c:41: неопределенная ссылка на `LCDGotoXY'
C:UsersAMIRDesktopprojectslcd interface/main .c:41: неопределенная ссылка на `LCDWriteString'
C:UsersAMIRDesktopprojectslcd interface/main.c:47: неопределенная ссылка на `LCDByte'
C:UsersAMIRDesktopprojectslcd interface/main.c:48: неопределенная ссылка на `LCDWriteString'
C:UsersAMIRDesktopprojectslcd interface/main.c:49: неопределенная ссылка на `LCDGotoXY'
C:UsersAMIRDesktopprojectslcd interface/main.c:49: неопределенная ссылка на `LCDWriteString'
make .exe: *** [main.elf] Ошибка 1

> Код завершения процесса: 2
> Затраченное время: 00:01

Правильно разместить это на форуме AVRfreaks. 🙂

Я использую микроконтроллер atmega16l и программатор usbasp
выдает эту ошибку
'avrdude' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.
Пожалуйста, помогите мне.

Это означает, что WinAVR не установлен или поврежден. Переустановите его, чтобы исправить эту ошибку.

я использую кодовое зрение AVR

Запрограммировали ли вы свой mega8 AVR прошивкой и правильными настройками предохранителей?

<р>2. Если у вас есть программатор, вы должны быть уверены, что правильно установили все необходимое программное обеспечение на свой компьютер для использования существующего «первого» программатора

<р>3. @Saurabh: у тебя есть работающий программист? Если нет, начните с 1.

Полагаю, у вас нет программиста, и вы пытаетесь собрать его первым. Также начинается с «1» и старого ПК.

Надеюсь, я смог вам помочь…

Я использую микроконтроллер atmega16 и программатор usbasp

я не могу подключить контроллер к компьютеру.

пожалуйста, помогите мне найти решение Электронная почта: [email protected]
я буду очень благодарен 2 u.

Я использую Sina Prog для программирования своего ATmega169PV с помощью USBasp. Тем не менее, я пытался депрограммировать фьюз-бит «делить часы на 8», и я не знаю, что произошло после этого, но Sina Prog больше не обнаруживает контроллер.
Я получаю эту ошибку:

avrdude: предупреждение: нельзя установить период ожидания. Пожалуйста, проверьте наличие обновления прошивки usbasp.
avrdude: ошибка: включение программы: цель не отвечает. 1
avrdude: инициализация не удалась, rc=-1
Дважды проверьте соединения и повторите попытку или используйте -F, чтобы переопределить
эту проверку.

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

Я знаю, что программатор USBasp работает, потому что я пытался запрограммировать с его помощью другой микроконтроллер, и он сработал.

Что мне делать?

Сэр,
Я использую микроконтроллер atmega8l и программатор usbasp,
во время программирования пишет, что устройство не отвечает.
пожалуйста, помогите.

Я очень ценю ваши неоценимые усилия по оказанию помощи таким новичкам, как я

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

Отличный пост, чувак,
Я пытался следовать файлу «readme» при перепрошивке USBasp и получил следующие сообщения об ошибках:

$ sudo avrdude -p m8 -c usbasp -P usb -U flash:w:main.hex

avrdude: предупреждение: нельзя установить период ожидания. Пожалуйста, проверьте наличие обновления прошивки usbasp.
avrdude: ошибка: включение программы: цель не отвечает. 1
avrdude: инициализация не удалась, rc=-1
Дважды проверьте соединения и повторите попытку или используйте -F, чтобы переопределить
эту проверку.

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

исходя из вашего сообщения выше, эта ошибка возникает, если есть проблемы с соединением между uC и USBasp.
В этом случае я просто тестирую сам USBasp без подключенного uController.

Что посоветуете по этому поводу?

Спасибо, миллион,
Aston

Это вполне ожидаемо. Если вы не подключите ATmega8 к USBasp, вы получите это сообщение.

«avrdude: ошибка: включение программы: цель не отвечает. Это указывает на то, что аппаратное обеспечение USBasp не может обнаружить подключенный к нему указанный UC. Таким образом, вы должны подключить свой UC, а затем использовать вышеупомянутую команду, чтобы записать UC.

Первое мое предположение заключалось в том, что тонкие провода, которые я использовал для подключения ATTiny10 к моему USBasp-прошивальщику, не работали, или я повредил ATTiny10 в своих любительских попытках микропайки.

Чтобы проверить, были ли это причиной, я припаял ATTiny10 и WS2812 2020 к коммутационной плате SOP16. Это позволяет мне провести некоторое тестирование на макетной плате. Это также значительно упростило пайку, снизив риск перегрева компонентов.

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

Чтобы запрограммировать ATTiny10, я попытался использовать прошивальщик USBasp, купленный на AliExpress. Я использовал этот флешер для программирования своих электрокарт, так что я знаю, что он работает. Единственная разница между ATTiny85 электрокарты и ATTiny10 заключается в том, что последняя использует протокол TPI вместо протокола ISP для программирования.

После небольшого сеанса Google я нашел веб-сайт проекта USBasp. Помимо некоторых интересных технических деталей, этот веб-сайт также предлагает загрузку прошивки. И тут я заметил, что поддержка TPI была доступна только в самой новой прошивке. Может в моем дешевом китайском USBasp была какая-то старая прошивка? Время обновления!

Чтобы разрешить обновление USBasp, необходимо закрыть JP2. В этом случае JP2 находится на обратной стороне печатной платы. Достаточно припаять короткий провод между этими точками подключения, чтобы включить режим самопрограммирования.

Затем я использовал Arduino Uno в качестве программатора. Для этого я загрузил скетч ArduinoISP в Uno. Этот скетч доступен в разделе скетчей «Примеры» среды разработки Arduino IDE. Затем я подключил USBasp к Arduino, используя следующую конфигурацию контактов:

(Обратите внимание, что синий индикатор USBasp не загорится после его подключения. Я вернусь к этому позже…)

Чтобы проверить, работает ли соединение, я использовал следующую команду в своем терминале macOS:

После выполнения этой команды avrdude попытается связаться с микроконтроллером USBasp, используя avrisp Arduino.

В этом случае я добавил флаг -U для выполнения операции с памятью:

  • Я хочу выполнить операцию с флэш-памятью микроконтроллера.
  • Я хочу записать, поэтому я указываю флэш-память записи с флагом w.
  • И самое главное: я определяю имя шестнадцатеричного файла флэш-памяти (который находится в текущей папке)

Нажимаем Enter и надеемся на лучшее…

Да! Кажется, это сработало! :) Раз уж после прошивки загорелся синий светодиод, то действительно чувствуется, что произошло что-то хорошее. Светодиоды всегда улучшают ситуацию, верно?!

Теперь, самое главное… не будьте как я: не забудьте открыть/отключить самопрограммирующуюся перемычку JP2 на задней панели USBasp! Когда он подключен/замкнут, ESPasp не сможет работать.

Итак, после повторного подключения ATTIny10 к USBasp пришло время для самой захватывающей части. Сможет ли Arduino IDE прошить ATTiny10 с помощью ATTiny10Core?

Как насчет того, чтобы просто выбрать программатор USBasp и нажать кнопку "Загрузить"?

Если вы хотите узнать больше об этом процессе перепрошивки, обязательно прочитайте отличный пост Роджера Кларка на эту тему…

Для меня пришло время начать работу над прошивкой, чтобы заставить работать светодиод WS2812 2020. Не пропустите, следите за моим блогом или подписывайтесь на меня в Twitter или Instagram.

Читайте также: