Как прошить ардуино нано через usb
Перейти к содержимому

Как прошить ардуино нано через usb

  • автор:

Прошивка Arduino через USBasp

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

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

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

Прошивка Ардуино через USBasp

Для работы нам понадобятся два устройства: плата расширения Arduino Uno (Nano, Mega) и сам ASP-программатор. Подключаем платформу к компьютеру, запускаем среду IDE. Выбираем сначала в разделе «Инструменты» название платформы (например, Уно), тип программатора, а потом загружаем стандартный скетч ArduinoISP:

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

Обратите внимание на соответствие сигналов подключения:

Для дальнейшей прошивки USBasp следует инсталлировать джампер JP2:

  1. Скачиваем последнюю версию ПО: https://www.fischl.de/usbasp/
  2. В архиве ищем файлы согласно типу своего микроконтроллера. Распаковываем, открываем.
  3. Запускаем Проводник Windows, переходим в каталог Arduino_dir\hardware\tools\avr\bin\, где Arduino_dir — это путь к IDE Arduino. Сюда переносим файл, о котором писали выше. Тут же вводим команду cmd, кликаем Enter.
  4. В командную строку следует внести: avrdude -C ..\etc\avrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex, где первая часть – путь к файлу (например, на диске С), p m8 – тип чипа, com – номер порта и U flash – ваше действие.
  5. Снова подключаем Ардуино к ПК, щелкаем Enter в интерпретаторе командной строки. Отображается процесс заливки данных, должно появиться системное сообщение: avrdude done.

С программированием всегда непросто работать, но надеемся наши подсказки и скриншоты вам помогли справиться с поставленной целью. На этом пока все! До новых встреч!

Как загрузить прошивку в Arduino nano

Для того что бы загрузить прошивку в пату Arduino nano понадобиться шнур с разъемом USB mini (или же другим разъемом если таковой установлен на плате).

Ардуино нано и кабель USB micro Шнур USB micro

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

Скачиваем пакет JAVA Скачиваем Arduino IDE

Устанавливаем скачанный пакет JAVA и распаковываем архив Arduino IDE.

Распаковываем Arduino IDE Устанавливаем скачанный пакет JAVA

Далее необходимо установить драйвера. Для этого открываем распакованный архив Arduino IDE, заходим в папку drivers и запускаем файл dpinst-amd 64 если у Вас 64 битная операционная система или dpinst-x86 если у Вас 32 битная операционная система (посмотреть это можно открыв мой компьютер, далее нажать правой кнопкой мыши на пустой области, выбрать свойства и глянуть в графу Тип системы).

Заходим в папку driversЗапускаем dpinst-amd 64 или dpinst-x86 Драйвера установлены

После этого нужно скачать тестовую прошивку и драйвера для китайского USB преобразователя CH341 (драйвера понадобятся Вам в том случае если вы покупали ардуинку на Алиэкспресс).

Скачиваем тестовую прошивку Скачиваем драйвера

Разархивируем и устанавливаем драйвера CH341.

Разархивируем драйвераУстанавливаем драйвераНажимаем INSTALL Готово

Переносим программу Arduino IDE и прошивку в папку с названием на английском. Весь путь до этой папки так же должен быть прописан латинскими буквами и не содержать кириллицы.

Переносим программу Arduino IDE и прошивку в папку с названием на английском.

Подключаем плату ардуино к компьютеру и ждем пока ПК ее инициализирует. При первом подключении должен высветиться номер порта который нужно будет запомнить, ну а если он не высветился или вы его проворонили его можно посмотреть зайдя в ПУСК — Устройства и принтеры и в самом низу увидите значок подключенной ардуинки с номер порта (в данном случае №4).

Подключаем плату ардуино к компьютеруЗаходим в пуск, выбираем устройства и принтеры В самом низу смотрим номер порта

Запускаем Arduino IDE и устанавливаем настройки как на скриншотах. Т.е. выбираем плату (nano или ту что у Вас), процессор (попробуйте ATmega 328P или ATmega 328P (Old BootLoader) определяется методом тыка, и порт).

Настройки Программы Arduino IDEНастройки Программы Arduino IDE Настройки Программы Arduino IDE

Открываем тестовую прошивку и загружаем в плату просто нажав кнопку со стрелочкой.

Открываем прошивкуОткрываем прошивкуЗагружаем прошивку нажав кнопку со стрелочкой Прошивка загружена

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

Прошивка заставит красный светодиод моргать с определенной периодичностью

Как установить библиотеки Ардуино

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

Ошибка в которой говорится что отсутствует библиотека microLEDЗакидываем библиотеку в папку libraries Папка libraries изнутри

Похожие статьи:

  • Как сделать автоматический наливатор на ардуино
  • Проблемы при сборке наливатора

Первая прошивка, ошибки, FAQ

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

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

  • Неисправен USB кабель.
  • Неисправен USB порт компьютера.
  • Неисправен USB порт Arduino.
  • Попробуйте другой компьютер, чтобы исключить часть проблем из списка.
  • Попробуйте другую плату, чтобы исключить часть проблем из списка.
  • На плате Arduino сгорел диод по питанию USB.
  • Плата Arduino сгорела полностью из-за неправильного подключения питания или короткого замыкания

2. Компьютер издаст характерный сигнал подключения нового оборудования, а при первом подключении появится окошко “Установка нового оборудования”. Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Кабель должен быть data-кабелем, а не “зарядным”.
  • Кабель желательно втыкать напрямую в компьютер, а не через USB-хаб.
  • Не установлены драйверы для Arduino.

3. В списке портов (Arduino IDE/Инструменты/Порт) появится новый порт, отличный от COM1. Если этого не произошло:

  • См. предыдущий список неисправностей.
  • Некорректно установлен драйвер CH341.
  • Если список портов вообще неактивен – драйвер Arduino установлен некорректно, вернитесь к установке
  • Возникла системная ошибка, обратитесь к знакомому компьютерщику

4. Выбираем свою плату. Если это Arduino Nano, выбираем в Инструменты\Плата\Arduino Nano. Если другая – выбираем другую. Нажимаем стрелочку в левом верхнем углу (загрузить прошивку). Да, загружаем пустую прошивку.

  • [Для Arduino Nano] В микроконтроллер китайских нанок зашит “старый” загрузчик, поэтому выбираем Инструменты\Процессор\ATmega328p (Old Bootloader). Некоторые китайцы зашивают в свои платы новый загрузчик, поэтому если прошивка не загрузилась (загрузка идёт минуту и вылетает ошибка avrdude: stk500_getsync()) – попробуйте сменить пункт Процессор на ATmega328p.

Если появилась надпись “Загрузка завершена” – значит всё в порядке и можно прошивать другие скетчи. В любом случае на вашем пути встретятся другие два варианта событий, происходящих после нажатия на кнопку “Загрузка” – это ошибка компиляции и ошибка загрузки. Вот их давайте рассмотрим более подробно.

Ошибки компиляции

Возникает на этапе компиляции прошивки. Ошибки компиляции вызваны проблемами в коде прошивки.

  • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.
  • В чёрном окошке в самом низу Arduino IDE можно прочитать полный текстошибки и понять, куда копать.
  • В скачанных с интернета готовых скетчах часто возникает ошибка с описанием название_файла.h no such file or directory. Это означает, что в скетче используется библиотека , и нужно положить её в Program Files/Arduino/libraries/. Ко всем моим проектам всегда идёт папочка с использованными библиотеками, которые нужно установить. Также библиотеки всегда можно поискать в гугле по название файла.
  • При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.
  • Если прошивку пишете вы, то любые синтаксические ошибки в коде будут подсвечены, а снизу в чёрном окошке можно прочитать более детальное описание, в чём собственно косяк. Обычно указывается строка, в которой сделана ошибка, также эта строка подсвечивается красным.
  • Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE. Читайте комментарии разработчика скетча
  • Ошибка недостаточно свободного места возникает по вполне понятным причинам. Возможно поможет урок по оптимизации кода.

Частые ошибки в коде, приводящие к ошибке компиляции

  • expected ‘,’ or ‘;’ – пропущена запятая или точка запятой на предыдущей строке
  • stray ‘\320’ in program – русские символы в коде
  • expected unqualified-id before numeric constant – имя переменной не может начинаться с цифры
  • … was not declared in this scope – переменная или функция используется, но не объявлена. Компилятор не может её найти
  • redefinition of … – повторное объявление функции или переменной
  • storage size of … isn’t known – массив задан без указания размера

Ошибки загрузки

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

  • USB кабель, которым подключается Arduino, должен быть Data-кабелем, а не кабелем только для зарядки. Нужным нам кабелем подключаются к компьютеру плееры и смартфоны.
  • Причиной ошибки загрузки являются не установленные/криво установленные драйвера CH340, если у вас китайская NANO.
  • Также будет ошибка avrdude: ser_open(): can’t open device, если не выбран COM порт, к которому подключена Arduino. Если кроме COM1 других портов нет – читай два пункта выше, либо попробуй другой USB порт, или вообще другой компьютер.
  • Большинство проблем при загрузке, вызванных “зависанием” ардуины или загрузчика, лечатся полным отключением ардуины от питания. Потом вставляем USB и по новой прошиваем.
  • Причиной ошибки загрузки может быть неправильно выбранная плата в “Инструменты/Плата”, а также неправильно выбранный процессор в “Инструменты/Процессор”. Также в свежих версиях IDE нужно выбирать ATmega328P (Old Bootloader) для китайских плат NANO.
  • Если у вас открыт монитор COM порта в другом окне Arduino IDE или плата общается через СОМ порт с другой программой (Ambibox, HWmonitor, SerialPortPlotter и т.д.), то вы получите ошибку загрузки, потому что порт занят. Отключитесь от порта или закройте другие окна и программы.
  • Если у вас задействованы пины RX или TX – отключите от них всё! По этим пинам Arduino общается с компьютером, в том числе для загрузки прошивки.
  • Если в описании ошибки встречается bootloader is not responding и not in sync, а все предыдущие пункты этого списка проверены – с вероятностью 95% сдох загрузчик. Второй неприятный исход – загрузчик “слетел”, и его можно прошить заново.

Предупреждения

Помимо ошибок, по причине которых проект вообще не загрузится в плату и не будет работать, есть ещё предупреждения, которые выводятся оранжевым текстом в чёрной области лога ошибок. Предупреждения могут появиться даже тогда, когда выше лога ошибок появилась надпись “Загрузка завершена“. Это означает, что в прошивке нет критических ошибок, она скомпилировалась и загрузилась в плату. Что же тогда означают предупреждения? Чаще всего можно увидеть такие:

  • # Pragma message… – это просто сообщения, оставленные разработчиком проекта или библиотеки. Чаще всего номер версии и прочая информация.
  • Недостаточно памяти, программа может работать нестабильно – Чуть выше этого предупреждения обычно идёт информация о задействованной памяти. Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85-90%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти. Так что ещё раз: это всего лишь предупреждение, а не ошибка.

FAQ

Завершая раздел Введение в Arduino поговорим о вопросах, которые очень часто возникают у новичков:

  • Ардуину можно прошить только один раз? Нет, несколько десятков тысяч раз, всё упирается в ресурс Flash памяти. А он довольно большой.
  • Как стереть/нужно ли стирать старую прошивку при загрузке новой? Память автоматически очищается при прошивке, старая прошивка автоматически удаляется.
  • Можно ли записать две прошивки, чтобы они работали вместе? Нет, при прошивке удаляются абсолютно все старые данные. Из двух прошивок нужно сделать одну, причём так, чтобы не было конфликтов. Подробнее в этом уроке.
  • Можно ли “вытащить” прошивку с уже прошитой Ардуины? Теоретически можно, но только в виде нечитаемого машинного кода, в который преобразуется прошивка на С++ при компиляции, т.е. вам это НИКАК не поможет, если вы не имеете диплом по низкоуровневому программированию. Подробнее в этом уроке.
    • Зачем это нужно? Например есть у нас прошитый девайс, и мы хотим его “клонировать”. В этом случае да, есть вариант сделать дамп прошивки и загрузить его в другую плату на таком же микроконтроллере.
    • Если есть желание почитать код – увы, прошивка считывается в виде бинарного машинного кода, превратить который обратно в читаемый Си-подобный код обычному человеку не под силу.
    • Вытащить прошивку, выражаясь более научно – сделать дамп прошивки, можно при помощи ISP программатора, об этом можно почитать здесь.
    • Снять дамп прошивки можно только в том случае, если разработчик не ограничил такую возможность, например записав лок-биты, запрещающие считывание Flash памяти, или вообще отключив SPI шину. Если же разработчик – вы, и есть желание максимально защитить своё устройство от копирования – гуглите про лок-биты и отключение SPI

    Видео

    Полезные страницы

    • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
    • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
    • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
    • Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
    • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
    • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
    • Поддержать автора за работу над уроками
    • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

    Программатор на Ардуино Нано и Уно: прошивка через USB

    Блог про Arduino

    Вопросы и ответы

    Автор fast12v0_oarduin На чтение 20 мин Просмотров 2к. Опубликовано 10.11.2021

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

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

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

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

    Загрузите Flip с веб-сайта Microchip — отсюда. Установить. Проблем возникнуть не должно, просто следуйте инструкциям мастера установки.

    Берем плату Arduino, отключаем питание и USB. Короткое замыкание контактов 5-6 на ICSP1 (при сбросе 16U2 будет низкий уровень).
    Распиновка ICSP1

    Это будет выглядеть так:

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

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

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

    Особенности установки драйверов

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

    Если драйверы не были обнаружены и установлены системой, вам необходимо:

    1. Откройте панель управления.
    2. Зайдите в раздел «Система и безопасность».
    3. Переходим во вкладку «Система».
    4. Откройте диспетчер устройств.
    5. Откройте вкладку с портами COM и LPT.
    6. Если на плате нет порта USB UART FT232R или секции с разъемами COM и LPT, перейдите на вкладку «Другие устройства» и перейдите в раздел «Неизвестное устройство».
    7. Щелкните правой кнопкой мыши FT232R USB UART.
    8. Выберите «Обновить драйвер».
    9. Нажмите «Искать драйверы на моем компьютере».
    10. Выберите драйвер USB FTDI в папке с драйверами Arduino.

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

    Схема электрическая

    Наиболее важными элементами платы Arduino Nano являются программатор (разъем ISCP) и микроконтроллер (ATmega328P). Каждый, кто будет работать с этой платой, должен знать их конструктивные, принципиальные схемы и назначение контактов.

    Схема ISCP «Ардуино Нано»

    Разъем ISCP (или SPI) — это программатор, через который скетч (код микроконтроллера платы) загружается в ATmega328P. Имеет 6 контактов. Проем первого из них выполнен в форме квадрата для удобства пользования.

    1. MISO: главный вход, подчиненный выход во время передачи данных.
    2. + VCC: напряжение питания.
    3. SCK: последовательный тактовый сигнал.
    4. MOSI: главный выход, подчиненный вход во время передачи данных.
    5. Восстановить: восстановить.
    6. GND: общий провод.

    Принципиальная схема контроллера платы

    Контроллер карты — ATmega328P. Ядром микросхемы является центральный процессор, к которому подключены 2 шины (шина данных и шина ввода / вывода), элементы управления (например, вывод сброса, отвечающий за сброс микроконтроллера) и память.

    Типы памяти в контроллере:

    • SRAM;
    • Стремительный;
    • EEPROM.

    На шину данных поступают следующие элементы:

    1. Сторожевой таймер.
    2. АЦП.
    3. Внешнее прерывание.
    4. Первый и второй счетчики таймера.
    5. USART и I2C (Atmel называет этот интерфейс TWI).

    Подключено к шине данных ввода / вывода:

    1. Порты ввода / вывода.
    2. Счетчик нулевого часа.
    3. Интерфейс SPI.

    Контроллер может быть реализован как в пакетах MLF, так и в пакетах PDIP. Arduino Nano имеет версию микроконтроллера MLF.

    SinaProg

    SinaProg — это уже более профессиональная и универсальная программа, разработанная неизвестными иранскими программистами. Однако сразу скажу, что эта программа является не чем иным, как графической оболочкой для утилиты AVRDude, о которой мы поговорим дальше.

    Универсальная оболочка для AVRDude

    1. Выбираем файл прошивки
    2. Конфигурация программатора: выбираем…
    3. Ардуино,
    4. Приносит
    5. Скорость передачи

    Последняя версия — 2.1.1

    Запуск Arduino Nano

    Чтобы начать работу с картой, необходимо подключить ее по USB к ПК. Сигнал питания будет поступать через тот же порт. Как только он будет подключен к плате, загорится синий сигнальный светодиод (в модели v.2.x он расположен в нижней части платы, в модели v.3.x — вверху).

    Настройка Arduino

    Чтобы настроить карту для работы с написанным кодом, в среде программирования необходимо:

    • перейдите в Инструменты;
    • пойти в Совет;
    • выберите пункт Arduino Duemilanove или Nano w / * модель микроконтроллера * (для v.2.x — ATmega168, для v.3.x — ATmega328);
    • перейдите в Инструменты;
    • перейти к последовательному порту;
    • нажмите Загрузить.

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

    При возникновении проблем с прошивкой необходимо перейти в раздел «Устранение неполадок» и узнать, как их исправить.

    Avrdude

    Чаще всего загрузчики используют одну и ту же утилиту: AVRDude (AVR Downloader-Uploader), которая уже давно включена во многие среды разработки для Arduino, например, включена в Arduino IDE.

    Это самая мощная утилита для работы с микросхемами AVR, но все же это утилита командной строки, что для многих неудобно.

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

    Последняя версия — 6.3.

    Прошивка и память Arduino v3 0 CH340G

    Стандартная версия платы Arduino Nano, работающая на микросхеме ATmega328P, может быть прошита только через программатор с интерфейсом SPI.

    Кроме того, выпускается модель AN, на которой также установлена ​​микросхема CH340G. Преимущество этой сборки в том, что плату можно прошить без подключения программатора SPI через порт USB. Это делается с помощью встроенного загрузчика и преобразователя USB-COM.

    При необходимости такую ​​модель Nano также можно прошить через интерфейс SPI.

    Для загрузки прошивки через mini-USB вам потребуются:

    1. Подключите карту к ПК через USB. Система определит устройство как USB 2.0 SERIAL.
    2. Загрузите и установите драйвер CH340G.

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

    Виды памяти

    ATmega328P поддерживает 3 типа памяти:

    1. Стремительный. Он работает как постоянное запоминающее устройство.
    2. БАРАН.
    3. EEPROM. Эта память также предназначена только для чтения, но ее можно перепрограммировать.

    Микроконтроллер Atmel имеет 32 КБ флэш-памяти (30 КБ свободно, так как 2 КБ занято загрузчиком), 2 КБ ОЗУ и 1 КБ EEPROM.

    Связь с устройствами

    Связь с устройствами в Arduino Nano осуществляется через:

    • Интерфейс SPI;
    • Интерфейс UART;
    • Интерфейс TWI (аналог Atmel I2C с линиями SCL и SDA).

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

    Arduino IDE, AVRDude

    Давайте посмотрим, как загрузить прошивку только с помощью Arduino IDE на компьютер с Windows.

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

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

    • Установите Arduino IDE, если он не установлен
    • В некоторых случаях вам потребуется установить дополнительный драйвер для вашей карты (если карта является китайским клоном). Драйвер нужен только в том случае, если вы не видите свою плату в среде Arduino IDE.

    Подготовка

    • Подключаем карту к компьютеру
    • Запустите Arduino IDE
    • Определите, к какому порту подключен Arduino, через меню, как показано ниже:

    Выбор COM-порта Arduino

    • Определите, в какой папке установлена ​​Arduino IDE

    Обычно — «C: Program files (x86) Arduino»

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

    • Откройте командную строку и введите следующую команду, предварительно адаптировав ее к вашим условиям:

    «C: Program Files (x86) Arduinohardwaretoolsavr / bin / avrdude» — «C: Program Files (x86) Arduinohardwaretoolsavr / etc / avrdude.conf» -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash: w: Шестнадцатеричная прошивка : Я

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

    • Путь к IDE Arduino (желтый),
    • Номер порта (синий),
    • Скорость передачи данных (зеленый)
    • Имя (путь) файла прошивки (фиолетовый)

    поэтому ваша карта не может работать на 115200, и вам нужно установить скорость 57600.

    Нажмите CTRL + C, чтобы остановить процесс.

    Получение помощи

    Если у вас что-то пошло не так, и вы являетесь нашим клиентом, перейдите на страницу поддержки.

    Часто задаваемые вопросы о прошивке

    Какой COM-порт выбирать?

    Этот вопрос обычно возникает, когда программа не может автоматически выбрать COM-порт, к которому подключен Arduino.

    Прежде всего, для обнаружения ардуино на вашем компьютере должны быть установлены его драйверы. Они поставляются с IDE Arduino. Для более дешевых китайских колонок может потребоваться установка драйвера CH340.

    Итак, драйверы установлены, теперь выберем правильный порт.

    Дверь можно посмотреть в Arduino IDE…

    Выбор COM-порта в Arduino IDE

    . или, если вы работаете в Windows, в диспетчере устройств:

    Определение COM-порта, к которому подключен Arduino, через Диспетчер устройств Windows.

    Определенно не COM1. Следовательно, в моем случае это будет COM3.

    Способы программирования

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

    Метод графического программирования заключается в использовании плагина ArduBlock (поддерживает русский язык), который интегрирован в Arduino IDE. Программа изначально отформатирована как блок-схема, а затем автоматически конвертируется в код Arduino IDE (подходит для начинающих программистов).

    Чтобы установить подключаемый модуль Arduino IDE:

    1. Установите Arduino IDE (доступно на официальном сайте Arduino).
    2. Загрузите плагин ArduBlock с сайта разработчика.
    3. Переименуйте загруженный файл в ardublock-all.
    4. Создайте папки Arduino, затем инструменты, ArduBlock и инструмент в разделе «Документы.
    5. Переместите загруженный и переименованный файл в папку инструментов.

    Для работы с этим плагином вам необходимо:

    1. Запустите среду программирования.
    2. Перейдите на вкладку «Инструменты».
    3. Щелкните раздел ArduBlock.

    Под программированием карты мы также подразумеваем, как загрузить прошивку в микроконтроллер. Самый популярный метод — это внутрисхемное программирование (ISP), при котором ATmega прошивается через программатор, подключенный через интерфейс SPI к плате и через USB-кабель к ПК. Этим же методом можно перепрошить AN.

    Карты, использующие чип CH340, можно прошивать через USB.

    Вы можете проверить производительность кода в таких программах, как:

    • Протей;
    • AutoCAD 123D;
    • Tinkercad.

    Все утилиты имеют удобный графический интерфейс и большой набор компонентов. В Proteus и AutoCAD вы можете проектировать печатные платы. Для работы с Tinkercad вам нужен только браузер и стабильное интернет-соединение, так как это программное обеспечение работает онлайн.

    Варианты прошивки Ардуино

    Прошивка с помощью Arduino IDE

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

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

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

    Прошивка с помощью программатора

    Один из самых простых способов прошить карту — использовать программатор. Заливка будет проходить в несколько этапов.

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

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

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

    Последний шаг — нажать «записать загрузчик» в меню «Инструменты.

    После этого начнется загрузка. Завершение займет около 10 секунд.

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

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

    Загрузите шестнадцатеричный файл AVRISP MKII отсюда. Отключите Arduino от USB-кабеля и источника питания. Короткий контакт 5-6 ICSP1. Подключите Arduino к USB. Откройте контакты 5-6 ICSP1.

    Запустите программное обеспечение 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-драйверах: C: Program Files Atmel.

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

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

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

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

    • 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

    Нажмите кнопку «Применить».

    Установите частоту интернет-провайдера на 16,1 кГц. Нажмите кнопку «Установить».

    Программатор не будет работать, если вы установите очень низкую тактовую частоту ISP. Вы получите сообщение об ошибке: «ispProgramMem: статус ошибки получен: 0x81 получено, ожидается 0x00 (истек срок извлечения вывода RDY / nBSY)». По-английски это будет звучать так: «ispProgramMem: статус ошибки получен: получено 0x81, ожидается 0x00 (срок действия выборки вывода RDY / nBSY истек)». Однако максимальная скорость интернет-провайдера также ограничена и не может превышать 1/4 частоты устройства.

    Перейдите в раздел «Подпись устройства» и нажмите кнопку «Читать». Вы должны увидеть правильную «подпись устройства»: 0x1E950F. Нажмите «Воспоминания» и найдите шестнадцатеричный файл загрузчика Arduino. Он внутри:

    C: Program Files Arduino hardware arduinobootloaders optiboot optiboot_atmega328.hex

    Нажмите кнопку «Программа». Если вы используете новый, незапрограммированный ATMEGA328P, также необходимо запрограммировать ПРЕДОХРАНИТЕЛИ. Перейдите в раздел «Предохранители» и используйте следующие значения: low_fuses = 0xff; high_fuses = 0xDE; расширенный_fuses = 0x05.

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

    Элементы платы

    Arduino Nano состоит из множества элементов, в том числе:

    • микросхемы;
    • пассивные элементы (резисторы, конденсаторы, диоды);
    • разъемы;
    • регуляторы.

    Микросхема платы FT232R

    Микросхема допускает подключение платы по USB. Чип, установленный в AN, не может работать напрямую с интерфейсом USB, поэтому FT232R преобразует его в интерфейс UART.

    Микросхема платы FT232R.

    Сердце платформы — микроконтроллер ATmega328P

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

    Светодиодная индикация

    На плате есть 4 встроенных светодиода, каждый из которых имеет свое назначение:

    1. Светодиоды RX и TX мигают во время передачи данных по UART.
    2. Диод L загорается при подаче на него высокого сигнала и гаснет при низком уровне.
    3. Светодиод ON горит, когда на плату подано питание.

    Кроме того, практически любой вывод микроконтроллера можно подключить к другим светодиодам, 7-сегментным индикаторам или даже дисплеям.

    Разъем mini-USB

    Через разъем mini-USB карту можно подключить к персональному компьютеру. AN также может получать питание от внешних источников через этот интерфейс.

    Линейный понижающий регулятор напряжения 5 В

    В качестве регулятора используется микросхема LM1117MPX-5.0. Преобразует сигнал питания AN в сигнал питания микроконтроллера ATmega и других логических вентилей, которые не поддерживают напряжение более 5 В. Например, транзисторные логические элементы (TTL) получают питание от сигнала такой величины.

    ICSP-разъем для ATmega328

    Этот интерфейс позволяет стандартным образом загружать прошивку на микроконтроллер. Специальная петля подключена с одной стороны к программатору, подключенному к ПК, а с другой — к разъему ICSP.

    ATmega328

    Ошибка компиляции

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

    • В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: Добавить отдельную папу для скетчей в корень диска с английским названием.
    • В черном окне в нижней части IDE Arduino вы можете прочитать полный текст ошибки.
    • В готовых скетчах, скачанных из Интернета, часто возникает ошибка с описанием «имя файла» без такого файла или каталога. Это означает, что в скетче используется библиотека «имя файла», и вы должны поместить ее в Program Files / Arduino / libraries. Во всех моих проектах всегда есть папка с используемыми библиотеками, которые нужно установить. Кроме того, библиотеки можно искать в Google по «имени файла».
    • При использовании некоторых специальных методов и функций неправильная вкладка в «Инструменты / Вкладка» может стать ошибкой«.
    • Если вы напишете прошивку, любые синтаксические ошибки в коде будут выделены и внизу черного окошка можно будет прочитать более подробное описание в чем косяк.

    Примеры проектов с Arduino Nano

    реализовывать проекты в AN удобно за счет наличия библиотек, упрощающих написание кода.

    Подключение светодиодов к Arduino Nano

    запитать светодиодный диод можно, например, с помощью вывода 13 через ограничительный резистор 220 Ом. Чтобы этот диод вспыхнул, вам нужно написать следующий код:

    Для создания пиксельного изображения, где пиксель равен 1 диоду, используется адресная лента WS2812.

    Структура памяти Ардуино, где располагается скетч и данные

    • Микроконтроллер Arduino имеет 3 типа памяти: флэш-память, которая используется для хранения эскизов, RAM для хранения переменных и EEPROM для хранения постоянной информации. Из этих типов памяти флэш-память и EEPROM являются энергонезависимыми, что означает, что информация сохраняется при отключении питания. ОЗУ используется только для хранения данных, относящихся к исполняемой программе.Микроконтроллер ATmega168, используемый на некоторых платах Arduino, имеет 16 КБ флэш-памяти, 1024 байта ОЗУ и 512 байтов EEPROM. Важно обратить внимание на небольшой объем оперативной памяти. Большие программы могут использовать его полностью, что приводит к сбою программы. По этой причине необходимо следить за тем, сколько строк занимает программа, и по возможности удалять ненужные. Есть несколько способов уменьшить объем кода:
      • Вы можете отправить некоторую информацию на свой компьютер.
      • Для таблиц и других больших массивов используйте наименьший тип данных для хранения.
      • Данные, которые остаются неизменными, можно объявить константой, используя слово const перед объявлением переменной.
      • Меньше использования рекурсии. Когда вы его вызываете, в памяти выделяется фрагмент, называемый стеком, в котором хранятся различные данные. Если рекурсия вызывается часто, стеки будут занимать большой объем памяти и могут ее использовать.
      • Нередактируемые строки могут храниться во флэш-памяти во время работы программы. Для этого используется функция ПРОГРАММА.

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

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

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

      • Использование констант. Как и RAM, он устанавливает неизменные значения через константы.
      • Удалите ненужный Serial.println. Эта команда используется, когда вам нужно увидеть значения переменных в разных местах программы, часто эта информация просто не нужна. В этом случае команды занимают место в памяти, поэтому, убедившись, что программа работает правильно, некоторые строки можно удалить.
      • Отказ от загрузчика — вы можете запрограммировать микроконтроллер через контакты ICSP на плате с помощью аппаратных программаторов.

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

      Память EEPROM используется для хранения всех необходимых данных после выключения питания. Для записи информации о EEPROM необходимо использовать специальную библиотеку EEPROM.h, которая является одной из стандартных библиотек в Arduino IDE. Чтение и запись информации в EEPROM происходит медленно, около 3 мс. Надежность хранения данных гарантируется даже при 100 000 циклов записи, поэтому циклами записи лучше не писать.

      Технические характеристики платы

      Питание 5 дюймов
      Входной сигнал 7-12 В (постоянный ток)
      Количество DP 14 (6 для ШИМ)
      Количество точек доступа восемь
      Максимальный ток DP 40 мА
      Флэш-память формата 16/32 Кб
      Баран 1/2 Кб
      Память в формате EEPROM 512 байт / 1 КБ
      Тактовая частота микроконтроллера 16 МГц
      Размеры (править Ширина — 19 мм, длина — 42 мм
      Масса 7 г

      Подробный обзор возможностей карты представлен в даташите — технической документации. Также указаны подробные характеристики и описание НА.

      Распиновка.

      Порты ввода/вывода и питание

      Порты ввода / вывода включают:

      • цифровые разъемы;
      • аналоговые разъемы;
      • разъемы, излучающие сигнал ШИМ;
      • разъемы для работы с ADC, I2C (TWI), SPI, UART.

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

      Блок питания может быть подключен к плате модели «Nano» 3 способами:

      1. Через разъем mini-USB. Этот способ удобен тем, что разработчику не нужно подавать на плату дополнительное питание. Этот источник питания поддерживает системы, позволяющие регулировать входной ток.
      2. Через нерегулируемые источники 6-20 В.
      3. Через регулируемый источник питания 5 В.

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

      Питание от внешнего источника

      Питание от нерегулируемых источников 6-20 В обеспечивается подключением блока источника сигнала к контакту 30 и общему проводу соответственно.

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

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

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

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