Прошивка grbl 1.1. скачиваем и загружаем в arduino

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

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

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

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

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

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

Распиновка ICSP1

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

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

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

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

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

Убедитесь, что соединения выполнены, как описано выше. Откройте программу / скетч, которую хотите загрузить в микроконтроллер ATtiny85. Перейдите в Инструмент и настройте следующее.

Затем убедитесь, что Arduino в качестве ISP выбран в меню Инструменты -> Программатор . По умолчанию ATtiny85 работает на частоте 1 МГц. Чтобы заставить ATtiny85 работать на частоте 8 МГц, выберите Инструменты -> Записать загрузчик.

Теперь откройте пример Blink из примеров Arduino, измените номер пина с 13 на 0 и загрузите скетч.

Тестирование ATTINY85 BLINK

Пришло время проверить. Отключите все соединения с Arduino и подключите источник питания (в данном случае батарейка CR2032):

Паяльный фен YIHUA 8858
Обновленная версия, мощность: 600 Вт, расход воздуха: 240 л/час…

Подробнее

Сборка схемы прошивки загрузчика

Чтобы загрузить код загрузчика из Arduino Uno в пустой ATmega328P-PU, потребуется небольшая схема прошивки загрузчика. Комплектующие, необходимые для схемы загрузчика, перечислены ниже (вам может также понадобиться несколько перемычек).

Список комплектующих
Обозначение Описание
R1 Резистор 10 кОм, 0,25 Вт
C1, C2 Конденсатор, керамический, 22 пФ, 50 В
C3 Конденсатор, керамический, 0,1 мкФ, 50 В
X1 Кварцевый резонатор, 16 МГц, HC49, 20 пФ
U1 Микросхема, ATmega328P-PU, флэш 32 килобайта, DIP-28, 1,8–5,5 В
нет Макетная плата, беспаечная, 400 контактов
нет Arduino Uno R3

Ниже приведена очень простая принципиальная схема прошивки загрузчика AT328P-PU

Часть генератора состоит из X1, C1 и C2; обратите внимание, что кварцевый резонатор X1 должен быть на 16 МГц, а не на 20 МГц. Несмотря на то, что AT328P-PU может использовать кварц 20 МГц, для процесса прошивки загрузчика требуется работа на 16 МГц

R1 – это подтягивающий резистор для вывода Reset; а C3 – это обычный конденсатор фильтра питания.

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

Соберите схему прошивки загрузчика, но пока не подключайте её к Arduino Uno.

Схема прошивки загрузчика в AT328P-PUArduino Uno, подключенная к макетной плате прошивки загрузчика в AT328P-PU

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

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

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

Чтобы загружать прошивки через mini-USB, потребуется:

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

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

Виды памяти

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

  1. Flash. Она выступает в качестве постоянного запоминающего устройства.
  2. ОЗУ.
  3. EEPROM. Эта память также является постоянным запоминающим устройством, но ее можно перепрограммировать.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Arduino IDE

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

Что такое Arduino IDE

Аббревиатура IDE расшифровывается как Integrated Development Environment, в переводе – интегрированная среда разработки. С помощью этой программы программисты пишут программы, причем делают это гораздо быстрее и удобнее, чем при использовании обычных текстовых редакторов.

В рамках платформы Ардуино программа Arduino IDE делает то же – помогает программистам писать программы. С ее помощью скетч, написанный на языке Arduino, проверяется, превращается в C++, компилируется, загружается в Arduino. Теоретически, вы можете обойтись без этой программы, но реально других вариантов начать работы с Ардуино для новичка практически не существует. Поэтому первое, что вы должны сделать – это найти и установить  себе эту среду программирования. Это совершенно не трудно и абсолютно бесплатно.

Как скачать и установить Arduino IDE

Процедура скачивания и установки абсолютно традиционна. Вы загружаете файл, запускаете установку. На официальном сайте доступны версии c установщиком (exe) и обычных zip архивах. Вы можете найти версии Arduino IDE для всех основных операционных систем.

Процедура установки достаточно проста, вам нужно будет ответить на несколько вопросов. Важным этапом этого процесса является установка драйвера COM-порта. Для большинства «китайских» плат ардуино понадобится установить дополнительные драйвера.

После установки потребуется небольшая настройка среды – об этом мы поговорим в отдельной статье про установку и настройку Ардуино IDE.

Какую версию Ардуино IDE выбрать?

Первая версия среды разработки Ардуино официально появилась в августе 2005 года. С тех пор утекло много воды, программа несколько раз претерпевала революционные изменения. До 2011 года номера версий состояли из одной цифры (последней была 0023 – версия от 09.11.2011). Затем появилась более привычная запись с «минорными» и «мажорными» обновлениями. Так, Arduino 1.0.0 появилась 30.11.2011, а версия 1.0.1 – в мае 2012.

Ключевыми по количеству обновлений и связанных с ними проблем совместимости стали переходы с версии 1.0.7 и 1.5. Многие библиотеки, написанные под «старые версии» программы не могли компилироваться в новых из-за изменений в системных библиотеках и других внутренних механизмах сборки проекта. Особенно сильно это проявилось при переходе на 1.6 версию. Если в вашем проекте есть древние библиотеки, некорректно работающие с современными версиями IDE, вам придется изменять их самому, ждать, пока это сделают авторы или подчиниться обстоятельствам и установить ту версию, с которой будет работать библиотека.

Последней стабильной версией Arduino IDE на момент написания статьи является 1.8.7 (август 2018).

Arduino на русском

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

Arduino Pro Mini ATmega328 3.3V/8MHz 5V/16MHz

Микроконтроллер ATmega328P
Рабочее напряжение 3.3 В или 5 В (в зависимости от модели)
Напряжение питания (рекомендуемое) 3.35-12 В (модель 3.3 В) или 5-12 В (модель 5 В)
Напряжение питания (предельное) 3.35-20В
Цифровые входы/выходы 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы 6
ШИМ (PWM) пины 6
Постоянный ток через вход/выход 40 мА
Максимальный выходной ток вывода 3.3V 50 мА
Flash-память 32 Кб из которых 2 Кб используются загрузчиком
SRAM 2 Кб
EEPROM 1 Кб
Тактовая частота 8 МГц (модель 3.3 В) или 16 МГц (модель 5 В)
Встроенный светодиод 13
Длина 33.0 мм
Ширина 18.0 мм
Вес 5 г

Питание
Arduino Pro и Arduino Pro Mini может получать питание: через кабель FTDI, от платы-конвертора, или от регулируемого источника питания 3.3 В или 5 В (зависит от модели платформы) через вывод Vcc, или от нерегулируемого источника через вывод RAW.Выводы питания:

 Память
Микроконтроллер ATmega168 имеет: 32 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 2 кБ ОЗУ и 1 кБ EEPROM
Микроконтроллер ATmega328 имеет: 16 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 1 кБ ОЗУ и 512 байт EEPROM

Входы и Выходы
Каждый из 14 цифровых выводов Pro, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

Существует дополнительный вывод на платформе:

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

Шаг 7. Программируем Ардуино

Подключите коммутационную плату к Arduino и подключите её к компьютеру. Откройте диспетчер устройств и наблюдайте за com-портом конвертера usb — ttl. В Arduino IDE выберите com-порт и плату правильно. Теперь здесь начинается сложная часть.

Если ваша плата FTDI имеет вывод DTR и она подключена для сброса, просто сохраните программу и загрузите ее в Arduino как обычно. Ошибки не будет. Но если у вас нет пина DTR, как у нас, то, прежде чем нажать кнопку загрузки, удерживайте кнопку сброса на плате, а затем нажмите кнопку загрузки. Удерживайте кнопку до тех пор, пока программа не скомпилируется, когда IDE говорит «загрузка», затем отпустите переключатель сброса. Затем код будет загружен.

Чипы CH340g, FTDI FT232, ATMEGA 16U2 / 8U2

Зачем нужен USB / UART TTL преобразователь

Когда вы подключаете Ардуино к компьютеру или любому другому устройству по USB, вы связываете между собой сразу два мира: микропроцессорный, сосредоточенный на плате Arduino и мир внешних устройств. Подходы к организации взаимодействия между элементами в этих мирах сильно отличаются. Для работы внутри платы используется особый протокол со своими правилами взаимодействия – UART. И для того, чтобы “внутреннюю” линию соединить с “внешней” нужен определенный преобразователь-посредник, который будет хорошо понимать физические сигналы, используемые как для USB, так и для платы контроллера. Вот этим посредником и являются чипы USB- UART (иногда их еще обозначают называют USB-TTL, хотя это не совсем корректно) преобразователей, самыми популярными из которых являются микросхемы FTDI, CH340G,  ATMEGA U16.

USB преобразователи в Ардуино

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

Исторически наиболее популярным вариантом чипов USB/UART конвертера была линейка микросхем от шотландского производителя  FTDI. Главным ее недостатком была стоимость и весьма странная политика в области контроля контрафакта, зачастую приводящая к тому, что легальные купленные устройства блокировались драйверами компании. Сегодня существенную конкуренцию FTDI составляют микросхемы семейства CH340, массово производимые многочисленными китайскими производителями. Они гораздо дешевле и достаточно надежны и это постепенно привело к тому, что в большинстве недорогих контроллеров Arduino и адаптеров установлены именно чипы CH340 (CH340g).

Наверное, единственной, но очень важной проблемой при использовании CH340g взамен FTDI является необходимость в некоторых случаях установки USB драйвера. “Респектабельная” FTDI давно уже тесно интегрирована в Windows и при подключении устройства с FTDI-преобразователем никаких драйвером устанавливать не нужно – они уже есть в системе

Для подключения CH340g иногда нужно скачать драйвер и установить его – только после этого система увидит наше устройство.

Процедура установки драйвера для CH340g на самом деле очень проста и почти всегда проходит без ошибок на самых популярных операционных системах Windows7, Windows10. Именно поэтому никаких проблем с использованием недорогих ардуино плат, несущих на себе чип CH340, почти никогда не возникает.

Остается только вопрос – а зачем вообще нужен какой-то USB драйвер для подключения ардуино  к компьютеру? Давайте разберемся.

USB драйвер для ардуино

Мы не будем уходить в теоретические дебри, разбирая многочисленные коммуникационные протоколы, поддерживаемые современными компьютерными системами. Главное, что нужно понимать: когда мы присоединяем какое-то устройство к компьютеру, оно может передавать или получать данные только если его “поймут” с другой стороны. На стороне компьютера таким переводчиком является специальная программа, называемая драйвером. Драйвер USB работает в режиме эмуляции последовательного, COM-порта. Это означает, что при подключении операционная система создает виртуальные, программные COM-порты, с которыми и работает драйвер. В Windows их можно посмотреть в диспетчере устройств.

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

Режимы загрузки

Arduino Nano RP2040 Connect поддерживает два метода загрузки: и .

Штатный режим

Платформа загружается с , распаянной на плате Arduino Nano RP2040 Connect. В диспетчере устройств OS Windows плата отображается как виртуальный COM-порт с именем Устройство с последовательным интерфейсом USB. Режим служит для загрузки пользовательских программ через Arduino IDE, Thonny Python и друг сред разработки.

Активация режима происходит простым подключением платы по USB.

Режим загрузчика

Платформа загружается с внутренней памяти микроконтроллера RP2040. В диспетчере устройств OS Windows плата отображается как съёмный накопитель с именем RPI-RP2. Режим служит для загрузки прошивки в формате UF2 простым перемещением файла с одного носителя на другой.
Активация режима:

  1. Замкните между собой контакты REC и GND. В качестве перемычки используйте джампер или провод «папа-папа».
  2. Подключите плату к компьютеру по USB.
  3. Разомкните между собой контакты REC и GND.

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

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

Микроконтроллер ATmega168, который используется на части плат Ардуино, имеет 16 Кб флеш-памяти, 1024 байта для ОЗУ и 512 байт EEPROM

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

Уменьшить объем кода можно несколькими способами:

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

  • Можно отправить часть информации на компьютер.
  • Для таблиц и других крупных массивов использовать минимальный тип данных для хранения.
  • Данные, которые остаются неизменными, можно объявить константами при помощи слова const перед объявлением переменной.
  • Меньше использовать рекурсию. При ее вызове в памяти, называемой стеком, выделяется фрагмент, в котором хранятся различные данные. Если часто вызывать рекурсию, стеки будут занимать большой объем памяти и могут израсходовать ее.
  • Неизменяемые строки можно сохранять во флеш-памяти во время работы программы. Для этого используется функция PROGMEM.

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

Для измерения объема занимаемой памяти ОЗУ используется скетч из библиотеки MemoryFree. В ней имеется специальная функция free­Memory, которая возвращает объем доступной памяти. Также эта библиотека широко используется для диагностики проблем, которые связаны с нехваткой памяти.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Разъем mini-USB

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Память Arduino Uno R3

Плата Uno по умолчанию поддерживает три типа памяти:

  • Flash – память объемом 32 кБ. Это основное хранилище для команд. Когда вы прошиваете контроллер своим скетчем, он записывается именно сюда. 2кБ из данного пула памяти отводится на bootloader- программу, которая занимается инициализацией системы, загрузки через USB и запуска скетча.
  • Оперативная SRAM память объемом  2 кБ. Здесь по-умолчанию хранятся переменные и объекты, создаваемые в ходе работы программы. Память эта энерго-зависимая, при выключении питания все данные, разумеется, сотрутся.
  • Энергонезависимая память (EEPROM) объемом 1кБ. Здесь можно хранить данные, которые не сотрутся при выключении контроллера. Но процедура записи и считывания EEPROM требует использования дополнительной библиотеки, которая доступна в Arduino IDE по-умолчанию. Также нежно помнить об ограничении циклов перезаписи, присущих технологии EEPROM.

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

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

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

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

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

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

Выберите файл:

С:\Program Files\Arduino\hardware\arduino\firmwares\atmegaxxu2\arduino-usbserial\Arduino-usbserial-atmega16u2-Uno-Rev3.hex

Нажмите «Выполнить».

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

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

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

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

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

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

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

Что такое Arduino?

Arduino – это семейство электронных платформ, предназначенных для изучения проектирования электроники.

Arduino NANO – компактная платформа для прототипирования микроэлектронных устройств, предназначенная для использования с макетной платой. Функционал устройства во многом схож с Arduino UNO и отличается от нее лишь размерами платы и отсутствием отдельного разъема для питания.

Основа Arduino Nano – микроконтроллер на базе ATmega328, логическая микросхема для обработки данных с тактовой частотой 16 МГц, имеющая на борту 8 аналоговых и 14 цифровых контактов общего назначения, а также все необходимые интерфейсы: I2C, SPI и UART.

Стартовый набор Arduino

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

Базовый набор ардуино для начинающих:
Большой набор для обучения и первых проектов:
Набор дополнительных датчиков и модулей:
Ардуино Уно самая базовая и удобная модель из линейки:
Беспаечная макетная плата для удобного обучения и прототипирования:
Набор проводов с удобными коннекторами:
Комплект светодиодов:
Комплект резисторов:
Кнопки:
Потенциометры:

Готовим программное обеспечение

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

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

3.1 Скачиваем и устанавливаем ПО

Выбираем нужную версию, жмем «Just Download» и скачиваем:

После того как скачали ПО — запускам установку, открыв скачанный .EXE файл:

Дальше мы проходим все обычные шаги установки, как при установке любого другого приложения — соглашаемся с «лицензионным соглашением», ставим галочки, выбираем папку для установки и жмем ОК:

3.2 Запускам ПО и включаем русский язык

После того как мы прошли процесс установки мы увидим на рабочем столе иконку нашей Arduino IDE:

Нажимаем на иконку и видим процесс загрузки программы:

В итоге мы увидим такое окно:

Включаем русский язык.

Для включения русскоязычного интерфейса Arduino IDE нам нужно перейти в нужную вкладку и выбрать русский язык в списке:

File → Preferences → Language

Да, теперь, на этом шаге, у нас уже есть все комплектующие и установлено нужное программное обеспечение.