Arduino Pro

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

Arduino Pro - это устройство на базе микроконтроллера ATmega168 (datasheet) или ATmega328 (datasheet). Для заказа доступны две версии устройства - 3.3В / 8 МГц или 5В / 16 МГц. В состав Arduino Pro входит: 14 цифровых входов/выходов (из них 6 могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, разъем для подключения аккумулятора, переключатель питания, кнопка сброса, а также контактные площадки для впаивания разъема питания, ICSP-разъема для внутрисхемного программирования и внешних выводов платы. Шестиконтактный разъем может служить для питания и взаимодействия с платой через USB посредством FTDI-кабеля либо макетной платы Sparkfun.

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

Arduino Pro разработан и изготовлен компанией SparkFun Electronics.

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

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

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

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

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

Питание

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

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

  • VIN. Напряжение, поступающее на Ардуино от аккумулятора или внешнего источника питания (в соответствии с позицией переключателя). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если устройство запитано от аккумулятора или внешнего источника питания.
  • VСС. Стабилизированное напряжение питания на плате. Его источником может быть либо аккумулятор, либо стабилизатор напряжения внешнего источника питания, либо USB-Serial преобразователь.
  • GND. Выводы земли.

Память

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

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

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

  • Последовательный интерфейс: выводы 0 (RX) и 1 (TX). Используются для получения (RX) и передачи (TX) данных по последовательному интерфейсу. Эти выводы соединены с линиями TX-0 и RX-1 шестиконтактного разъема.
  • Внешние прерывания: выводы 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 Pro есть 6 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). По умолчанию, измерение напряжения осуществляется относительно диапазона от 0 до VCC. Тем не менее, верхнюю границу этого диапазона можно изменить, используя вывод AREF и применив несколько низкоуровневых процедур. Помимо этого, некоторые из аналоговых входов имеют дополнительные функции:

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

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

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

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

Связь

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

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

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

Программирование

Arduino Pro программируется с помощью программного обеспечения Ардуино (скачать). Для получения более подробной информации см. справку и примеры.

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

Тем не менее, микроконтроллер можно прошить и через разъем для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик; более подробно об этом см. соответствующие инструкции.

Автоматический (программный) сброс

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Pro спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Один из выводов шестиконтактного разъема соединен с выводом RESET микроконтроллера ATmega168 или ATmega328 через конденсатор номиналом 100 нФ. Во время подключения к компьютеру этот вывод также связан с одной из линий, участвующих в аппаратном управлении потоком данных, идущих через преобразователь USB-Serial: при использовании кабеля FTDI - с линией RTS, при использовании макетной платы Sparkfun - с линией DTR. Когда на этой линии появляется ноль, вывод RESET, соответственно, также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера. Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Ардуино. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии RESET.

Однако эта система может приводить и к другим последствиям. При подключении Pro к компьютерам, работающим на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой. После сброса на Pro активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Ардуино, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Ардуино, осуществляет отправку спустя секунду после установки соединения.

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

С учетом шестиконтактного разъема и переключателя питания, выступающими за пределы платы, максимальная длина и ширина печатной платы Arduino Pro составляет 5.2 на 5.4 см соответственно. Четыре крепежных отверстия позволяют устанавливать плату в корпус или любую другую поверхность. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.