Atmel flip не работает на windows 7

Обновлено: 05.07.2024

Обновлять firmware микроконтроллеров через USB, без программатора очень удобно. Но с некоторых пор у меня перестала работать утилита Flip DFU на операционной системе Windows XP. Причина в том, что Flip DFU от Atmel основана на Java, и Windows XP библиотеками Java перестала поддерживаться. Конечно, давно пора переходить на Windows 7, Windows 8 и Windows 10. Но как быть тем, у кого слабый компьютер, и нет никакого желания переустанавливать Windows? К счастью, есть несколько альтернатив для Flip DFU от Atmel.

[dfu-programmer]

Консольная утилита с открытым исходным кодом [1]. Пользоваться довольно просто. В распространяемом архиве распространяется как сама утилита (dfu-programmer.exe), так и драйвер USB для устройства DFU (находится в подкаталоге dfu-prog-usb-1.2.2 архива).

Подсказку по командной строке можно получить с опцией --help:

Список поддерживаемых микроконтроллеров можно получить с опцией --targets:

Пример программирования памяти ATmega32U4 (команда flash) с предварительным стиранием (команда erase). В память flash будет записан файл myfile.hex в стандартном формате Intel HEX. Обратите внимание, что команды нужно запускать отдельными вызовами dfu-programmer.exe (для этого можно написать BAT-файл):

[Синопсис]

dfu-programmer target[:usb-bus,usb-addr] command [options] [parameters]
dfu-programmer --help
dfu-programmer --targets
dfu-programmer --version

[Описание]

Утилита командной строки dfu-programmer предназначена для поддержки совместимости с протоколом Device Firmware Upgrade (DFU) на множестве компьютерных платформ. Протокол DFU изначально был разработан компанией Atmel с целью обновлять память программ (flash) микроконтроллеров AVR, AVR32, XMEGA и 8051 при участии загрузчика (многие микроконтроллеры Atmel поставляются с завода с прошитым загрузчиком USB, это так называемый USB boot loader, подробнее см. [5, 6, 7]). Таким образом, протокол DFU + загрузчик позволяет обновлять прошивки firmware приборов прямо у потребителя. USB-загрузчики сделаны по образцу стандартного класса устройств USB DFU 1.0, но зависят от специальных расширений, определенных Atmel до такой степени, что стандартные драйверы DFU не работают.

Для использования утилиты dfu-programmer сначала подключите программируемое устройство таким образом, чтобы оно перешло в режим DFU. Переход в режим DFU зависит от микроконтроллера, например он может быть реализован нажатием кнопки HWB в момент подачи питания/подключения устройства к USB (или с помощью специального аппаратного сброса). Если микроконтроллер "чистый" (т. е. в нем прошит только загрузчик DFU), то после сброса/включения питания устройство автоматически перейдет в режим DFU. После этого программирование (или чтение) памяти микроконтроллера осуществляется одной или несколькими командами DFU. Обычно сначала нужно запустить команду очистки программируемой памяти (для этого нужно выдать команду erase), после чего выдать команду (команды) прошивки памяти определенными данными. Протокол DFU позволяет также и считывать память микроконтроллера, если это не запрещено специальными кодами защиты.

[Поддерживаемые микроконтроллеры]

Следующие имена чипов используются в параметре "target" командной строки.

MCU на основе ядра 8051:

at89c51snd1c, at89c51snd2c, at89c5130, at89c5131, at89c5132

MCU платформы AVR:

at90usb1287, at90usb1286, at90usb1287-4k, at90usb1286-4k, at90usb647, at90usb646, at90usb162, at90usb82, atmega32u6, atmega32u4, atmega32u2, atmega16u4, atmega16u2, atmega8u2

MCU платформы AVR32:

at32uc3a0128, at32uc3a1128, at32uc3a0256, at32uc3a1256, at32uc3a0512, at32uc3a1512, at32uc3a0512es, at32uc3a1512es, at32uc3a364, at32uc3a364s, at32uc3a3128, at32uc3a3128s, at32uc3a3256, at32uc3a3256s, at32uc3a4256s, at32uc3b064, at32uc3b164, at32uc3b0128, at32uc3b1128, at32uc3b0256, at32uc3b1256, at32uc3b0256es, at32uc3b1256es, at32uc3b0512, at32uc3b1512, at32uc3c064, at32uc3c0128, at32uc3c0256, at32uc3c0512, at32uc3c164, at32uc3c1128, at32uc3c1256, at32uc3c1512, at32uc3c264, at32uc3c2128, at32uc3c2256, at32uc3c2512

MCU платформы XMEGA:

atxmega64a1u, atxmega128a1u, atxmega64a3u, atxmega128a3u, atxmega192a3u, atxmega256a3u, atxmega16a4u, atxmega32a4u, atxmega64a4u, atxmega128a4u, atxmega256a3bu, atxmega64b1, atxmega128b1, atxmega64b3, atxmega128b3, atxmega64c3, atxmega128c3, atxmega256c3, atxmega384c3, atxmega16c4, atxmega32c4

[Как использовать]

Нет простых механизмов, которые позволили бы программировать несколько устройств одновременно. По умолчанию будет выбрано первое из устройств, которое совпадает по своему коду id с указанным микроконтроллером в опции target. Многие варианты target используют одинаковые коды id. Соответственно избегайте одновременного подключения к хосту программирования нескольких устройств выбранного семейства (AVR, XMEGA, AVR32 или 8051).

Однако целевое устройство может быть квалифицировано по шине USB и адресу. Это позволяет одновременно программировать несколько устройств, принадлежащих к одному семейству.

Обратите внимание, что в отличие от утилиты BatchISP [] компании Atmel, dfu-programmer будет за один запуск выполнять только одно действие. Таким образом, очистка и программирование памяти требуют выполнения отдельных команд, т. е. dfu-programmer понадобится запускать дважды (что легко реализуется с помощью командного скрипта).

configure register [--suppress-validation] data

Загрузчики контроллеров 8051 поддерживают запись определенных байт конфигурации.

dump [--force] [--bin] [(flash)|--user|--eeprom]

Стирает всю память flash. Для устройств AT90 и ATmega выполнение команды стирания должно быть сделано перед тем, как станут доступными другие команды. Процедура очистки предварительно проверяет чистоту памяти, и память очищается только в случае, если не все её данные равны 0xFF. Это поведение по умолчанию можно отменить используя --force, тогда память будет стираться принудительно.

flash [--force] [(flash)|--user|--eeprom] [--suppress-validation] [--suppress-bootloader-mem]
[--serial=hexbytes:offset] file или STDIN

--serial предоставляет способ вставлять серийный номер или любую другую уникальную последовательность байт в образ данных, который программируется в устройство. Это дает возможность использовать один файл .ihex для программирования нескольких устройств, и при этом каждое из них получит свой собственный уникальный серийный номер. Например, --serial=ABCDEF01:0x6000 запрограммирует по адресу 0x6000 байт с шестнадцатеричным значением 0xAB, по адресу 0x6001 байт 0xCD, и так далее. Здесь до двоеточия должно быть четное количество шестнадцатеричных цифр, однако их последовательность может быть любой длины (существует только ограничение на максимальную длительность командной строки). Подразумевается, что адрес смещения указывается в шестнадцатеричном формате, если он с префиксом "0x", в восьмеричном формате, если он начинается на "0", иначе подразумевается десятичный формат адреса.

Устанавливает бит защиты (security bit, или security fuse) чипов AVR32. Это предотвратит возможность чтения содержимого памяти чипа, за исключением той же сессии, в которой память была запрограммирована. Когда бит защиты установлен, то получить какой-либо доступ к памяти устройства можно только после выполнения команды erase. Очистить бит защиты, когда он установлен, можно только с помощью очистки чипа через JTAG, что также сотрет из памяти bootloader.

Отобразит байты идентификатора, по которым различают чипы.

Запустит программу микроконтроллера путем его сброса. Опция --no-reset может использоваться для запуска устройства без сброса (jump на начальный адрес программы).

Глобальные опции

Генерирует минимальный вывод в консоли.

Позволяет активировать вывод в консоли на указанном уровне подробности (используется для отладки и решения проблем).

Конфигурирование регистров

Стандартный загрузчик чипов на базе ядра 8051 поддерживает запись байт данных, которые не относятся к чипам AVR.

BSB - boot status byte
SBV - software boot vector
SSB - software security byte
EB - extra byte
HSB - hardware security byte

Получение содержимого регистра

bootloader-version - прошитая в настоящий момент версия загрузчика
ID1 - device boot identification 1
ID2 - device boot identification 2
manufacturer - код аппаратуры производителя
family - код, обозначающий семейство продукции
product-name - имя продукта
product-revision - ревизия продукта
HSB - то же самое, что и версия configure_register
BSB - то же самое, что и версия configure_register
SBV - то же самое, что и версия configure_register
SSB - то же самое, что и версия configure_register
EB - то же самое, что и версия configure_register

[Известные проблемы]

Чипы серии at90usb не делают доступными флаги защиты чтения/записи, и по этой причине команды dump или flash могут возвратить ошибку без всякой полезной информации о причине ошибки. Чтобы снять любую защиту от записи или чтения любого чипа, требуется его полная очистка. Для чипов AVR32 операция стирания через USB также снимет защиту до момента перезагрузки устройства. Чтобы снять защиту постоянно, требуется применить JTAG erase (что также сотрет и bootloader).

На платформах xNix Вам нужно быть членом группы uucp, чтобы получить доступ к устройству без прав доступа root.

[См. также]

[AVRDUDE]

Утилита командной строки с открытым исходным кодом [2]. AVRDUDE начиная с версии 6.1 поддерживает протокол DFU Flip. Получить Windows-версию можно в архиве avrdude-6.3-mingw32.zip, доступному по ссылке [3]. Распакуйте архив в любую папку на диске. Обратите внимание, что вместе с исполняемым файлом avrdude.exe в архиве находится конфигурационный файл avrdude.conf. Этот файл обязательно должен находиться на диске в одном каталоге вместе с исполняемым файлом avrdude.exe.

Подсказку по опциям командной строки можно получить с опцией -?, либо запуском без опций:

Список поддерживаемых программаторов выводится командой -c ?:

Среди этого обширного списка поддерживаемых программаторов нас больше всего интересуют опции flip1 и flip2, позволяющие задействовать загрузчик Flip DFU Atmel. Опция flip1 применяется для всех микроконтроллеров, кроме XMEGA, а flip2 применяется для XMEGA.

_________________
Fucking static initialization order fiasco

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Упорная битва с Флипом показала следующее.
- После загрузки и запуска проги МК встаёт в непонятное состояние. Несколько миллисекунд работает, потом сбрасывается и, опять таки, запускается по новой.
- После хитрых нажатий кнопок RS и HWB МК можно запустить в нормальный цикл. Только задействован делитель клоков на 8. Задержки выставляются правильно, если написать F_CPU 2000000UL, хотя кварц 16 МГц.
- Искал, где фузы ставятся, не нашёл, а нашёл Signature Bytes из 32 разрядов. Гугла молчит.
Друзья, кто мучил Флипа, подскажите, неохота метод тыка развивать. Скучно как-то.
IDE Atmel Studio 6.2, Flip 3.4.7. платка AVR USB 162 от микросина.

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Только задействован делитель клоков на 8. Задержки выставляются правильно, если написать F_CPU 2000000UL, хотя кварц 16 МГц.

_________________
Раз reset, два reset - полyчи на диске bad !
Тpанзистоp p-n-p. Plug-n-Play ?
У кого что сбоит, тот о том и говорит.

Приглашаем всех желающих 25/11/2021 г. принять участие в вебинаре, посвященном антеннам Molex. Готовые к использованию антенны Molex являются компактными, высокопроизводительными и доступны в различных форм-факторах для всех стандартных антенных протоколов и частот. На вебинаре будет проведен обзор готовых решений и перспектив развития продуктовой линейки. Разработчики смогут получить рекомендации по выбору антенны, работе с документацией и поддержкой, заказу образцов.

Жаль, что эта тема интересует только избранных, но ничего.
Видимо, по другому тему надо было назвать. Типа "Как создать рабочую МК систему не имея ничего, кроме головы на плечах".
Итак, имеем интернет и осциллограф, который у каждого электронщика есть. Дальше:
1. Покупаем кит или готовое устройство с МК с прошитым загрузчиком. К сожалению Оливекс запрашивает непотребную неконкурентную цену. Я купил платы у микросина, голые по 100 руб, готовую по 500 руб. Качество работы выше всяких похвал, срок высылки мгновенный.
2. Покупаем кабель USB A - mini B 5 pin.
3. Загружаем драйвера:
- системный, чтобы ПК увидел подключённый USB микроконтроллер AVR USB 162.
- программу Flip с сайта Атмел'а. Последняя версия 3.4.7.
Друзья, это всё. Никаких программаторов, Даже жменьки разъёмов, провода МГШВ, паяльника и описания системы Громова не надо. Источника внешнего питани +5 В не надо.
Ну а дальше, как всегда морока. Не так работает Флип, как хотелось бы.
Не так запускается прога на МК из Флипа. Я уже писал об этом. А с кнопки RESET на плате запускается грамотно. И по подключению питания на плату работает правильно.
Загрузчик хекс файлов не видит пути с русскими буквами. Но запоминает путь последнего загруженного файла.
Надо бы статью написать на эту тему. Но я не могу. Написать так, что вся АН России понять не сможет, я пожалуйста. А так, чтобы 2х2 было равно 4 не умею.

Приглашаем 30 ноября всех желающих посетить вебинар о литиевых источниках тока Fanso (EVE). Вы узнаете об особенностях использования литиевых источников питания и о том, как на них влияют режим работы и условия эксплуатации. Мы расскажем, какие параметры важно учитывать при выборе литиевого ХИТ, рассмотрим «подводные камни», с которыми можно столкнуться при неправильном выборе, разберем, как правильно проводить тесты, чтобы убедиться в надежности конечного решения. Вы сможете задать вопросы представителям производителя, которые будут участвовать в вебинаре


Делаем печатную плату. Плата только что вернулась из раствора.


Обточил, залудил, припаял детальки. Все паяльником, кроме обточки )))




Заливка прошивки в устройство

1) Устанавливаем AVRStudio5.1 с драйверами. В дальнейшем будем работать с этой программой.


2) Скачиваем программу-загрузчик Flip с сайта Atmel. И устанавливаем ее.


Скачал такую версию: FLIP 3.4.7 for Windows (Java Runtime Environement included)

3) Подключаем устройство к ПК. Появляется неизвестное устройство, как AT90USB162 DFU


4) Устанавливаем драйвер из папки С:\Program Files\Atmel\Flip 3.4.7\usb\
Появляется в диспетчере устройств следующее: LibUSB-Win32-Devices AT90USB162


Выбираем наш МК. Жмем ОК.


6) Выбираем USB и давим "Open". Если все верно, то появляется окно с распознанным МК.
Бутлоадер версии 1.0.5.


9) Выбираем файл прошивки. В поле Operations flow иконки будут зеленым отображаться. А также будет название и версия прошивки. И нажимаем "Run". Произойдет заливка, затем жмем Start Application


Внимание: файл прошивки не должен содержать в пути расположения русскиt буквы. Т.е. размещаем файл прошивки, который нам нужно закачать в корень диска С

у меня тут была основная проблема. Спасибо Mail1977

10) Устройство определилось как AVRISP mk2. Программатор готов к использованию.


Проверка работоспособности

Подключаем МК Attiny13A.


Запускаем AVRStidio и проверяем


Все работает. Спасибо Mail1977 , и 214100
Еще один программатор в коллекцию

Список деталей для самостоятельной сборки:
1) AT90USB162
2) кварц 8 Мгц
3) резистор 10к Ом (2шт) — [размер 0805]
4) резистор 22 Ом (2шт) — [размер 0805]
5) резистор 470 Ом (3шт) — [размер 0805]
6) резистор 620 Ом — [размер 0805]
7) резистор 330 Ом (4шт) — [размер 0805]
8) конденсатор 22пФ (2шт) — [размер 0805 или 1206]
9) конденсатор 100нФ (2шт) — [размер 0805]
10) светодиоды (3шт) — [размер 1206]
11) разъем USB, PLS ()
12) индуктивность (или резистор от 5 до 10 Ом)

► Печатная плата в SprintLayout ◄
Может кому пригодится эта инструкция )

Кто соберет такой же, пусть отпишутся в записи, ссылку дадут на свое устройство, интересно будет поглядеть

Нежданно-негаданно в новом 2016 году, как минимум, на двух компьютерах с Win10 и Avr Studio 5.1 одинаковым образом перестали работать avr-программаторы от слова вообще. Клон avrispmkII и самый настоящий jtagice3.

Выглядит это так: программаторы видны в списке, но сделать с ними что-то не выходит. Появляется окошко «Unable to connect to JTAGICE3», а в логе появляются несколько строк об ошибке, самой информативной из коих является одна:


Код ошибки 0x20000009 означает «No valid license». Имеется в виду, как я понял, атмеловская лицензия на драйвер Jungo. Лицензия эта в виде строки забита намертво в файле com_atmel_hil_usb.dll (найти её можно по строке Atmel_Norway). То ли срок у неё вышел (офигеть теперь), то ли драйвера все испортились из-за очередного обновления винды — неясно, но работать ничего не хочет.

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

Пришлось обновлять студию до 7.0.634, где, по слухам, проблем с драйвером Jungo уже нет.
Не сразу, не без лагов, но JTAGICE3 после обновления своей прошивки завёлся. А вот клон, который у меня очень древней версии 1.11, и которым очень удобно шить, нет.

Информация по исправлению функциональности программатора взята из обсуждений гитхаба. В файле (папка студии)\atbackend\codeCache\com_atmel_hil_usb.dll надо пропатчить один условный переход:
— для AS 6.2: изменить байт 0x74 на 0xEB по смещению 0x35F11;
— для AS 7.0: изменить байт 0x74 на 0xEB по смещению 0x2F632;
— для AS 7.0.634: изменить байты 0x0F 0x84 на 0x90 0xE9 по смещению 0x2F74C.
Говорят, там есть какая-то проблема со сбросом частоты на стандартные 125кГц, но пока не заметил.
UPD: В версии студии 7.0.790 патчить файл не пришлось, всё заработало само.

Это исправление позволит студии работать с программатором, невзирая на его неоригинальность. Но если программатор выдаёт версию менее, чем 1.18, то студия не даст работать, требуя обновления.
Есть два варианта решения:
1. Прогрейдить программатор прошивкой с версией 1.18 или выше (если есть такая возможность);
2. Убрать файлик avrispmkii_fw.zip из папки (папка студии)\tools\AVRISPmkII или его переименовать. Требование об обновлении исчезнет.

Ещё одна засада, связанная с версией ПО, поджидает пользователей консольного интерфейса atprogram.exe:


Но это решается ключом --force, который запрещает проверять версию ПО.

Может, решение не идеальное, но мало ли кому срочно надо что-то прошить, а тут такие пироги.
Интересно, кого-нибудь ещё случилась такая оказия в последнее время?

UPD от 10.05.2016:
Вчера срочно потребовалось прошить пару десятков авр приборов, и вдруг выяснилось, что атмел студия сдохла. Выдавала какие-то ошибки типа

(с десяток аналогичных). Помогла переустановка студии, но вот программаторы отказались работать (как минимум, клон авриспмк2). Все вышеперечисленные действия не помогли. В консоли он выдавал что-то вроде TCF Error code: 1, в студии при попытке подключиться к контроллеру, появлялась надпись у программатора «Disconnected». Что это было — непонятно.
Проблема решилась с помощью программы Zadig, драйвер с Jungo переставил на LibUsb 1.2.6.0, оказывается, студия нынче и так умеет. Надеюсь, хоть с этим драйвером проблем не будет.
Программаторы работают и из студии (потребовалось только перезапустить студию), и из консоли.

UPD от 14.04.2017:
Слетела неожиданно Visual Studio 2015 и Atmel Studio 7.0 всё с той же ошибкой насчёт «ErrorListPackage» и кучей подобных после установки обновлений. Переставил обе, при этом пришлось почистить все папки от старой студии:
AppData\Roaming\Microsoft\AppEnv\14.0
AppData\Roaming\Microsoft\VisualStudio\14.0
AppData\Roaming\Atmel\AtmelStudio\7.0
AppData\Local\Atmel\AtmelStudio\7.0
AppData\Local\Microsoft\VisualStudio\14.0
ProgramData\Atmel\AtmelStudio\7.0
ProgramData\Microsoft\VisualStudio\14.0
Program Files (x86)\Microsoft Visual Studio 14.0


После переустановки всё завелось (студия стала версией пожирнее и тоже с паками, как кейл 5: 7.0.1417), но клон перестал снова работать, уже с новой ошибкой:

отключение проверки версии ПО

Как обычно, переименовал файл avrispmkii_fw.zip (см. выше), хотя есть вариант отключить проверку версии ПО (в окне программирования у поля с напряжением есть кнопка настроек):

И надо ещё с помощью zadig сменить драйвер с теперь уже WinUSB (который тоже нифига не работает с клоном) на LibUsb 1.2.6.0. И всё снова заработает, как и должно.

UPD от 19.04.2017
Сегодня столкнулся с очередной странной проблемой: atprogram видела два одинаковых программатора, хотя включен был только один

два avrispmkII


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

Разбираемся как прошить Arduino Uno R3 без какого-либо программатора для прошивки загрузчика в ATMEGA328P.

Установка программного обеспечения Atmel FLIP

На плате Arduino есть два микроконтроллера - ATMEGA328P (328P) и ATMEGA16U2 (16U2). Вы можете обновить прошивку 16U2, сделав его программатором AVRISP MKII, а затем использовать Atmel Studio для прошивки 328P.

Я пробовал разные варианты, но возникали разные проблемы. Многие рекомендации плохо работали в моем случае особенно в части перепрошивки загрузчика через ПО Arduino.

Переда началом прошивки Ардуино потребуется программное обеспечение Atmel (Microchip) FLIP для обновления прошивки внутри 16U2.

Скачиваем Flip с сайта Microchip - отсюда. Устанавливаем. Не должно возникнуть никаких проблем, просто следуйте инструкциям мастера установки.

Возьмите плату Arduino, отсоедините питание и USB. Замкните на ICSP1 пины 5-6 (16U2 RESET будет в низком состоянии).

Распиновка ICSP1

Распиновка ICSP1

Выглядеть это будет так:


Далее подключите Arduino к USB. Разъедините пины на ICSP1 (5-6). В этот момент 16U2 переходит в режим DFU. Новое устройство USB должно быть распознано.

Если драйвер не устанавливается автоматически, установите его из: C:\Program Files\AtmelFlip3.4.7usb»

Перейдите в Диспетчер устройств: Win + Pause -> Оборудование -> Диспетчер устройств. Проверьте, правильно ли установлен драйвер. Он будет расположен под USB-устройствами Atmel -> ATmega16U2.

Прошивка AVRISP MKII в Arduino ATmega16U2

Мы готовы перепрошить прошивку в 16U2.

Скачайте hex файл AVRISP MKII отсюда. Отключите Arduino от USB-кабеля и питания. Замкните контакты 5-6 ICSP1. Подключите Arduino к USB. Разомкните выводы ICSP1 5-6.

Запустите программное обеспечение FLIP: Пуск -> Все программы -> Flip. Зайдите в: Настройки -> Связь -> USB. Нажмите «Открыть».

Перейдите в: Файл -> Загрузить файл HEX. Далее выберите LUFA-BOTH-AVRISP-MKII.hex и нажмите «Выполнить».


ATMEGA16U2 теперь AVRISP MKII и работает в режиме Atmel Studio. Arduino AVRISP MKII может работать в двух режимах: Atmel Studio или Avrdude. Ниже я буду говорить только о режиме Atmel Studio, так как у меня было много проблем с режимом Avrdude.

Установка Atmel Studio

Скачайте и установите Atmel Studio (включая драйверы) отсюда. После установки подключите Arduino к USB-кабелю. Оба светодиода (RX и TX) должны мигать два раза (это означает, что 16U2 находится в режиме Atmel Studio). Новое устройство будет распознано.

Установите драйверы. Если они не распознаются автоматически, вы найдете их в USB-драйверах: С:\Program Files\Atmel.

Перейдите в Диспетчер устройств, нажмите: Win + Pause -> Оборудование -> Диспетчер устройств. Проверьте, правильно ли установлен драйвер. Должно быть в Jungo Connectivity -> AVRISP MKII.


Вот теперь мы готовы прошить Arduino ATMEGA328P. Переходим к следующему шагу.

Перепрошивка загрузчика Arduino в ATMEGA328P через ATMEGA16U2

Довольно сложная часть нашего мероприятия по прошивке Ардуино. Вам нужно будет припаять некоторые провода. В основном нам нужно подключиться таким образом:

ICSP1 MISO2.Pin.1 -> ICSP MISO.Pin.1
ICSP1 SCK2.Pin.3 -> ICSP SCK.Pin.3
ICSP1 MOSI2.Pin.4 -> ICSP MOSI.Pin.4
JP2 PB4.Pin.1 -> ICSP RESET.Pin.5

Смотрите картинку ниже для понимания:


Подключите плату Arduino к USB-кабелю. Светодиоды RX и TX должны помигать два раза. Драйверы должны быть правильно распознаны (Jungo Connectivity -> AVRISP mkII). Запустите Atmel Studio. Зайдите в: Пуск -> Все программы -> Atmel -> Atmel Studio.

Перейдите в: Инструменты -> Программирование устройства. Выберите:

Инструмент -> AVRISP mkII
Устройство -> ATmega328P
Интерфейс -> ISP


Перейдите в «Подпись устройства» (Device signature) и нажмите кнопку «Читать» (Read). Вы должны увидеть правильную «подпись устройства»: 0x1E950F. Нажмите «Memories» и найдите hex файл загрузчика Arduino. Он находится в:


Вы успешно прошили 328P с загрузчиком Arduino. На следующем шаге мы вернем оригинальную прошивку 16U2.

Перепрошиваем Arduino ATMEGA16U2 в оригинальное ПО

Почти сделано. Нам нужно вернуть оригинальное программное обеспечение в ATMEGA16U2.

Отключите Arduino от питания и USB. Замкните на ICSP1 контакты 5-6. Подключите USB-кабель. Разомкните пины ICSP1 5-6.

Запустите программное обеспечение FLIP. Перейдите в: Пуск -> Все программы -> Flip -> Flip. Далее: Настройки -> Связь -> USB.

Нажмите «Открыть». Перейдите в: Файл -> Загрузить файл HEX.

Отсоедините USB-кабель и подключите его снова. Новое устройство USB должно быть распознано. Если драйвер не установлен автоматически, вы найдете его в: С:\Program Files\Arduino\drivers.

Перейдите в Диспетчер устройств: Win + Pause -> Оборудование -> Диспетчер устройств. Проверьте, правильно ли загружен драйвер. Вы должны увидеть его в: Ports -> Arduino Uno.


Теперь мы можем проверить любой скетч из примеров, типа Blink. Запустите программное обеспечение Arduino (Пуск -> Arduino).

Нажмите: Open (стрелка вверх) -> -> 01.Basics -> Blink.

Выберите COM-порт а: Инструменты -> Последовательный порт -> COM (выберите порт, на котором была распознана плата).

Нажмите значок «Загрузить» (стрелка вправо). Светодиод должен начать мигать.

Всё готово. Мы узнали как прошить Ардуино и успешно перепрограммировали ATMEGA328P без использования какого-либо внешнего программатора.

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