Установка загрузчика — это первый шаг к воплощению ваших проектов Arduino в жизнь. Это часть программного обеспечения, которое помогает вам часто легко загружать эскизы Arduino на плату без необходимости использования специального оборудования для программирования.
Хотя это может звучать как ракетостроение, на самом деле это проще, чем вы думаете, даже для новичков. Мы покажем вам, как легко установить (или переустановить) загрузчик на плату Arduino всего за несколько простых шагов.
Но сначала, что такое загрузчик на плате Arduino?
Что такое загрузчик?
Загрузчик Arduino — это небольшая программа, хранящаяся в энергонезависимой памяти платы, которая запускается каждый раз при включении платы, загрузке нового кода или сбросе. Всякий раз, когда запускается программа загрузчика, она инициализирует аппаратное обеспечение платы, а затем загружает основной скетч или программу, хранящуюся во флэш-памяти платы.
Стоит отметить, что все платы Arduino поставляются с предустановленным загрузчиком от их производителей. Иногда вы можете найти платы с неисправными загрузчиками прямо из коробки. Однако такое случается редко.
Зачем использовать загрузчик?
Есть несколько ситуаций, когда использование загрузчика Arduino может быть полезным. Например, если вы новичок в платформе Arduino, использование загрузчика может упростить и ускорить загрузку новых программ на вашу плату. Это связано с тем, что вам не нужно использовать внешние устройства программирования, такие как программатор или преобразователь USB-последовательный порт, для загрузки кода.
Если вы работаете над проектом, который требует частых обновлений кода, вы найдете его очень полезным. В этом случае использование загрузчика может сэкономить ваше время и силы, так как вы можете просто загрузить новый код на плату без использования внешних устройств программирования.
Кроме того, если вы работаете над проект, который требует Arduino находиться в определенном состоянии при включении, например, при запуске определенной программы, может быть полезно использование загрузчика. Загрузчик позволяет установить начальное состояние платы таким образом, чтобы она автоматически запускала нужную программу при включении питания.
Наконец, он предоставляет способ восстановить Arduino, если основной скетч поврежден или по какой-либо другой причине не запускается.
Почему мой загрузчик отсутствует?
Может быть четыре возможных причины, по которым вашей плате может понадобиться новый загрузчик:
- Нет предустановленного загрузчика: довольно часто бывает много автономных проектов ATMEGA328P, в которых вы припаиваете свой чип к печатной плате и случайно поджариваете чип. Таким образом, возможно, что вы заменили плату чипом без предварительной установки загрузчика.
- Заменен загрузчик: Вы могли заменить свой загрузчик модифицированным сторонним загрузчиком, который мог быть поврежден.
- Поврежденный загрузчик: Это наименее вероятный сценарий. Однако в некоторых случаях флэш-память Arduino может быть повреждена.
- Расширенная память: Если вы заменили (прошили) весь загрузчик своим приложением, чтобы пользоваться оставшимися 2К программной памяти, то вашего загрузчика точно не хватает.
Вот что вам нужно сделать.
Установка/переустановка загрузчика Arduino
Микроконтроллеры обычно программируются до того, как они будут припаяны к печатной плате. Обычно это делается с помощью внутрисистемного программирования (ISP), такого как внутрисхемное последовательное программирование (ICSP), которое позволяет программировать микроконтроллер с помощью внешнего программатора. Многие производители микроконтроллеров, такие как Atmel и Microchip, для этой цели предусматривают на своих платах разъем ISP.
Использование другой платы Arduino
Чтобы прошить загрузчик на микроконтроллере ATmega328, вам необходимо использовать разъем ICSP на плате, прежде чем вы сможете установить загрузчик, используя другую плату в качестве программатора ISP.
Запустите Arduino IDE, перейдите к ArduinoISP как показано ниже, и загрузите пример кода на плату, которую вы собираетесь использовать в качестве программатора. (Следуйте видеоруководству по подключению оборудования).
Код должен выглядеть так, чтобы вы знали, что находитесь на правильном пути.
Из Инструменты вкладка, перейдите к Программист затем нажмите на Ардуино как интернет-провайдер как показано ниже.
Наконец, из Инструменты снова нажмите на вкладку Записать загрузчик как показано.
После завершения процесса целевая плата готова к программированию.
Использование специального программатора
Для такого типа установки доступно множество устройств программирования AVR. Одним из хороших вариантов, который вы можете попробовать, является AVR Pocket Programmer (только для Windows), основанный на книге Дика Стрифленда. USBтини и Лимор Фрид USBtinyISP. Он предлагает более простой способ программирования микроконтроллеров AVR, подобных тем, которые можно найти на платах Arduino. Помимо того факта, что он питается от USB-соединения, это лучший вариант, потому что он совместим с различными языками программирования и программным обеспечением, что делает его универсальным инструментом для любого Пользователь Ардуино.
Вы также можете попробовать другие варианты, такие как официальный программатор Atmel-ICE для микроконтроллеров ARM, особенно если вы не используете Windows.
Подключите плату Arduino к программатору и прошейте загрузчик. Обратитесь к этому видеоуроку ниже.
Процесс должен быть простым и не занимать более 20 секунд.
Примечание: Целевая плата должна быть правильно включена, прежде чем пытаться использовать этот метод. В противном случае вы не сможете прошить .hex файл к вашей цели.
Для опытных пользователей есть более сложный способ установки загрузчика с помощью командной строки. Доходить до этого этапа не обязательно, но он дает вам возможность изменить или перекомпилировать код, чтобы получить более индивидуальный опыт.
Первым шагом в этом процессе является настройка фьюз-битов, которые являются частью микросхемы AVR, и настройки управления, такие как использование внешнего кристалла. Используйте следующую команду для установки фьюз-битов:
авродуде-б 19200 -сusbtiny-пm328p-v-е-Уизливаться:ш:0x05:м-Упредохранитель:ш:0xD6:м-Улюфт:ш:0xFF:м
После настройки фьюз-битов следующим шагом является передача скомпилированного файла .hex на целевую плату и установка битов блокировки. Это позволит вам запустить программу на доске. Убедитесь, что вы находитесь в том же каталоге, что и optiboot_atmega328.hex файл перед вводом этой команды:
авродуде-б 19200 -сusbtiny-пm328p-v-е-Увспышка:ш:hexfilename.hex-Узамок:ш:0x0F:м
Примечание: Эти команды предназначены для Arduino Uno. Вам нужно будет реорганизовать биты предохранителей для вашей платы, найденные в доска.txt файл и настроить Параметры номера детали AVRDUDE а также чтобы они работали.
Что вы будете делать с Arduino дальше?
Загрузчик Arduino делает программирование таким простым даже для новичков. Теперь вы можете загружать свои собственные эскизы в Arduino и восстанавливать загрузчик для будущих DIY-проектов Arduino.