104-Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика (Bootloader).
Давайте немного отвлечемся от создания нашего робота и поговорим о том, как мы будем записывать прошивку в Arduino.
Нас, прежде всего, интересуют три платы Arduino:
— Arduino Uno – как самый распространенный вариант
— Arduino Nano – компактный вариант, удобный для применения в небольших конструкциях
— Arduino Pro Mini – дешевый компактный вариант без встроенного USB-UART преобразователя (для работы с ним понадобится внешний USB-UART преобразователь), но удобный в случае применения сети устройств.
Во всех вышеописанных платах используется микроконтроллер ATmega328 (в более старых версиях ATmega168).
Одной из главных причин выбора платы Arduino для проекта робота была возможность записывать прошивку устройства в МК не применяя программатора и каких либо дополнительных устройств. Все что нужно для прошивки микроконтроллера Arduino – это стандартный USB шнур (который входит в комплект Arduino).
Это значит, если Вы имеете Ардуину – Вы имеете любое устройство ZiChip!
Запись программы в МК через USB происходит через специальный загрузчик (Bootloader), который записан в МК при изготовлении платы. Вообще, загрузчик предназначен для работы со своим специальным программным обеспечением Arduino IDE, но в случае, когда необходимо прошить в Ардуину что-то постороннее (свой Hex-файл), есть программки позволяющее это реализовать.
Начнем, конечно, с моей программы загрузчика
GC-Uploader

Программа интересна тем, что выбранный HEX-файл будет заливаться в Ардуину автоматически после каждого его изменения. Это удобно, так как при разработке проекта каждая компиляция (обновление хекса) будет инициировать прошивку Ардуины — Вам ничего не придется делать самому! Кроме того в программе есть и ручной режим прошивки.
Следующая — маленькая и удобная
XLoader (Arduino HEX uploader)

Программка имеет аскетичный интерфейс и работать с ней предельно просто:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт, который создался при подключении Arduino к USB (скорость порта автоматически подставится при выборе типа Arduino)
— жмем Upload
Это все! Ничего сложного. Прошивка через несколько секунд будет записана в МК и автоматически запустится. Один минус – программа никак не сообщает о том, что прошивка уже записана, но это можно увидеть по прекращению мерцания светодиодов RXD и TXD на Ардуине.
XLoader использует для записи прошивки AVR Dude и в качестве протокола программирования используется STK500. Но, похоже, в настройках AVR Dude, произведена коррекция, так как использование стандартного AVR Dude с такими же настройками не дает результатов.
Автоматизация XLoader.
При разработке ПО для микроконтроллера производится очень много прошивок и всегда нужно стремиться автоматизировать этот процесс после сборки проекта — это экономит время и нервы. В данном случае автоматизация усложнена, так как программа не показывает командную строку для AVR Dude (разве что подбирать опытным путем), но некоторое упрощение процесса возможно. Делается это следующим способом – после первой прошивки не закрываем окно программы (COM порт после прошивки программа отпускает) и после следующей сборки проекта просто жмем кнопку «Upload». Конечно, сборка должна осуществляться в один и тот же Hex-файл.

Как и предыдущая, программка имеет простой интерфейс.
Процесс прошивки тот же:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт
— жмем Upload
Программа при записи открывает дополнительные окна и визуально отображает свои действия, что позволяет следить за процессом записи.
При попытке прошить Arduino Nano программа отказывалась видеть МК. Причиной стала неправильная установка скорости COM порта. По умолчанию скорость стоит 19200, а нужно 57600. Скорость порта в программе не задается явно, она прописывается в строчке «AVR Dude Params» — поменяйте в ней значение 19200 на 57600.
Автоматизация ARP Uploader.
ARP Uploader как и XLoader работает через AVR Dude, но, в отличие от XLoader, показывает командную строку. Это дает возможность использовать AVR Dude напрямую в Make или Bat файле.
Дополнительные материалы.
Драйвера Arduino.
Считаю не лишним напомнить, что для связи Arduino с компьютером в последнем должны присутствовать драйвера. Оставляю здесь архив с драйверами для Arduino (включая и старые драйвера в Old_Arduino_Drivers.zip и драйвера для FTDI-чипа в папке «FTDI USB Drivers»
Стали появляться недорогие китайские Ардуины с драйвером CH340G
Driver-CH340G.zip (10655 Загрузок)
Загрузчики Arduino
Если Вы решите собрать свою плату Arduino (а сложного там ничего нет, фактически, это голый ATmega328 или ATmega168), Вам понадобится загрузчик Bootloader который должен содержать МК для работы со средой (или программками для заливки Hex-файлов). Конечно, Вам для записи Hex-файлов в чистый МК понадобится программатор и придется выставить фьюзы.
ATmegaBOOT_168_atmega328.zip (13306 Загрузок)
Для правильной работы нужно установить фьюзы следующим образом Low: FF High: DA Ext: 05
Схемы Arduino
Фьюзы установленные по умолчанию в Arduino (только с ATmega328)
Arduino Uno
Low Fuse 0xFF
High Fuse 0xDE
Extended Fuse 0x05
Arduino Duemilanove or Nano w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05
Arduino BT w/ ATmega328
Low Fuse 0xFF
High Fuse 0xD8
Extended Fuse 0x05
LilyPad Arduino w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05
Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05
Загрузка контроллеров без использования консоли Arduino IDE
При работе с контроллерами распределенной системы довольно часто приходится перезагружать контроллеры. Использование консоли Arduino IDE для перезагрузки заказчиком не очень удобно, поскольку для каждого типа контроллеров необходимо настраивать (или проверять) тип платы и номера СОМ портов, эту работу должен выполнять персонал, знакомый с IDE, да и не каждый заказчик желает знать, что система построена на контроллерах Arduino.
В этой работе рассматриваются варианты загрузки контроллеров (Arduino на Atmega328 и Atmega32u4 и совместимого контроллера Teensy) отдельными командами и через командный файл, без использования среды IDE.
Организация USB СОМ связи плат Arduino
По организации канала последовательной связи платы Arduino можно разделить на платы с преобразователем USB — UART и платы с микроконтроллерами, которые поддерживают USB связь без внешних преобразователей. К первым относятся платы Arduino UNO, Arduino NANO, Arduino Mini, Arduino UNO Ethernet, Arduino UNO WiFi на базе микроконтроллеров Atmega328. Ко вторым – платы Arduino Leonardo, Arduino Micro, Arduino Yun Mini, Arduino Industrial 101, Arduino Leonardo Ethernet с контроллерами Atmega32u4 [1].
Загрузка контроллера Arduino (Atmega328) программой avrdude.exe
Загрузку hex файла в контроллер Arduino можно выполнить программой avrdude.exe. Эта программа входит в состав пакета консоли IDE, например, версии Arduino 1.8.5. Загрузчик avrdude.exe запускается утилитой cmd или Command Prompt, которые запускаются как показано на Рисунок 1.

Рисунок 1. Пример запуска утилиты Command Prompt.
Чтобы получить образец написания команды загрузки hex кода в контроллер Arduino на вашем компьютере выполните следующую последовательность.
• Подключите Arduino
• Загрузите Arduino IDE
• Выберите тип платы Arduino из меню >Tools > Board >
• Выберите СОМ порт платы из меню > Tools > Port >
• Установите флажок upload в закладке Preferences: меню Arduino IDE > File > Preferences > Show verbose output during > upload
• Запустите меню >Sketch > Upload
• После завершения загрузки, в окне вывода Arduino IDE консоли найдите команду с avrdude, она выглядит, например, так:
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\user-2\AppData\Local\Temp\arduino_build_628118/Blink.ino.hex:i
Для выполнения команды avrdude утилитой Command Prompt в команду необходимо ввести двойные кавычки, как показано ниже.
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" -"CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\user-2\AppData\Local\Temp\arduino_build_628118/Blink.ino.hex:i
Приведенная команда может использоваться для загрузки hex программ в контроллер Arduino с чипом Atmega328 и отдельным преобразователем USB – UART. Для контроллеров с Atmega32u4, поддерживающим USB связь без аппаратного преобразователя, для выполнения команды нужны дополнительные действия, которые описаны ниже в соответствующем разделе.
Поскольку откомпилированная программа — hex файл хранится в папке временных файлов пока открыта консоль IDE (..\AppData\Local\Temp\..), то hex файл лучше скопировать в отдельную папку, туда же скопировать загрузчик avrdude.exe и файл avrdude.conf.
После перемещения файлов (Рисунок 2), например, в папку C:\ArdIDE команда загрузки с обновленными путями доступа к файлам принимает вид, как показано на Рисунок 3.

Рисунок 2. Размещение файлов загрузчика и hex файла в отдельной папке.

Рисунок 3. Запуск загрузчика avrdude утилитой Command Prompt.
Загрузка контроллера Teensy загрузчиком teensy_post_compile.exe
После установки программного обеспечения Teensyduino контроллеров Teensy, в списке устройств консоли Arduino IDE появляются соответствующие контроллеры (см. Рисунок 4).

Рисунок 4. Список контроллеров Teensy в консоли Arduino IDE.
Образец написания команды загрузки hex кода в контроллер Teensy можно получить, выполнив последовательность, показанную выше для контроллеров Arduino. В окне вывода необходимо найти образец загрузчика — команду teensy_post_compile. Для автономной загрузки нужные файлы можно скопировать в отдельную папку, например, как показано ниже. Файлы teensy_post_compile, teensy_post_compile.exe и teensy.exe можно взять из пакета Arduino дополненного приложением Teensy.

Ниже показаны примеры команд загрузки hex файлов Blink_1.ino и Blink_2.ino в два контроллера Teensy, подключенных к компьютеру через USB хаб.
"C:\TnsIDE/teensy_post_compile" -file=Blink_2.ino "-path=C:\TnsIDE" "-tools=C:\TnsIDE" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/1 -portlabel=COM19 (Teensy 3.2) Serial -portprotocol=Teensy
"C:\TnsIDE/teensy_post_compile" -file=Blink_1.ino "-path=C:\TnsIDE" "-tools=C:\TnsIDE" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/2 -portlabel=COM23 (Teensy 3.2) Serial -portprotocol=Teensy
В этих записях порты хаба обозначены как usb:0/1A0000/0/1/1/1 и usb:0/1A0000/0/1/1/2.
Загрузка контроллера Arduino (Atmega32U4) программой avrdude.exe
Платы Arduino UNO, Leonardo, Micro и др. построены на базе микроконтроллера ATmega32U4. Этот микроконтроллер имеет встроенный USB-канал (full speed USB 2.0), поэтому загрузка программ в него отличается от рассмотренной загрузки в микроконтроллеры ATmega328 через дополнительный USB — UART преобразователь.
Номер СОМ порта контроллера Arduino указан в списке диспетчера устройств, например.

При открытии виртуального СОМ порта контроллера Arduino pro Micro (с любой частотой передачи 1200, …, 9600, … 115200 бод) происходит сброс контроллера и запуск программы пользователя. В среде МАТЛАБ программа создания виртуального порта выглядит следующим образом.
% create port. s=serial('COM15','Baudrate',9600); % 115200 fopen(s);
После закрытия виртуального СОМ порта с частотой не равной 1200 бод, например, как показано ниже
fclose(s); delete(s); clear s
происходит выполнение пользовательской программы контроллера.
Сброс контроллера и запуск загрузчика контроллера выполняется после открытия и закрытия СОМ порта с частотой 12000 бод внешней средой, например, МАТЛАБ, как показано ниже.
% create port. s=serial('COM15','Baudrate',1200); % 115200 fopen(s); pause(1.5); fclose(s); delete(s); clear s
Эту же операцию можно выполнить командой mode, как показано на Рисунок 5.

Рисунок 5. Выполнение команды mode в Command Prompt. Команда устанавливает для порта СОМ15 частоту передачи 1200 бод, что вызывает сброс контроллера и запуск загрузчика, а также временно изменяет номера виртуального порта контроллера в списке устройств.
После закрытия порта (команда fclose(s)) загрузчик контроллера создает свой виртуальный (CDC) порт, который отображается в списке диспетчера устройств с новым номером примерно на 8 секунд.

По прошествии времени существования нового виртуального порта (8 сек.), в список диспетчера устройств возвращается СОМ порт с исходным номером.

Во время существования нового СОМ порта, через него в контроллер можно самостоятельно загрузить программу пользователя, используя образец команды avrdude консоли Arduino IDE. Получение образца команды загрузчика avrdude в среде Arduino IDE аналогично варианту, приведенному выше для микроконтроллеров Atmega328. Созданный виртуальный порт исчезает из списка устройств после перезагрузки платы и в список возвращается СОМ порт с исходным номером.
Загрузчик также можно запустить, подключением контакта RST платы Arduino на землю GND.
Если автоматический сброс контроллера (через создание и отключение СОМ порта на частоте 1200 бод) не работает, загрузку устройств (Arduino Leonardo, Arduino Pro Micro) на базе на микроконтроллера ATmega32U4 можно выполнить через консоль Arduino IDE в следующей последовательности.
1. Нажмите и удерживайте кнопку «Reset» (или замкните контакт RST на землю). Последовательное USB соединение разрывается. Из списка диспетчера устройств исчезает СОМ порт контроллера.
2. Нажмите кнопку
Upload (Ctrl+U) Arduino IDE. На Рисунок 6 показано начальное состояние диспетчера устройств (слева) и Arduino IDE (справа) на этом этапе
Рисунок 6. Номер СОМ порта в диспетчере устройств и индикация процесса компиляции программы в консоли Arduino IDE.
3. Дождитесь когда индикатор статуса закончит компиляцию «Compiling» и перейдет на загрузку «Uploading», как показано на Рисунок 7.

Рисунок 7. Номер нового временного СОМ порта в диспетчере устройств и индикация процесса загрузки программы в консоли Arduino IDE.
4. Отпустите кнопку «Reset» (разомкните контакт RST). USB соединение восстанавливается. Выполняется загрузка. Окончание загрузки индикатор обозначает фразой Done uploading (см. Рисунок 8)

Рисунок 8. Номер СОМ порта в диспетчере устройств и индикация завершения загрузки программы в консоли Arduino IDE.
Загрузка контроллеров через пакетный (командный) bat файл
Автономную загрузку (без использования консоли Arduino IDE) можно выполнить при помощи пакетного (командного) файла. Пример пакетного файла (с расширением bat) для загрузки HEX файлов в два контроллера Arduino Pro Micro (Atmega32u4), подключенных к компьютеру через первый хаб, в два контроллера Teensy, подключенных к компьютеру через второй хаб, и в контроллер Arduino UNO (Atmega328) приведен ниже. Загружаемые HEX файлы и все необходимые для этого программы были предварительно помещены в общую папку, показанную на Рисунок 9.

Рисунок 9. Пример содержимого папки для автономной загрузки 5 контроллеров: Arduino Pro Micro (Atmega32u4), Teensy и Arduino UNO (Atmega328)
Пакетный файл mcLoad.bat для автономной загрузки пяти контроллеров показан ниже. Задержки по одной секунде (TIMEOUT /T 1 /NOBREAK) добавлены перед загрузкой контроллеров Arduino Pro Micro. Задержка 2 секунды введена перед загрузкой второго контроллера Teensy. После окончания загрузки всех контроллеров закрывается окно программы Teensy.exe.
echo OFF echo UPLOAD: Arduino Pro Micro 1 mode COM42 BAUD=12000 TIMEOUT /T 1 /NOBREAK avrdude -Cavrdude.conf -v -patmega32u4 -cavr109 -PCOM45 -b57600 -D -Uflash:w:micro.ino.hex:i echo UPLOAD: Arduino Pro Micro 2 mode COM43 BAUD=12000 TIMEOUT /T 1 /NOBREAK avrdude -Cavrdude.conf -v -patmega32u4 -cavr109 -PCOM44 -b57600 -D -Uflash:w:micro.ino.hex:i echo UPLOAD: Arduino UNO avrdude -Cavrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w: BlinkUNO.ino.hex:i echo UPLOAD: Teensy 1 "C:\mcLOAD/teensy_post_compile" -file=Blink_1_Teensy.ino "-path=C:\mcLOAD" "-tools=C:\mcLOAD" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/2 -portlabel=COM23 (Teensy 3.2) Serial -portprotocol=Teensy REM Delay 2 seconds: TIMEOUT /T 2 /NOBREAK echo UPLOAD: Teensy 2 "C:\mcLOAD/teensy_post_compile" -file=Blink_2_Teensy.ino "-path=C:\mcLOAD" "-tools=C:\mcLOAD" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/1 -portlabel=COM19 (Teensy 3.2) Serial -portprotocol=Teensy REM Close Teensy.exe taskkill /f /IM Teensy.exe
Отсоединение контроллера от USB линии не влияет на загрузку остальных контроллеров.
Для исключения имени Arduino из списка диспетчера устройств, например, “Arduino UNO (COMX)”, можно использовать программы, например, RegOwnersahipEx, или аппаратные клоны контроллеров Arduino, например, WAVGAT, который обозначается в списке устройств как “USB-SERIAL CH340 (COMX)”.
Библиографический список
1. Сравнение плат Arduino (таблица) digitrode.ru/arduino-comparison.html
2. Arduino Micro, shop.pimoroni.com/products/arduino-micro
3. Dr. Bob Davidov. Компьютерные технологии управления в технических системах portalnp.ru/author/bobdavidov.
Загрузка HEX в AVR Ардуино
Вторая часть про загрузку HEX файлов в микроконтроллер AVR установленный в плату Ардуино. В первой части я показал как сделать HEX файл и в куда его сохраняет программа arduino ide на компьютере. Во второй части будем использовать avrdude и программу gcUploader. Загрузим скомпилированный HEX файл.
Сегодня продолжим изучение HEX файлов. Это буде небольшое видео. Так как особо показывать нечего.
В первой части я показал как можно сделать HEX файл и в куда его сохраняет программа arduino ide на компьютере. Поэтому мы быстренько пройдём этот этап почти без объяснений. Кому, что будет не понятно смотрите предыдущее видео.
Сначала проверяем что бы к нас была подключена Ардуина и запоминаем в какой порт она вставлена. Это нам пригодиться чуть дальше.
Прошивать будем как всегда Blink. Я его часто использую потому что для его работы ничего не надо, так как мигать будет светодиод установленный на плату.
Заходим в настройки и проверяем чтобы был установлен флажок Компиляция.
Нажимаем кнопку Проверить. Этим мы скомпилируем код и сохраним его в папку на компьютере даже если у вас не подключена плата Ардуино.
Находим адрес папки где находится скомпилированный HEX файл. Я сохраню его в отдельную папку, но это делать не обязательно для работы нам хватило бы и просто этого адреса. А ещё я переименую его, так как у вас может быть несколько разных файлов.
Для того чтобы прошить HEX в плату нам нужна программа AVRDUDE. Эта программа принимает на вход скомпилированный код из ARDUINO IDE, и отправляет его в микроконтроллер AVR на котором создана Ардуино.
AVRDUDE входит в комплект программы ARDUINO IDE. Неудобство использования этой программы в том, что использовать её можно только из командной строки. После вызова этой программы надо прописать довольно много параметров.
Вот пример
«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 arduino -P COM3 -b 57600 -D -U flash:w:D:\Documents\Arduino\my_hex.hex:i
Согласитесь это не совсем удобно. Есть более лёгкий способ. Было разработано много программ-оболочек для облегчения способа прошивки. Рассмотрим одну из оболочек. Это программа «gcUploader».
Она также использует AVRDUDE который находится в папке программы, но теперь не надо вводить команды достаточно просто выбрать всё из выпадающего списка, а в поле HEX перенести файл.
Для начала выбираем Свою Ардуину и COM порт к которому она подключена.
Перетаскиваем HEX файл. И нажимаем на картинку похожую на микросхему. Если у вас установлено выводить лог, то вы увидите информацию о прошивке. Вот и всё. Микроконтроллер прошит.
Конечно вы сейчас не видите большой разницы между обычной прошивкой через ARDUINO IDE и прошивкой с помощью сторонней программы. А вот когда вы сделаете большой проект, где будут несколько библиотек которые не идут в комплекте с ARDUINO IDE и их придётся искать и устанавливать. И вам надо будет передать кому-нибудь этот проект, то вам уже не нужно будет объяснять, где взять и как установить библиотеки. Или вы не хотите чтобы кто-то мог самостоятельно изменять параметры тогда вы увидите всю прелесть этого способа.
Это вторая часть про HEX файл, но будет ещё третья. В ней я расскажу как можно использовать HEX файл в программе PROTEUS.
И если вам интересна эта тема, то ставьте лайк, пишите комментарии, и новое видео очень скоро появится на моём канале.
А пока, до встречи. И с наступающим Новым 2021 годом.
Arduino bootloader. Arduino загрузчик. Прошивка загрузчика arduino
Сегодня разговор будет про arduino bootloader и как его записать используя Arduino ide. Есть несколько способов прошить загрузчик в Ардуино. Я покажу самый простой с помощью другой платы Ардуино. Для того чтобы прошить загрузчик bootloader в arduino надо соединить две платы как на схеме. Сделать одну ардуино программатором а вторую подготовить для записи загрузчика bootloader. Так как у меня arduino nano old bootloader, поэтому такой загрузчик я и буду устанавливать. Если у вас bootloader arduino uno, то вы можете установить его.
Снимая видео про HEX файлы я случайно удалил bootloader (загрузчик) микроконтроллера. И Ардуино перестала прошиваться. Вот и тема для следующего видео неожиданно появилась. Рано или поздно, но такая проблема появится у каждого. Так, что лучше знать как с этим справиться. Сегодня я расскажу как можно загрузить bootloader даже если в Ардуино ничего нельзя загрузить.
Есть несколько способов. Я сегодня остановлюсь только на одном. Прошивка с помощью другой платы Ардуино. У меня в наличии имелась ещё одна Arduino Nano вот её загрузчик я и буду прошивать на убитую Ардуино. Кстати тоже Nano.
Сначала посмотрим что с моей не рабочей платой. При попытке загрузить скетч Blink вроде все проходит без ошибок. Плата вроде как прошивается. А вот при попытке загрузить что-нибудь другое, другой пример, появляется вот такая вот ошибка. Из этого следует, что проблема с загрузчиком. Пробовал при загрузке нажимать resset, говорят иногда помогает. Но мне не помогло. Так, что было принято решение перезаписать загрузчик микроконтроллера.
Заходим в Диспетчер устройств. Убеждаемся, что у нас ничего не слетело. Драйвера стоят правильно, плата определилась и com port показан. Ещё раз пробуем для полной уверенности. Если чуда не случилось, то переходим к прошивке.
Использование Arduino в качестве программатора
Берём хорошую плату Ардуино. Ту у которой рабочий загрузчик. Будем использовать её вместо программатора. Открываем Arduino IDE. Проверяем, что все установлено верно. Плата, загрузчик и порт.
Идём в примеры и выбираем ArduinoISP. Этот пример идёт по умолчанию со средой разработки. Прошиваем Arduino. И с этого момента эта плата становится полноценным программатором. Скетч довольно большой и что он делает я не изучал. Главное, что он выполняет свою роль.
Теперь надо соединить обе платы. Это совсем просто. Посмотрите на схему. Если у вас УНО или НАНО,
Подключаем так. 13 к 13, 12 к 12, 11 к 11. А вот дальше небольшое различие. 10 пин платы загрузчика соединяем с Resset платы без загрузчика. И соединяем +5 вольт и Земли на обоих платах.
Если у Вас Mega, то смотрите в документацию к Меге.
Подключаем правильную Ардуину к компьютеру USB шнуром. Ещё раз проверяем, чтобы всё было правильно установлено. Плата, загрузчик, порт. После этого в пункте меню Программатор выбираем Arduino as ISP и нажимаем Записать згрузчик. Иногда с первого раза загрузчик не устанавливается. Просто нажимаем ещё раз.
Теперь проверяем, что мы наделали. Разъединяем обе платы. Подключаем USB шнурком ту что была с битым загрузчиком. Заходим в меню Программатор и меняем вот на это значение.
Теперь загружаем какой-нибудь пример.
Например? выведем значение с аналогового порта. А для чистоты эксперимента, напишем что-нибудь своё.
Прошиваем и смотрим что там в com port.
Видим, что наша Ардуина прошилась, и выводит то что нужно.
Значит мы починили загрузчик.
