Arduino Fio

Общие сведения

Arduino Fio - это устройство на базе микроконтроллера ATmega328P (datasheet), работающего на частоте 8 МГц от 3.3В. В его состав входит: 14 цифровых входов/выходов (из них 6 могут использоваться в качестве ШИМ-выходов), 8 аналоговых входов, кварцевый резонатор, кнопка сброса и контактные площадки для впаивания разъемов. На плате предусмотрен разъем для подключения литий-полимерного аккумулятора, а также цепи для его подзарядки от USB. На обратной стороне платы расположено гнездо для подключения модулей XBee.

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

Arduino Fio был разработан Shigeru Kobayashi и компанией SparkFun Electronics, занимающейся производством этих плат.

Схема и исходный проект

Файлы EAGLE: arduino-fio-reference-design.zip

Схема: Arduino-Fio-schematic.pdf

Характеристики

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

Питание

Arduino Fio может быть запитан от различных источников:

  • через макетную плату или кабель FTDI, подсоединенный к шестиконтактному разъему (отмечен на обратной стороне платы);
  • от стабилизированного источника питания с напряжением 3.3В, подключенного к выводу "3V3";
  • от литий-полимерного аккумулятора, подключенного к выводам BAT.

Ниже перечислены выводы питания, расположенные на плате:

  • BAT. Для питания платы от литий-полимерного аккумулятора.
  • 3V3. Стабилизированное напряжение 3.3В.
  • GND. Выводы земли.

Память

Объем флеш-памяти программ микроконтроллера ATmega328P составляет 32 КБ (из которых 2 КБ используются загрузчиком). Микроконтроллер также имеет 2 КБ памяти SRAM и 1 КБ EEPROM (из которой можно считывать или записывать информацию с помощью библиотеки EEPROM).

Входы и выходы

С использованием функций pinMode()digitalWrite() и digitalRead() каждый из 14 цифровых выводов Arduino Fio может работать в качестве входа или выхода.Уровень напряжения на выводах ограничен 3.3В. Максимальный ток, который может отдавать или потреблять один вывод, составляет 40 мА. Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 20-50 кОм. Помимо этого, некоторые выводы Ардуино могут выполнять дополнительные функции:

  • Последовательный интерфейс: выводы RXI (D0) и TXO (D1). Используются для получения (RX) и передачи (TX) данных по последовательному интерфейсу. Эти выводы соединены с линиями DOUT и DIN разъема для XBee-модуля.
  • Внешние прерывания: выводы 2 и 3. Данные выводы могут служить источниками прерываний, возникающих при различных условиях: при низком уровне сигнала, по фронту, по спаду или при изменении сигнала на этих выводах. Для получения дополнительной информации см. функцию attachInterrupt().
  • ШИМ: выводы 3, 5, 6, 9, 10 и 11. С помощью функции analogWrite() могут выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
  • Интерфейс SPI: выводы 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Данные выводы позволяют осуществлять связь по интерфейсу SPI. В устройстве реализована аппаратная поддержка SPI, однако на данный момент язык Ардуино пока ее не поддерживает.
  • Светодиод: 13. Встроенный светодиод, подсоединенный к цифровому выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается.

В Arduino Fio есть 8 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). Измерение напряжения осуществляется относительно диапазона от 0 до VCC. Помимо этого, некоторые из аналоговых входов имеют дополнительные функции:

  • I2C: вывод 4 (SDA) и вывод 5 (SCL). С использованием библиотеки Wire позволяют осуществлять связь по интерфейсу I2С.

Помимо перечисленных на плате есть еще несколько выводов:

  • AREF. Опорное напряжение встроенного АЦП. Задействуется с помощью функции analogReference().
  • DTR. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения

На плате Arduino Fio также присутствует 8 нераспаянных контактных отверстий:

  • BAT + и BAT -. Предназначены для подключения аккумулятора. Как правило, используются тогда, когда нет возможности подключить аккумулятор к штатному разъему.
  • CHG 5V and CHG -. Предназначены для подключения к зарядным клеммам. Обычно используются для добавления внешнего разъема для подзарядки.
  • SW. Соединен с переключателем питания на плате. Как правило, используется для добавления внешнего переключателя.
  • CTS. Соединен с выводом #CTS/DIO7 разъема XBee. Обычно используется для управления спящим режимом XBee-модуля.
  • DTR. Соединен с выводом #DTR/SLEEP_RQ/DI8 разъема XBee. Обычно используется для управления спящим режимом XBee-модуля.

Смотрите также соответствие выводов Arduino и ATmega328P

Связь

Arduino Fio предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega328P имеется приемопередатчик UART, позволяющий осуществлять последовательную связь посредством цифровых выводов 0 (RX) и 1 (TX). В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные через внешнее устройство, осуществляющее связь с компьютером по последовательному интерфейсу. В качестве такого устройства рекомендуется использовать кабель FTDI или FTDI Basic. Встроенный разъем mini-USB предназначен только для подзарядки аккумулятора и не осуществляет функцию передачи данных.

Библиотека SoftwareSerial позволяет реализовать последовательную связь на любых цифровых выводах Arduino Fio.

В микроконтроллере ATmega328P также реализована поддержка последовательных интерфейсов I2C (TWI) и SPI. В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной I2C; для получения более подробной информации см. документацию. Для работы с интерфейсом SPI см. даташит микроконтроллера ATmega328P.

Физические характеристики

Габаритные размеры печатной платы Arduino Fio: 2.8 см х 6.6 см.

Дополнительная информация

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

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