Загрузчики — первые шаги на примере Arduino

Первые шаги с ArduinoЗагрузчик в микроконтроллерах — это мини-программа, вложенная в определенный сектор памяти UC. Благодаря загрузчику можно загрузить программу без помощи программиста.

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

При программировании микроконтроллера, мы чаще всего думаем об основных интерфейсах, используемых для связи с программатором. Для AVR это будет ISP, а для STM32 мы будем использовать SWD. Благодаря загрузчику, программа может быть отправлена ​​напрямую через USB, RS232 (UART) или с помощью других методов, таких как IrDA или SD-карта.

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

Необходимое оборудование

Для работы с загрузчиком нам понадобятся:

  • Программатор ISP — используется только один раз, для загрузки и установки Fusebits,
  • Кабель USB и RS232TTL — соединяется с помощью USB через аппаратный интерфейс UART с микроконтроллером.
  • Преобразователь сигналов RS232 (± 12В) в TTL (0-5В) — MAX232 и несколько конденсаторов.

Выбор загрузчика

Сначала мы рассмотрим загрузчики, использующие UART. Эта часть статьи описывает три самых популярных из них, которые мы можем использовать, например, с ATmega8.

Megaload — имеет очень маленький размер (в базовой версии 256 байт, в чуть более обширной версии — 512 байт), мы можем использовать его с очень большой группой AVR. Данный загрузчик работает на скоростях 9600, 19200, 38400, 57600 и 115200 бит (8 кБ за 3 секунды). Megaload также обладает защитой на случай потери данных во время загрузки.

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

Загрузчик Arduino — имеет довольно полезную особенность, в нем встроен программатор STK500 , что позволяет использовать его практически в любой среде разработки (без использования дополнительных программ).

ВНИМАНИЕ! При использовании этого загрузчика мы вынуждены использовать одну из двух тактовых частот процессора — 8 МГц или 16 МГц.

MCS Bootloader — простой загрузчик с поддержкой непосредственно из IDE Bascom. Он находится в каталоге Samples (BOOT\Bootloader.bas). Как и Megaload, этот загрузчик поддерживает работу UC в широком диапазоне тактовых частот и частот передачи.

Изготовление переходника

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

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

Переходник для программирования загрузчика

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

К сожалению, в новых компьютерах мы больше не найдем распиновку разъема RS232. Этот метод работает только со старым оборудованием.

Схема RS232

Стоимость переходников должна составлять около 200 рублей за преобразователь на MAX232 или около 300 рублей за преобразователь, использующий ATmega8. И то, и другое можно без проблем изготовить на куске универсальной или контактной пластины.

Загрузчик Arduino

В качестве тестовой схемы мы будем использовать ATmega8 с тактовой частотой 16 МГц, что является максимальной скоростью для этого микроконтроллера. Схема подключения переходника — UC с загрузчиком показана на схеме ниже (там также будут светодиоды, которые позже будут использоваться для проверки правильности работы загруженной программы):

Тестовая схема

Сначала мы воспользуемся загрузчиком Arduino. Для этого скачиваем IDE с сайта (это будет самый простой и надежный способ загрузки). Для начала, распоковав файл с Arduino, перейдите в его папку, найдите каталог оборудования , затем Arduino и, наконец, откройте программаторы.

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

Для USBasp:

Для STK200 / 300:

Мы можем добавить практически любой программатор, поддерживаемый AVRdude. Включите IDE Arduino. В Tools, во вкладке (в верхней части), выберите Board , а затем Arduino NG Or Older w/ Atmega8. Подключаем наш программатор к ATmega8.

Используя программное обеспечение для установки битов (мы рекомендуем avrdude и AVR Burn-O-Mat), устанавливаем частоту 16 МГц и размер области памяти, предназначенной для загрузчика, на 1024 слова:

Подключение программатора

Затем сохраняем их в микроконтроллере. Внимание! Неправильные настройки могут практически полностью заблокировать систему!

Теперь вернемся к Arduino. Снова вкладка «Tools» , затем «Burn Bootloader» и выбраем своего программатора. На этом этапе загрузчик Arduino и соответствующие биты должны быть отправлены на наш ATmega8.

Как только мы окажемся в Arduino, мы можем перейти в FileExamplesDigitalBlink. В первой строке программы заменяем:

На:

Затем нажмите кнопку Verify, когда компиляция прошла успешно (Done Compiling), нажмите сброс и затем Upload . Примерно через десять секунд светодиод должен начать мигать — мы загрузили программу с помощью загрузчика.

Загрузка по USB

Пришло время для USBAspLoader. Для его использования нам понадобится только USB-кабель, подключенный к микроконтроллеру, и перемычка на плате (хотя вы можете перекомпилировать загрузчик, чтобы он запускался при выполнении другого условия). Ниже приведена схема подключения необходимая для запуска загрузчика с USB:

Схема подключения для запуска загрузчика

Мы выбрали частоту на 16 МГц, хотя можно и другую. Нам нужно загрузить в ATmega8 программу, которая соответствует нашему процессору и скорости синхронизации — для этого мы загружаем специальный архив с сайта проекта.

Нужно установить все биты на стандартные , очистить флеш-память процессора и затем загрузить .hex с помощью загрузчика. При использовании avrdude это будет выглядеть так:

С этого момента мы можем пользоваться рабочим загрузчиком через USB. Как этим пользоваться? Все очень просто — подключите процессор к USB и нажмите кнопку сброса. На этом этапе наш процессор должен представиться системе как USBAsp — драйверы устанавливаются вместе с этим программатором.

С Уважением, МониторБанк

Оставьте комментарий

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