Прошивка 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, вам потребуется специальный адаптер. Для этой цели подойдет любое из этих устройств:
Перед прошивкой 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
- Выберите необходимый последовательный порт
- Выберите необходимый режим (Programmer - программирующий модуль; Fio - модуль, установленный на Ардуино)
- Выберите скорость передачи данных (57600 бит/с)
- Установите идентификатор сети PAN ID (например, 1234 - идентификатор должен быть одинаковым на обоих модулях)
- Задайте правильный адрес MY ID (например, 1 - для конечных устройств, 0 - для программирующего устройства)
- Нажмите кнопку 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.
- Выберите в меню Tools/Board/Arduino Fio либо Tools/Board/Arduino Pro или Pro Mini (8MHz)
- Выберите необходимый последовательный порт в меню Tools/Serial Port
- Напишите программу и нажмите кнопку Upload
Во время прошивки на Arduino Fio должен загореться зеленый светодиод RSSI. Если же вы используете XBeeExplorer, то в процессе прошивки будут также мигать светодиоды TX и RX.
Если Arduino Fio не отвечает, то для устранения вероятной ошибки попробуйте следующее:
- Убедитесь, что на Fio подано питание. Если у вас нет аккумулятора - можно организовать питание от USB.
- Убедитесь, что переключатель стоит в позиции ON
- Проверьте конфигурации радио-модемов. Не пропустили ли вы какой-нибудь параметр? Это распространенная ошибка при использовании терминала в процессе конфигурации.
Если вы все же сомневаетесь, проверьте работоспособность Fio, попробовав прошить его через обычный последовательный интерфейс (как было описано выше).