Как прошить ардуино нано. Как прошить Arduino Nano: пошаговое руководство для начинающих

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

Содержание

Что такое прошивка Arduino Nano и зачем она нужна

Прошивка Arduino Nano — это процесс загрузки программного кода (скетча) в микроконтроллер платы. Это необходимо для того, чтобы Arduino могла выполнять нужные вам функции.

Основные причины, по которым может потребоваться прошивка Arduino Nano:

  • Загрузка нового скетча для реализации нового функционала
  • Обновление или изменение существующей программы
  • Восстановление работоспособности платы после сбоя
  • Установка загрузчика на новую плату

Прошивка позволяет полностью контролировать работу Arduino и адаптировать ее под конкретные задачи проекта. Это основной способ программирования микроконтроллеров Arduino.

Необходимые инструменты и материалы для прошивки

Для успешной прошивки Arduino Nano вам потребуются:


  • Плата Arduino Nano
  • USB-кабель для подключения Arduino к компьютеру
  • Компьютер с установленной средой разработки Arduino IDE
  • Драйвер для Arduino Nano (если не установлен автоматически)

Дополнительно могут понадобиться:

  • Программатор (например, USBasp) для восстановления загрузчика
  • Перемычки для подключения программатора
  • Макетная плата для удобства подключения

При наличии этих инструментов вы сможете выполнить прошивку Arduino Nano в домашних условиях.

Пошаговая инструкция по прошивке Arduino Nano

Процесс прошивки Arduino Nano состоит из следующих основных шагов:

  1. Установите Arduino IDE на компьютер, если еще не установлена
  2. Подключите плату Arduino Nano к компьютеру через USB-кабель
  3. Запустите Arduino IDE и откройте нужный скетч
  4. Выберите правильную плату и порт в меню «Инструменты»
  5. Нажмите кнопку «Загрузка» для компиляции и загрузки скетча
  6. Дождитесь завершения процесса загрузки
  7. Проверьте работу загруженной программы

При правильном выполнении этих шагов ваш скетч будет успешно загружен в Arduino Nano.


Подключение Arduino Nano к компьютеру

Правильное подключение Arduino Nano к компьютеру критически важно для успешной прошивки. Выполните следующие действия:

  1. Возьмите USB-кабель с разъемом mini-USB (для Arduino Nano)
  2. Подключите mini-USB разъем к соответствующему порту на плате Arduino Nano
  3. Другой конец кабеля подключите к свободному USB-порту компьютера
  4. Убедитесь, что на плате загорелся индикатор питания
  5. Дождитесь, пока Windows обнаружит и настроит новое устройство

Если драйвер не установился автоматически, скачайте и установите драйвер CH340 с официального сайта Arduino.

Выбор правильных настроек в Arduino IDE

Для корректной прошивки Arduino Nano необходимо выбрать правильные настройки в Arduino IDE:

  1. Откройте меню «Инструменты» в Arduino IDE
  2. В пункте «Плата» выберите «Arduino Nano»
  3. В «Процессор» укажите тип микроконтроллера (обычно ATmega328P)
  4. В «Порт» выберите COM-порт, к которому подключена Arduino
  5. Проверьте, что выбрана скорость загрузки 57600 бод

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


Загрузка скетча в Arduino Nano

После настройки среды разработки можно приступать непосредственно к загрузке скетча:

  1. Откройте нужный скетч в Arduino IDE
  2. Нажмите кнопку «Проверить» для компиляции кода
  3. Если ошибок нет, нажмите кнопку «Загрузка»
  4. В нижней части окна появится индикатор прогресса загрузки
  5. Дождитесь сообщения «Загрузка завершена»

Если загрузка прошла успешно, ваша Arduino Nano теперь запрограммирована новым скетчем и готова к работе.

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

При прошивке Arduino Nano могут возникнуть следующие проблемы:

  • Ошибка компиляции: проверьте код на наличие синтаксических ошибок
  • Порт не определяется: переподключите плату или переустановите драйвер
  • Ошибка загрузки: убедитесь в правильности выбора платы и порта
  • Таймаут при загрузке: нажмите кнопку сброса на плате в момент начала загрузки
  • Поврежден загрузчик: восстановите загрузчик с помощью программатора

Большинство проблем решается проверкой подключения, настроек и переустановкой драйверов. В крайнем случае может потребоваться восстановление загрузчика.


Восстановление загрузчика Arduino Nano

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

  1. Подключите программатор (например, USBasp) к Arduino Nano
  2. В Arduino IDE выберите «Инструменты» > «Программатор» > «USBasp»
  3. Выберите «Инструменты» > «Записать загрузчик»
  4. Дождитесь завершения процесса прошивки загрузчика
  5. После успешной записи загрузчика попробуйте снова загрузить скетч

Восстановление загрузчика обычно решает большинство проблем с прошивкой Arduino Nano.


Как прошить ардуино нано

Добрый день. Работает, программа без пробле заливается через USB. Первым был последовательный программатор. Все ок.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

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

Содержание:

  • Arduino Nano не прошивается, как исправить?
  • Как прошить Arduino Pro Mini
  • Как прошить Arduino Pro Mini
  • Optiboot загрузчик для Arduino
  • Прошивка плат Arduino через Arduino nano и другие
  • Китайская Arduino Nano v3. 0, проблемы с загрузкой
  • Как прошить arduino
  • 104-Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика (Bootloader).

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Китайские Arduino Nano USB + Драйверы

Arduino Nano не прошивается, как исправить?


Загрузка скетча или прошивка контроллера Ардуино — основная операция, с которой рано или поздно сталкивается любой ардуинщик. Именно возможность быстро и без лишних проблем загрузить в память контроллера управляющую программу и стала одной из основных причин успеха платформы Arduino.

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

Обычно прошивка записывается в кристалл микроконтроллера при помощи специальных устройств, называемых программаторами. Для разных микроконтроллеров существуют различные программаторы — от специализированных до универсальных. Важным отличием Ардуино от других контроллеров является возможность залить прошивку через обычный USB кабель. Это достигается при помощи специальной программы — загрузчика Bootloader. Для прошивки не требуются лишние провода, не нужно подключать дополнительные устройства или нажимать что-то на плате.

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

Это означает, что загрузчик установлен и работает исправно. Когда подается скетч, загрузчик записывает его во флеш-память микроконтроллера. Затем эта программа подается на выполнение. Если данные не поступили, загрузчик запускает предыдущую программу. Во время выполнения программы внутри Ардуино выполняется ряд операций по инициализации и настройке среды окружения, и только после этого начинается выполнение кода. В самом коде имеются несколько основных функций, на их примере можно рассмотреть работу микроконтроллера.

Команда void setup — в ней записываются данные, которые микроконтроллер выполняет в момент загрузки, а после может про них забыть. В этой функции указываются номера пинов, к которым подключается устройство, подключаются и инициализируются библиотеки, устанавливается скорость работы с последовательным портом.

Функция void loop — в нее помещаются команды, которые должны выполняться, пока включена плата.

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

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

При загрузке скетча используется Bootloader Загрузчик. Он представляет собой небольшую программу, которая загружается в микроконтроллер на Ардуино. С помощью этой программы можно загружать скетч, не используя дополнительные аппаратные средства.

При работе загрузчика на плате будет мигать светодиод. Загрузка в Arduino IDE. Самый простой и удобный вариант загрузки кода. Уменьшение времени загрузки при помощи отключения проверки работает с любой платой Ардуино, которая использует USB соединение. Все эти микроконтроллеры используют загрузчик avrdude. Платы, которые используют загрузчик Catarina, не нуждаются в отключении проверки кода, так как этот загрузчик работает быстрее.

Сначала работа будет рассмотрена на примере программы ArduinoCommander. После ее запуска нужно нажать USB-Device. Затем нужно наддать Autodetect, чтобы Андроид-устройство выполнило поиск Ардуино и отобразило его на экране. Как только Ардуино появится на экране, нужно на него нажать. Чтобы перейти в меню, нужно щелкнуть в нижнем правом углу. В этом меню можно загрузить скетч с SD-карты. ArduinoDroid представляет собой среду разработки, компилятор и загрузчик одновременно.

Начать компиляцию скетча нужно нажав на кнопку Lightning-Button. После завершения компиляции нужно нажать на кнопку загрузки. Загрузка занимает несколько секунд. По окончании загрузки ардуино запустит на выполнение новый код.

Из этих типов памяти флеш-память и EEPROM являются энергонезависимыми, то есть информация сохраняется при выключении питания. ОЗУ используется только для хранения данных, которые имеют отношение к исполняемой программе.

Важно обратить внимание на малый объем ОЗУ. Большие программы могут полностью ее израсходовать, что приведет к сбою в программе. По этой причине нужно следить за тем, сколько строк занимает программа, и по возможности удалять лишнее. Уменьшить объем кода можно несколькими способами:.

На объем памяти не влияют размер имени переменных и комментарии. Компилятор устроен таким образом, что не включает эти данные в скомпилированный скетч. Также эта библиотека широко используется для диагностики проблем, которые связаны с нехваткой памяти. Оптимизация флеш-памяти. Как только будет окончена процедура компиляции, в окне появится информация о занимаемой памяти кодом. Если скетч занимает большую часть памяти, нужно произвести оптимизацию использования флеш-памяти:.

Флеш память является безопасным и удобным способом хранения данных, но некоторые факторы ограничивают ее использование. Для флеш-памяти характерна запись данных блоками по 64 байта. Также флеш-память гарантирует сохранность информации для циклов записи, после чего информация искажается. Во флеш-памяти имеется загрузчик, который нельзя удалять или искажать. Это может привести к разрушению самой платы. Также гарантируется надежность хранения данных для циклов записи, потому лучше не выполнять запись в цикле.

Прошить плату при помощи среды разработки Arduino IDE можно в несколько шагов. В первую очередь нужно скачать и установить саму программу Arduino IDE. Также дополнительно нужно скачать и установить драйвер CH Плату Ардуино нужно подключить к компьютеру и подождать несколько минут, пока Windows ее опознает и запомнит.

Также нужно выбрать порт, к которому она подключена: Инструменты — Порт. В некоторых ситуациях может возникнуть ошибка из-за наличия кириллицы русских букв в пути к папке с кодами. Для этого файл со скетчами лучше создать и сохранить в корне диска с английским наименованием. Одни из самых простых способов прошивки платы — при помощи программатора. Заливка будет производиться в несколько этапов.

В первую очередь нужно подключить программатор к плате и к компьютеру. Если программатор не опознается компьютером, нужно скачать и установить драйверы.

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

В данном случае используется USBasp. Для того чтобы прошить одну плату с помощью другой, нужно взять 2 Ардуино, провода и USB. В первую очередь нужно настроить плату, которая будет выступать в качестве программатора. Нужно выбрать этот пример и прошить плату. Теперь можно подключать вторую плату, которую нужно прошить, к первой.

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

В этой статье мы рассмотрели различные аспекты загрузки скетчей в Arduino Uno и Nano. За эту простоту мы должны благодарить встроенную программу-загрузчик, выполняющую за нас все основные действия на низком уровне. Еще одним вариантом перепрошивки контроллера является использование другой платы адуино или специальных программаторов, использующих микросхемы CP CH, FTDI и другие.

Этот метод требует дополнительных усилий и затрат, но позволяет гибко изменять параметры прошивки. Какой из двух вариантов выбрать — решать вам. Для новичков, безусловно, первым шагом станет использование Arduino IDE, благо, ее создатели сделали все, чтобы упростить этот процесс.

Save my name, email, and website in this browser for the next time I comment. ArduinoMaster все об Ардуино. Домой Платы Arduino. Содержание 1 Загрузка скетча в плату Ардуино 1. Микроконтроллер ESP32 и проекты Arduino.


Как прошить Arduino Pro Mini

By Kitsum , October 11, in Arduino. Плюс ко всему, он весит в четыре раза меньше стандартного и освобождает дополнительно 1. Есть несколько простых способов перезаписать загрузчик которыми я воспользовался это далеко не все возможные варианты. Использование программатора USBasp.

Решено: Прошивка Atmega через arduino nano v3 Arduino Ответ.

Как прошить Arduino Pro Mini

На плате Восстановление загрузчика atmega Всем привет! По несчастливому Atmega JMP 4 цикла? А Atmel Studio четыре цикла Не хочет работать таймер ATMega Здравствуйте! Занимаюсь разработкой девайса обменивающегося с периферией по RS

Optiboot загрузчик для Arduino

Давайте немного отвлечемся от создания нашего робота и поговорим о том, как мы будем записывать прошивку в Arduino. Во всех вышеописанных платах используется микроконтроллер ATmega в более старых версиях ATmega Одной из главных причин выбора платы Arduino для проекта робота была возможность записывать прошивку устройства в МК не применяя программатора и каких либо дополнительных устройств. Все что нужно для прошивки микроконтроллера Arduino — это стандартный USB шнур который входит в комплект Arduino.

Загрузка скетча или прошивка контроллера Ардуино — основная операция, с которой рано или поздно сталкивается любой ардуинщик.

Прошивка плат Arduino через Arduino nano и другие

Последние два способа очень похожи. Они отличаются лишь типом программатора. Поэтому в этой статье мы рассмотрим только прошивку с помощью другой Arduino и с помощью специального программатора. Для того что бы прошить одну ардуинку через другую, нам понадобятся 2 платы Arduino, соединительные провода, USB кабель и компьютер. Я покажу как прошить Arduino Pro Mini с помощью Arduino Nano, но по этой же инструкции можно использовать и другие платы Arduino, такие как Uno, Mega и тд. Для начала надо настроить нашу плату, которая будет выступать в роли программатора.

Китайская Arduino Nano v3.0, проблемы с загрузкой

Хабр Geektimes Тостер Мой круг Фрилансим. Arduino Nano не прошивается, выдаёт ошибки. Я думал залить загрузчик. На руках есть ардуино уно. Сделал из него программатор. Подключал к нано, но всё так же не получается восстановить. Есть так же 2 программатора usbasp. Грешил на первый, мол не работает, что приобрел 2-й, с помощью него так же не получается прошить.

Эта инструкция объясняет, как использовать будь какую плату Arduino в качестве ISP (внутрисистемного программатора). Что позволит вам.

Как прошить arduino

Всем привет. Ха, вы таки думаете, что все так просто? Ан нет. Имеется несколько Nano из одной партии.

104-Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика (Bootloader).

ВИДЕО ПО ТЕМЕ: Уроки Ардуино #0.5 Начало работы с Arduino, первые шаги

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Мегапосты: Криминальный квест HR-истории Путешествия гика. Войти Регистрация. Прошивка Arduino Pro Mini через Nano Разработка под Arduino Из песочницы Tutorial Не так давно столкнулся с необходимостью использования Arduino Pro Mini в своем проекте и сразу же встал вопрос как заливать в нее скетч.

Настоящая Arduino Uno — это отличная платформа для разработки множества развлекательных и полезных схем на микроконтроллерах, но использование полноценной платы Uno в каждом проекте может быть слишком дорого.

Эта инструкция объясняет, как использовать будь какую плату Arduino в качестве ISP внутрисистемного программатора. Способ, описанный в этом примере, основан на программном обеспечении mega-isp от Randall Bohn. Чтобы использовать свою Arduino плату в качестве загрузчика в AVR контроллер другой платы, вам нужно следовать нескольким простым пунктам. Подготовка в программном обеспечении Arduino IDE. Загрузка скетча через Arduino ISP. Примечание: приведенная схема подключений работает с платами, у которых снимается сигнал RST с указанных пинов.

Отправить комментарий. Arduino as ISP — программатор из Ардуино. Одной из важнейших особенностей Ардуино является возможность программирования непосредственно через USB порт, без дополнительного программатора.


Превращение микроконтроллера в Arduino.

Bootloader.

Существует множество способов, как заставить работать скетч из Arduino IDE в обычном микроконтроллере. Самый популярный и логически обоснованный – установка загрузчика (bootloader) Arduino желаемой версии на микроконтроллер и добавление внешнего кварца на 16 МГц. 

Метод хорош тем, что дальнейшая работа с подобным микроконтроллером ничем не отличается от работы с обычной платой Arduino. Ещё бы – на нём же загрузчик!

Загрузчик, или в англоязычной литературе, bootloader, это небольшой фрагмент кода, располагающийся в специально отведенной области flash-памяти. Его задачей является организация загрузки и обновления основной программы. Загрузчик обычно запускается раньше основной программы и некоторое время мониторит последовательную шину — линии RX и TX шины UART. Если нет команд на загрузку новой программы, загрузчик переходит к запуску основной программы, находящейся во flash-памяти микроконтроллера. 

 

Расположение во flash-памяти загрузчика Arduino Nano на микроконтроллере ATMega168. Обратите внимание на адрес, с которого начинается код. При подаче питания на МК именно этот фрагмент будет прочитан первым, а только потом фрагмент с адресом 0000

Получается что-то наподобие программного программатора. В принципе, на этом и заканчивается работа загрузчика.  

Перейдём от теории к практике. И первое что нам потребуется для записи загрузчика -программатор. На протяжении нескольких лет я использую для прошивки микроконтроллеров AVR недорогой программатор USBASP. Также нужен будет адаптер, для подключения микроконтроллера к программатору. Из программ понадобится пока только Arduino IDE.

 

Программатор USBASP c адаптером для микроконтроллеров с корпусами TQFP32.

Распиновка колодки программатора USBASP и расположение необходимых для прошивки пинов у ATMEGA 168/328 в корпусе TQFP 32.

Загрузчики для разных версий плат Arduino хранятся в папке с установленной Arduino IDE: Arduino/hardware/arduino/avr/bootloaders. Информацию о фьюз битах, частоте тактирования и какой загрузчик соответствует той или иной версии платы, можно узнать в файле boards.txt (Arduino/hardware/arduino/avr/boards.txt).

 

Небольшой совет:  файл boards.txt удобно просматривать в Notepad++. В обычном Блокноте Windows файл трудночитаем.

Для примера, попробуем превратить ATMEGA168p в Arduino Nano. 

Предупреждение: во время выполнения операций с микроконтроллером, будьте предельно внимательны – некорректно установленные фьюз биты могут заблокировать микроконтроллер и дальнейшая прошивка будет невозможна. Перед прошивкой не лишним будет проверить значения фьюз-битов в специальном калькуляторе. Ссылку на один из них оставлю под статьёй.

Чтобы прошить загрузчик, потребуется еще одна программа – программа для прошивки микроконтроллеров. Для этих целей можно воспользоваться тем, что уже есть — в комплект пакета Arduino IDE входит Avrdude. Ее можно найти в папке C:/Program Files/Arduino/hardware/tools/avr/bin. Приложение Avrdude консольное, поэтому работает только из Командной строки Windows. Для прошивки, нужно лишь запустить командную строку из папки и ввести заранее подготовленную команду.

Совет: для Windows 7 и выше – щелчок правой клавишей мыши на пустом месте с зажатой клавишей  Shift -> Открыть окно команд. Или просто введите в Командной строке команду  cd полный_путь_к_директории.

Строка ниже, и есть та самая команда, позволяющая прошить микроконтроллер:

avrdude -C ../etc/avrdude.conf -c usbasp -p atmega168p -U flash:w:ATmegaBOOT_168_diecimila.hex -U lfuse:w:0xff:m -U hfuse:w:0xdd:m -U efuse:w:0xf8:m

Немного расшифрую «что есть что» в этой команде:

flash:w:a328p_16MHz_ff_de_5.hex – путь до файла прошивки. Для удобства, можно скопировать в папку с Avrdude.

atmega168p – тип микроконтроллера, который нужно прошить. Можно посмотреть в файле boards.txt.

-U lfuse:w:0xff:m – значение Low fuse byte. Берётся из файла boards.txt

-U hfuse:w:0xde:m – значение High fuse byte. Берётся из файла boards.txt

-U efuse:w:0x5:m – значение Extended fuse byte. Берётся из файла boards.txt

../etc/avrdude.conf –c – путь до конфигурационного файла. Без этой строки, Avrdude выдает ошибку, и, ничего не прошивает. Не советую тут что-то менять.

-c usbasp – тип программатора, который используется для прошивки. Можно заменить на тот, который есть у вас. Предварительно рекомендую заглянуть в документацию программы Avrdude.

Теперь немного о безопасности. Порою возникает необходимость защитить flash-память микроконтроллера от дальнейшего считывания. Для таких случаев и существуют lock биты, грамотная установка  которых не  препятствует последующим обновлениям программы. Считать содержимое flash-памяти при этом можно, только вместо реального содержимого памяти, считается набор шестнадцатеричных значений от 0000 до ffff. Именно так работает защита от считывания.  

Для прошивки lock-битов в Avrdude, добавьте к уже имеющейся команде небольшой фрагмент кода: -U lock:w:0x0F:m.  Следует учесть, что значение 0х0F в данном случае так же следует брать из boards.txt в соответствии с выбранной версией загрузчика. 

C:\Program Files\Arduino\hardware\tools\avr\bin>avrdude -C ..\etc\avrdude.conf -
c usbasp -p atmega168p -U flash:w:ATmegaBOOT_168_diecimila.hex -U lfuse:w:0xff:m
 -U hfuse:w:0xdd:m -U efuse:w:0xf8:m -U lock:w:0x0F:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e940b (probably m168p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be perform
ed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "ATmegaBOOT_168_diecimila.hex"
avrdude: input file ATmegaBOOT_168_diecimila. hex auto detected as Intel Hex
avrdude: writing flash (16294 bytes):

Writing | ################################################## | 100% 0.13s

avrdude: 16294 bytes of flash written
avrdude: verifying flash memory against ATmegaBOOT_168_diecimila.hex:
avrdude: load data flash data from input file ATmegaBOOT_168_diecimila.hex:
avrdude: input file ATmegaBOOT_168_diecimila.hex auto detected as Intel Hex
avrdude: input file ATmegaBOOT_168_diecimila.hex contains 16294 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.07s

avrdude: verifying ...
avrdude: 16294 bytes of flash verified
avrdude: reading input file "0xff"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xff:
avrdude: load data lfuse data from input file 0xff:
avrdude: input file 0xff contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0. 02s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xdd"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.04s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xdd:
avrdude: load data hfuse data from input file 0xdd:
avrdude: input file 0xdd contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xf8"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xf8:
avrdude: load data efuse data from input file 0xf8:
avrdude: input file 0xf8 contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0. 01s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0x0F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude: safemode: Fuses OK (E:F8, H:DD, L:FF)

avrdude done.  Thank you.

C:\Program Files\Arduino\hardware\tools\avr\bin>

Пример удачно завершенной прошивки микроконтроллера при помощи Avrdude. 

Схема, представленная ниже, взята из документации на Arduino Nano. Это минимум деталей, при котором загрузчик и загружаемые в микроконтроллер скетчи будут работать так же, как и в случае с оригинальной Arduino Nano.  

 

Для загрузки скетчей в память микроконтроллера потребуется USB-TTL (UART) конвертер – устройство, служащее посредником между средой Arduino IDE и микроконтроллером. Конвертер преобразовывает интерфейс USB в UART, благодаря которому данные поступают загрузчику, а последний в свою очередь записывает их во flash-память микроконтроллера. 

Примечание: в случае, если у вашего конвертера уже имеется конденсатор в цепи DTR, конденсатор С4 можно исключить. Цепь VD1 R4 в принципе не является важной и её можно исключить. 

 

Два конвертера: верхний на микросхеме PL2303, а  нижний — на Ch440G. Для загрузки скетча подходит любой.

Процесс загрузки скетча в точности такой же, как и в случае с оригинальной платой Arduino. Микроконтроллер и USB-TTL конвертер соединяются по вот такой не хитрой схеме:

 

Если у вашего USB-TTL конвертера есть выход DTR, то вам повезло – подключать его следует обязательно к выводу RESET микроконтроллера. Если же такого вывода нет – нужно будет сбрасывать микроконтроллер вручную, кратковременно коммутируя вывод RESET к минусу питания. Делать это необходимо сразу же, как только заметите в Arduino IDE сообщение «Загрузка…». 

Обратите внимание на коричневый проводок. У моих конвертеров нет выхода DTR, поэтому при старте загрузки я просто размыкаю RESET и минус питания.

USB-TTL конвертер на микросхеме Ch440G можно доработать: вывод 13 микросхемы и есть тот самый DTR, к которому можно подпаять проводок и использовать вывод по назначению. Всё же приятней когда всё автоматизировано, не так ли?..

  

Для тестов написал коротенький скетч и загрузил, сначала на Arduino Nano, а затем на микроконтроллер с загрузчиком Arduino. Особой разницы в работе схемы не замечено. 

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

 

Среда Arduino IDE позволяет выгружать готовый скетч в виде бинарного файла. Для этого нужно перейти в Скетч -> Экспорт бинарного файла.

 

В процессе выгрузки создаются 2 файла с расширением *.hex: с загрузчиком и без него. Внимательный читатель уже догадался, что файл без загрузчика, не подразумевает дальнейшего исправления загруженного скетча. Так оно и есть — вариант хорош в случае, когда исправлять уже больше ничего не нужно и вряд ли когда-нибудь понадобится. 

Запись во flash-память одного из файлов в точности такая же, как и в случае с загрузчиком – пример команды для Avrdude у вас уже есть. Значения фьюз битов так же берутся из boards.txt и зависят от платы, выбранной в среде Arduino IDE.  Единственная разница вместо файла загрузчика – бинарный *.hex файл, экспортированный из Arduino IDE.

 

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

Настало время поговорить о возможных проблемах. Первое с чем я столкнулся — программатор не видит микроконтроллер. В окне Avrdude можно видеть вот такое сообщение:

avrdude: error: program enable: target doesn’t answer.

avrdude: initialization failed, rc=-1

         Double check connections and try again, or use -F to override

         this check.

Самая распространённая причина – ошибка в  подключении микроконтроллера. Следует проверить правильность соединения МК и адаптера. Более редкая причина – плохой контакт между самим микроконтроллером и адаптером. В таком случае, можно зачистить дорожки адаптера, подогнуть слегка ножки микроконтроллера.

 

Еще одна проблема — не загружается скетч. Причин  может быть несколько: плохой контакт, неисправный чип, отсутствие питания или же перепутанные линии RX-TX. Последнее, к слову, самая частая беда. 

Всё то, что я рассказал выше, может пригодиться, в случае если вам каким-то образом удалось  умертвить микроконтроллер в плате Arduino. Либо, если возникнет потребность создать устройство на Ардуино с красивой и лаконичной топологией печатной платы, без каких-либо наслоений. Оба изложенных сценария вполне работоспособны и проверены на личном опыте, так как основной моей задачей было научиться. И научить вас, конечно же

На сегодня всё. Спасибо за внимание и удачи в конструировании!

P.S. У данной статьи обязательно будет продолжение в виде второй части, которую просто нельзя не опубликовать. Добавлю ниже, как рекомендацию.

Ссылки и прочее:

1. https://www.engbedded.com/fusecalc/ — калькулятор фьюзов, может пригодиться для проверки фьюзов из файла boards.txt.

Прошивка новейшего загрузчика на клоне Arduino Nano China — Thing King — Technology & DIY

Arduino Nano очень дешево достать напрямую из Китая. Но часто на этих платах еще стоит старый загрузчик. В этой статье объясняется, как перепрошить загрузчик Nano с помощью другого Arduino.

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

Установлен старый или новый загрузчик?

Чтобы узнать это, подключите Arduino Nano к компьютеру через USB-кабель и откройте среду разработки Arduino IDE. Выберите следующий скетч-пример в разделе File -> Examples -> 01.Basics -> Blink . В разделе «Инструменты » -> «Плата » выберите «Arduino Nano», а в разделе «Инструменты » -> «Порт » выберите соответствующий порт вашего Arduino Nano. В разделе Tools -> Processor выберите «ATmega328P» (и , а не «ATmega328P (Old Bootloader)») и начните загрузку скетча.

Загрузка прошла успешно?

Если загрузка скетча прошла успешно, то новый загрузчик уже установлен на вашем Arduino Nano, и вы можете прекратить чтение на этом этапе 🙂

Загрузка не удалась?

Если вы получаете сообщение об ошибке, похожее на следующее, значит, на вашем Arduino Nano установлен старый (или не установлен) загрузчик.

 Использование порта: COM16
         Использование программатора: arduino
         Преобладающая скорость передачи: 115200
avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x00
avrdude: stk500_getsync() попытка 2 из 10: не синхронизировано: resp=0x00
avrdude: stk500_getsync() попытка 3 из 10: не синхронизировано: resp=0x00
avrdude: попытка stk500_getsync() 4 из 10: не синхронизировано: resp=0x00
avrdude: попытка stk500_getsync() 5 из 10: не синхронизировано: resp=0x00
avrdude: попытка stk500_getsync() 6 из 10: не синхронизировано: resp=0x00
avrdude: попытка stk500_getsync() 7 из 10: не синхронизировано: resp=0x00
avrdude: попытка stk500_getsync() 8 из 10: не синхронизировано: resp=0x00
avrdude: stk500_getsync() попытка 9из 10: не синхронизировано: resp=0x00
avrdude: попытка stk500_getsync() 10 из 10: не синхронизировано: resp=0x00
avrdude сделано. Спасибо.
Beim Hochladen des Sketches ist ein Fehler aufgetreten 

Сообщение об ошибке может также содержать другие коды после «соотв. », например. g.:

 avrdude: stk500_recv(): программатор не отвечает
avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x85 

Теперь выберите «ATmega328P (Old Bootloader)» в разделе Tools -> Processor и снова запустите загрузку скетча. На этот раз загрузка должна пройти успешно, и светодиод на Arduino Nano должен мигать. В окне вывода Arduino IDE вы увидите «Загрузка завершена» и более подробную информацию о процессе загрузки, например:

         Использование порта: COM16
         Использование программатора: arduino
         Преобладающая скорость передачи: 57600
         Часть AVR: ATmega328P
         Задержка стирания чипа: 9000 мкс
         СТРАНИЦА: PD7
         БС2: ПК2
         Расположение СБРОСА: посвященный
         ПОВТОРИТЬ импульс: SCK
         серийный программный режим: да
         режим параллельной программы: да
         Таймаут : 200
         StabDelay : 100
         CmdexeDelay: 25
         Синхпетли: 32
         Задержка байта: 0
         Индекс опроса: 3
         Поллвалуе: 0x53
         Деталь памяти:
[. ..]
         Тип программатора: Ардуино.
         Описание: Ардуино.
         Аппаратная версия: 2
         Версия прошивки: 1.16
         Vцель : 0,0 В
         Вареф: 0,0 В
         Осциллятор: Выкл.
         Период SCK: 0,1 мкс
avrdude: устройство AVR инициализировано и готово к принятию инструкций
Чтение | ################################################### | 100% 0,00 с
avrdude: Подпись устройства = 0x1e950ф (скорее всего м328р)
avrdude: чтение входного файла "C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex"
avrdude: запись flash (924 байта):
Написание | ################################################### | 100% 0,29 с
avrdude: записано 924 байта flash
avrdude: проверка флэш-памяти по C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex:
avrdude: загрузить данные флэш-памяти из входного файла C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex:
avrdude: входной файл C:UsersuserAppDataLocalTemparduino_build_372348/Blink.ino.hex содержит 924 байта
avrdude: чтение данных встроенной флэш-памяти:
Чтение | ################################################### | 100% 0,22 с
avrdude: проверка. ..
avrdude: проверено 924 байта флэш-памяти
avrdude сделано. Спасибо. 

Теперь мы знаем, что на Arduino Nano установлен старый загрузчик. Мы можем без проблем перезаписать его новым загрузчиком, потому что это просто другое программное обеспечение. Аппаратное обеспечение Arduino Nano со старым загрузчиком ничем не отличается от устройства с новым загрузчиком. Но зачем нам вообще это делать?

Отличия нового загрузчика от старого

Старый загрузчик называется «ATmegaBOOT», новый загрузчик называется «optiboot» и также используется в других моделях Arduino.

В этом сообщении StackExchange упоминаются два основных преимущества:

  • Если Arduino Nano сбрасывается сторожевым таймером, то ошибка в ATmegaBOOT приводит к бесконечно частому перезапуску Arduino Nano. В Optiboot этой ошибки нет.
  • При загрузке скетчей ATmegaBOOT работает со скоростью 57600 бод. С другой стороны, загрузчик optiboot вдвое быстрее со скоростью 115200 бод. Таким образом, с новым загрузчиком скетчи можно загружать в Nano быстрее. Поскольку используются разные скорости передачи данных, при загрузке скетчей в Arduino IDE всегда необходимо выбирать правильный загрузчик. В противном случае с точки зрения загрузчика никакие полезные данные не будут получены, так как скетч передается слишком медленно или слишком быстро.

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

Прошивка нового загрузчика на Arduino Nano

Чтобы прошить загрузчик на Arduino, вам понадобится «программатор». Это может быть либо специальная плата для этой цели, либо вы используете другую Arduino для этой задачи. Если у вас завалялась вторая Arduino, то рекомендуется использовать ее как программатор, потому что тогда не придется покупать дополнительную (редко используемую) плату программатора.

Далее мы используем Arduino Uno в качестве программатора. Нам также понадобятся шесть соединительных кабелей «папа-мама» и должна быть установлена ​​среда разработки Arduino IDE; потому что прошивка загрузчиков через веб-редактор невозможна.

Подготовьте Arduino как программатор (ISP = внутрисистемный программатор)

Сначала мы загружаем программное обеспечение на Arduino Uno, с помощью которого позже мы прошьем загрузчик Arduino Nano.

  • Пока не подключайте соединительные кабели к Arduino Uno.
  • Подключите Arduino Uno через USB-кабель к компьютеру.
  • Откройте Arduino IDE (Примечание: Arduino create Web-Editor не имеет встроенных функций для прошивки загрузчика!) и загрузите скетч «ArduinoISP» через меню File -> Examples -> 11.ArduinoISP -> ArduinoISP
  • Установите настройки платы и порта в соответствии с используемой моделью Arduino для программатора:
    • Инструменты -> Плата -> Arduino Uno
    • Инструменты -> Порт -> Выберите номер порта Arduino Uno
  • Загрузите скетч в Arduino Uno.
  • Если все успешно загружено, ваш ISP Arduino готов к работе!

Проводка: подключите Arduino Uno (программатор) к Arduino Nano (целевое устройство загрузчика)

На следующем этапе мы подключим Arduino Uno к Arduino Nano с помощью шести соединительных кабелей.

  • Клик в коде «ArduinoISP»-Sketch verrät uns, wie wir den Arduino Uno (Programmer) jetzt mit dem Arduino Nano (Bootloader-Zielgerät) verkabeln müssen:
  • Отключите Arduino Uno (программатор) от компьютера.
  • На Arduino Nano (целевое устройство загрузчика) есть блок контактов 2×3 с надписью «ICSP». Мы подключим Arduino Uno (программатор) к этим шести контактам, чтобы запустить загрузчик Arduino Nano. Выводы ICSP стандартизированы и должны иметь одинаковую распиновку на каждой модели Arduino.
  • Взглянув на код скетча «ArduinoISP», мы узнаем, как подключить Arduino Uno (программатор) к Arduino Nano (целевое устройство загрузчика):
Назначение контактов ICSP: «°» обозначает номер контакта 1
  • Символом «°» указывается, что это контакт 1, который также должен быть помечен «1» на плате.
  • На пятом немаркированном выводе (в комментарии к скетчу) обычно RST (Reset).
  • Теперь нам нужно соединить эти шесть контактов на Arduino Nano с соответствующими контактами на Arduino Uno. Исходный код сообщает нам номер контакта для сброса.
Назначение контактов: СБРОС на контакте 10
  • Сброс запускается через контакт 10.
    • Сброс: 10
  • Но какие стандартные аппаратные контакты для MOSI, MISO и SCK на Arduino Uno? Распиновка Arduino Uno говорит нам:
    • МОС: 11
    • МИСО: 12
    • SCK: 13
  • Кроме того, мы должны подать питание на Arduino Nano через контакты GND и 5V.
  • Подводя итог, мы подключаем Arduino Uno к Arduino Nano следующим образом:
Ардуино Уно
(programmer)
<-> Arduino Nano
(bootloader target device)
5V 5V (ICSP-pin 2)
GND GND (ICSP-pin 6)
13 SCK (ICSP-pin 3)
12 MISO (ICSP-pin 1)
11 MOSI (ICSP-контакт 4)
10 RST (ICSP-контакт 5)
Arduino Uno (программатор) слева и справа Arduino Nano (загрузчик). Кроме того, на Arduino Uno можно увидеть конденсатор емкостью 10 мкФ, который не является абсолютно необходимым (см. следующее примечание).

На странице Arduino про ISP указано, что с Arduino Uno в качестве программатора (а также с Mega, Mini и Nano) к контактам GND (минус (-), короткая ножка) и RST (плюс (+), длинная нога). Конденсатор можно подключать только после загрузки скетча ArduinoISP на плату. На следующем фото вы можете увидеть дополнительный конденсатор на месте:

Конденсатор 10 мкФ с минусом (-) [короткая нога] на GND и плюсом (+) [длинная нога] на RST

Примечание: Однако процесс прошивки (см. ниже) у меня работал без дополнительного конденсатора.

Начать процесс прошивки

Теперь мы можем прошить новый загрузчик на Arduino Nano.

  • Измените настройки в Arduino IDE в меню Tools :
    • изменить Programmer на Arduino как ISP (выберите именно эту запись, а не «ArduinoISP» или «ArduinoISP.org»)
    • под Port выберите номер порта Arduino Uno (программатора)
    • под Плата и Процессор задаем параметры для «целевой Ардуино» куда хотим перепрошить загрузчик, итак в данном случае:
      • Плата: Arduino Nano
      • Процессор: ATmega328P не «ATmega328P (старый загрузчик)»)
  • В меню Инструменты нажмите Записать загрузчик . (Поскольку здесь не загружается скетч, а загрузчик передается через программу ArduinoISP Arduino Uno, то не имеет значения, какой скетч открыт в это время).

Процесс прошивки занимает всего несколько секунд (у меня). Когда загрузчик будет успешно прошит, вы получите сообщение, которое выглядит примерно так:

 Использование порта: COM16
         Используя программатор: stk500v1
         Преобладающая скорость передачи: 19200
         Часть AVR: ATmega328P
         Задержка стирания чипа: 9000 мкс
         СТРАНИЦА: PD7
         БС2: ПК2
         Расположение СБРОСА: посвященный
         ПОВТОРИТЬ импульс: SCK
         серийный программный режим: да
         режим параллельной программы: да
         Таймаут : 200
         StabDelay : 100
         CmdexeDelay: 25
         Синхпетли: 32
         Задержка байта: 0
         Индекс опроса: 3
         Поллвалуе: 0x53
         Деталь памяти:
[...]
         Тип программатора: STK500
         Описание : Прошивка Atmel STK500 версии 1. x
         Аппаратная версия: 2
         Версия прошивки: 1.18
         Верхняя карта: неизвестно
         Vцель : 0,0 В
         Вареф: 0,0 В
         Осциллятор: Выкл.
         Период SCK: 0,1 мкс
avrdude: устройство AVR инициализировано и готово к принятию инструкций
Чтение | ################################################### | 100% 0,02 с
avrdude: Подпись устройства = 0x1e950ф (скорее всего м328р)
avrdude: ПРИМЕЧАНИЕ: была указана "flash" память, будет выполнен цикл стирания
         Чтобы отключить эту функцию, укажите параметр -D.
avrdude: стирание чипа
avrdude: чтение входного файла «C: UsersuserAppDataLocalArduino15packagesarduinohardwareavr1.8.2/bootloaders/optiboot/optiboot_atmega328.hex»
avrdude: запись flash (32768 байт):
Написание | ################################################### | 100% 0,00 с
avrdude: записано 32768 байт флешки
avrdude: проверка флэш-памяти на C:UsersuserAppDataLocalArduino15packagesarduinohardwareavr1.8.2/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: загрузить данные флэш-памяти из входного файла C:UsersuserAppDataLocalArduino15packagesarduinohardwareavr1. 8.2/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: входной файл C:UsersuserAppDataLocalArduino15packagesarduinohardwareavr1.8.2/bootloaders/optiboot/optiboot_atmega328.hex содержит 32768 байт
avrdude: чтение данных встроенной флэш-памяти:
Чтение | ################################################### | 100% 0,00 с
avrdude: проверка...
avrdude: проверено 32768 байт флэш-памяти
avrdude: чтение входного файла "0x0F"
avrdude: блокировка записи (1 байт):
Написание | ################################################### | 100% 0,02 с
avrdude: записан 1 байт блокировки
avrdude: проверка памяти блокировки по 0x0F:
avrdude: загрузить данные блокировки данных из входного файла 0x0F:
avrdude: входной файл 0x0F содержит 1 байт
avrdude: чтение данных встроенной блокировки:
Чтение | ################################################### | 100% 0,01 с
avrdude: проверка...
avrdude: проверено 1 байт блокировки
avrdude сделано. Спасибо. 

изображение на обложке: автор Nizzah Khusnunnisa на Unsplash, модифицировано с помощью Canva 2 янв. 2021 г. ардуино электроника

Поделиться:

Загрузчик Arduino — как (повторно) установить загрузчик Aruduino Nano

Как прошить загрузчик Aruduino Nano и что делать, если он не работает.


Недавно я получил модуль Arduino Nano от своего папы (ему 82 года, и он любит играть с гаджетами и электроникой!) и решил поиграть с ним, но обнаружил, что он не принимает эскиз, он отказывается принимать загрузку код эскиза. Оказывается, более дешевые неоригинальные платы Arduino иногда поставляются без загрузчиков. Звучит как серьезная проблема, но совсем не об этом думали разработчики системы Arduino.

Что такое загрузчик Arduino?

Загрузчик Arduino — это небольшой фрагмент кода, как следует из названия, который позволяет установить и запустить скомпилированный код скетча. Он имеет размер 512 байт и находится в области «памяти» микропроцессорного чипа 328P.

Хотите верьте, хотите нет, но на плате Arduino не так уж и много, и вы можете просто купить микропроцессорный чип ATmega328P и, если хотите, прошить на него загрузчик! Система Arduino в основном связана с поддерживающими платами, которые держат чипы процессора, процессорные чипы на платах, ну, дешевые как чипы!

Специальный фрагмент кода, который выполняется при каждом сбросе микроконтроллера и ищет скетч для загрузки из последовательного/USB-порта с использованием определенного протокола и скорости. Если связь не обнаружена, выполнение передается коду вашего скетча. Этот небольшой (обычно 512 байт) фрагмент кода называется «загрузчиком» и находится в области памяти микроконтроллера — в конце адресного пространства — и не может быть перепрограммирован как обычный скетч. предназначен для такой цели.

Использование Arduino Uno для перепрограммирования Arduino Nano

Итак, вам понадобится следующее:

  • Рабочая плата Arduino Uno
  • Плата Arduino Nano
  • Перемычки с контактами
  • Конденсатор 10 мкФ (должен быть 10 мкФ)
  • Макетная плата, если она у вас есть

Сначала вам нужно прошить определенный скетч, поставляемый из стандартной среды разработки Arduino IDE, в Arduino Uno.

Подключите Arduino Uno и в меню «Примеры» найдите скетч «ArduinoISP», загрузите его в Arduino Uno.

Отключите Uno от USB и подключите его, как показано ниже. Обратите внимание на использование конденсатора, вставленного в линию к GND.

В большинстве руководств и диаграмм по прошивке загрузчика просто показано, что GND подключен между двумя платами, но обратите внимание, что если вы попытаетесь прошить загрузчик только с помощью линий, вы можете обнаружить, что это не удастся. Линия горячая, и когда вы переходите к прошивке, целевая плата нуждается в сбросе линии сброса, если линия просто горячая, сброса не произойдет, и перепрограммирование не удастся. Конденсатор подключается к линии, чтобы сбросить напряжение и снова поднять линию, когда запускается флэш-память, это вызывает сброс Uno в Nano, и Nano будет открыт для приема загрузочной флэш-памяти. Это должно быть 10 мкФ, и больше или меньше займет слишком много времени, чтобы выполнить сброс.

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

Подключите USB к плате Arduino UNO НЕ к Nano, Uno является программатором и будет давать инструкции Nano.

  • Вам нужна плата, настроенная на цель, Нано.
  • Вам нужен набор микросхем ATMega328P. (до 2018 года это был бы «старый загрузчик»)
  • Порт
  • настроен на USB-соединение Uno.
  • Выберите «Arduino as ISP» из опций Programmer .

Наконец нажал Burn Bootloader .

Что произойдет, если это не сработает?

Одна из проблем, с которой я столкнулся с моей платой Nano, заключалась в том, что она не брала загрузчик при первой попытке, и у меня постоянно возникали сбои. Мне потребовалось 2 дня, чтобы найти проблему.

Если вы видите это:

 1avrdude: stk500_recv(): программатор не отвечает
2avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x03
 

Вы можете увидеть это:

 1avrdude: Ого! Неверная подпись устройства.

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

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