Прошивка Arduino Fio

В микроконтроллер ATmega328P, входящий в состав Arduino Fio, уже прошит загрузчик, который позволяет загружать в устройство программы без использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 (справкаC заголовочные файлы).

Загрузить новый скетч в Arduino Fio можно двумя способами: с помощью специального кабеля USB-to-serial от FTDI (или аналогичного адаптера USB-to-serial), либо по беспроводному интерфейсу (с помощью двух радиопередатчиков XBee). Если вы впервые слышите об XBee-модулях, то перед тем, как использовать их для беспроводной прошивки, желательно в общих чертах ознакомится с принципом их работы. В этом вам поможет небольшая вводная статья.

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

Прошивка через кабель

Как и все остальные модели Ардуино, Arduino Fio можно прошить из среды программирования Arduino IDE (скачать). Если вы впервые столкнулись с Ардуино, см. страницу Начало работы, справку и примеры.

В Arduino Fio нет встроенного преобразователя интерфейсов USB-UART. Поэтому, если вы хотите прошить его через USB, вам потребуется специальный адаптер. Для этой цели подойдет любое из этих устройств:


кабель FTDI 3.3V, можно найти на сайте Adafruit.com

Адаптер Sparkfun's FTDI Basic Breakout.
Имеет такую же распиновку, как и кабель FTDI

Перед прошивкой Arduino Fio с помощью кабеля FTDI или адаптера с соответствующей распиновкой, необходимо подключить к ним планку из 6 контактов типа "папа", как показано на рисунках ниже:

 

После этого соедините ответную часть этого разъема с выводами Arduino Fio, обозначенными на плате надписью "FTDI":

Подключение адаптера к Arduino Fio

Подключение кабеля FTDI к Arduino Fio

 

Есть и другие способы подключения адаптера к FIO - с использованием углового разъема и низкопрофильного сокета:

Подключение адаптера к Arduino Fio с использованием углового разъема и впаянного низкопрофильного сокета

Подключение адаптера к Arduino Fio с использованием углового разъема без низкопрофильного сокета

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

После подключения кабеля к Fio, откройте среду программирования Ардуино и выберите из меню Tools --> Board пункт Fio. Затем из соответствующего меню выберите последовательный порт, к которому подключен кабель. Теперь все готово для прошивки. Если вы используете адаптер FTDI, то в процессе прошивки будут мигать светодиоды RX и TX. На Arduino Fio не предусмотрено никаких индикаторов, сигнализирующих об окончании процесса прошивки. Однако в случае успешной прошивки в IDE Ардуино появится примерно такое сообщение:

ПРИМЕЧАНИЕ: на время прошивки скетча отключите модем XBee от платы Arduino Fio.


Прошивка по беспроводному интерфейсу

Эта инструкция позаимствована из статьи Xbee Adapter - wireless Arduino programming автора Limor Fried

Для беспроводной прошивки программ с помощью модулей XBee понадобится:

  • два модуля XBee или XBee Pro 802.15.4. Эти модули также известны под названием "Series 1" (тем, кто уже сталкивался с передатчиками XBee). Для прошивки Ардуино не подходят модули серий DigiMesh или ZB (они же - Series 2 или 2.5), поскольку в этих моделях не реализована функция IO Line Passing, требуемая для управления выводом Reset в процессе прошивки.
  • последняя версия прошивки 802.15.4 (10A5 или позже). Для обновления прошивки XBee-модуля вам потребуется программа X-CTU (к сожалению, работает только под Windows). Если перечисленные требования выполняются - переходите к следующему пункту.
  • Адаптер USB-to-serial для одного из модулей. В качестве такого адаптера может выступать адаптер XBee Explorer USB от Sparkfun, XBee Adapter kit от Adafruit или любой другой переходник с FTDI ни XBee.

Подготовка XBee-USB адаптера

Возьмите ваш USB-to-serial адаптер и припаяйте к нему маленькую перемычку между выводами RTS и D3, как показано на рисунке:

Модифицированный XBee Explorer USB

Модифицированные Adafruit XBee Adapter Kit
Стрелка показывает расположение перемычки

Подготовка XBee-модемов

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

Ниже приведены настройки для двух радио-модемов:

Параметр

XBee-модуль, подключенный к компьютеру

XBee-модуль, подключенный к Fio

BD

4 (Atmega168) или 6 (Atmega328)

4 (Atmega168) или 6 (Atmega328)

ID

задается пользователем (от 0000 до FFFF)

задается пользователем (от 0000 до FFFF)

MY

задается пользователем, например, 0000

задается пользователем, например, 0001

DL

FFFF или значение параметра MY XBee-модуля, подключенного к Fio

Значение параметра MY XBee-модуля, подключенного к ПК

D3

3

5

IC

8

не задано

RR

3

не задано

IU

не задано

0

 IA

не задано

FFFF

 RO

10

10

Примечание: если на программирующем модуле (подключенном к ПК) в качестве адреса получателя (DL) вы зададите значение FFFF, то он перепрошьет все Arduino Fio в пределах сети PAN ID. Поэтому, чтобы прошить только один Fio, не затрагивая другие включенные устройства, необходимо на программирующем модуле присвоить параметру DL значение параметра MY того XBee-модуля, который подключен к целевому Arduino Fio.

Изменение настроек последовательного порта (только под Windows)

Если вы работаете под Windows, то вам нужно внести небольшие изменения в настройках драйвера. Для этого в Диспетчере устройств выберите USB COM порт. Затем щелкните по нему правой кнопкой и выберите Свойства. Перейдите на вкладку Параметры порта и щелкните по кнопке Дополнительно..., далее установите галочку напротив пункта "Set RTS On Close" и нажмите ОК для применения настроек.

Как сконфигурировать XBee-модуль

Сконфигурировать радиомодем можно с помощью терминала, специального приложения X-CTU под Windows или с помощью утилиты Fio XBee Config Tool. Это модифицированная версия программы Shigeru Kobayashi XBeeConfigTool.

Конфигурирование с помощью Arduino Fio XbeeConfigTool

  1. Выберите необходимый последовательный порт
  2. Выберите необходимый режим (Programmer - программирующий модуль; Fio - модуль, установленный на Ардуино)
  3. Выберите скорость передачи данных (57600 бит/с)
  4. Установите идентификатор сети PAN ID (например, 1234 - идентификатор должен быть одинаковым на обоих модулях)
  5. Задайте правильный адрес MY ID (например, 1 - для конечных устройств, 0 - для программирующего устройства)
  6. Нажмите кнопку Configure для внесения заданной конфигурации в XBee-модуль

Конфигурирование радиомодемов с помощью терминала

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

В настройках терминала в качестве символа конца строки задайте только один символ возврата каретки (ASCI 0x0D). Затем откройте порт и введите:

+++

XBee-модуль выдаст ответ:

OK

Для программирующего радио-модема (который и впоследствии будет подключаться к компьютеру), введите:

ATRE,BD6,ID1234,MY0,DLFFFF,D33,IC8, RR3,RO10,WR

XBee-модуль ответит:

OK
OK
OK
OK
OK
OK
OK
OK
OK

Для радио-модема, который будет установлен на Arduino Fio, введите:

ATRE,BD6,ID1234,MY1,DL0,D35,IU0,IAFFFF,RO10,WR

XBee-модуль выдаст ответ:

OK
OK
OK
OK
OK
OK
OK
OK
OK
OK

Вот и все! Теперь для беспроводной прошивки скетчей в Ардуино достаточно подключить к Arduino Fio соответствующий ему XBee-модуль, а в XBee-адаптере оставить программирующий XBee-модуль.


 

Отправка скетчей из среды Arduino IDE в память Fio

Загрузка программ в память Fio происходит точно так же, как и в других платах Arduino.

  1. Выберите в меню Tools/Board/Arduino Fio либо Tools/Board/Arduino Pro или Pro Mini (8MHz)
  2. Выберите необходимый последовательный порт в меню Tools/Serial Port
  3. Напишите программу и нажмите кнопку Upload

Во время прошивки на Arduino Fio должен загореться зеленый светодиод RSSI. Если же вы используете XBeeExplorer, то в процессе прошивки будут также мигать светодиоды TX и RX.

Если Arduino Fio не отвечает, то для устранения вероятной ошибки попробуйте следующее:

  1. Убедитесь, что на Fio подано питание. Если у вас нет аккумулятора - можно организовать питание от USB.
  2. Убедитесь, что переключатель стоит в позиции ON
  3. Проверьте конфигурации радио-модемов. Не пропустили ли вы какой-нибудь параметр? Это распространенная ошибка при использовании терминала в процессе конфигурации.

Если вы все же сомневаетесь, проверьте работоспособность Fio, попробовав прошить его через обычный последовательный интерфейс (как было описано выше).