Arduino:Продукты/Продукты Arduino/Плата Arduino Mega ADK

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Плата Arduino Mega ADK[1]

Плата Arduino Mega ADK – это микроконтроллерная плата на базе чипа ATmega2560 (даташит). У нее есть интерфейс USB-хоста, который основан на чипе MAX3421e и позволяет подключаться к устройствам на Android. Кроме того, плата Arduino Mega ADK оснащена 54-мя цифровыми I/O контактами (из которых 15 можно использовать для ШИМ), 16 входными аналоговыми контактами, 4 портами UART (аппаратными последовательными портами), кварцевым генератором на 16 МГц, USB-соединением, разъемом для питания, ICSP-гребешком и кнопкой сброса.

Плата Arduino Mega ADK основана на Arduino Mega 2560.

Как и платы Mega 2560 и Uno, Mega ADK оснащена чипом ATmega8U2, который запрограммирован в качестве преобразователя USB-сигнала в последовательный сигнал.

У 2-ой версии Mega ADK есть резистор, который подтягивает линию HWB на 8U2 к «земле», упрощая переход в режим DFU.

У 3-ей версии платы появились следующие функции:

  • Распиновка 1.0: Рядом с контактом AREF добавлены контакты SDA и SCL, а рядом с контактом RESET добавлены еще два контакта – IOREF и еще один. Контакт IOREF позволяет «шилду» адаптировать напряжение, идущее от платы. В будущем «шилды» будут совместимы и с платами на AVR, которые работают на 5 вольтах, и с Arduino Due, которая работает на 3,3 вольтах. Второй контакт пока никуда не подключен, он зарезервирован для будущего использования.
  • Более стабильная RESET-цепь.

Информацию об использовании платы с Android OS читайте тут.

Информацию о гарантии можно почитать тут.

С чего начать

Здесь можно почитать о том, как настроить плату, использовать IDE Arduino, и прочую ознакомительную информацию.

Нужна помощь?

  • О проектах читайте на форумах Arduino
  • Клиентскую поддержку о самих продуктах можно запросить тут

Технические характеристики

  • Микроконтроллер – ATmega2560
  • Рабочее напряжение – 5 вольт
  • Входное напряжение (рекомендуемое) – 7-12 вольт
  • Входное напряжение (лимит) – 6-20-вольт
  • Цифровые I/O контакты – 54 шт. (из которых 15 шт. можно использовать для ШИМ)
  • Входные аналоговые контакты – 16 шт.
  • Максимальная сила тока на один I/O контакт – 40 миллиампер
  • Максимальная сила тока на контакт 3.3V – 50 миллиампер
  • Flash-память – 256 Кб (из которых 8 Кб используются загрузчиком)
  • SRAM – 8 Кб
  • EEPROM – 4 Кб
  • Тактовая частота – 16 МГц
  • Чип для USB-хоста – MAX3421E
  • Длина – 101,52 мм.
  • Ширина – 53,3 мм.
  • Вес – 36 грамм

Питание

Плату Arduino Mega ADK можно запитать через USB-соединение или внешний источник питания. Источник питания выбирается автоматически.

Внешнее (не USB) питание может идти либо от адаптера, преобразующего переменный ток в постоянный, либо от батареи. Адаптер подключается присоединением 2,1-миллиметрового коннектора с центральным положительным контактом к разъему для питания на плате. Провода от батареи можно подключить к контактам GND и Vin на коннекторе POWER.

Примечание

Поскольку плата Arduino Mega ADK – это USB-хост, если телефону нужна будет зарядка, он будет тянуть ее от платы. Если ADK питается через USB, то суммарной силой тока, доступной для телефона и платы, будет 500 миллиампер. Внешний регулятор питания может дать до 1500 миллиампер, но при этом для телефона и платы Mega ADK будут доступны только 750 миллиампер. Оставшиеся 750 миллиампер зарезервированы для всевозможных контроллеров и датчиков, подключенных к плате. Чтобы давать такой ток, источник питания должен быть в состоянии обеспечить 1,5 ампера.

Плата работает на внешнем питании от 5,5 до 16 вольт. Однако, если подать на плату менее 7 вольт, контакт 5V может получить меньше 5 вольт, из-за чего плата начнет работать нестабильно. Если подать больше 12 вольт, регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон – от 7 до 12 вольт.

Контакты для питания, имеющиеся на Arduino Mega ADK:

  • VIN – входное напряжение для платы Arduino при использовании внешнего источника питания (в отличие от 5 вольт, идущих от USB-соединения или другого отрегулированного источника питания). Через этот контакт можно как подавать питание, так и тянуть его оттуда (если напряжение подается на разъем для питания).
  • 5V – подача 5 вольт от регулятора напряжения, имеющегося на плате. Плату можно питать либо от разъема для питания (7-12 вольт), либо от USB-соединения (5 вольт), либо от контакта VIN (7-12 вольт). Подача напряжения на контакты 5V и 3.3V идет в обход регулятора напряжения и может повредить плату. Делать этого не рекомендуется.
  • 3V3 – подача 3,3 вольт, сгенерированных встроенным регулятором напряжения. Максимальная сила тока, которую можно тянуть отсюда – 50 миллиампер.
  • GND – контакты для «земли».
  • IOREF – эталонное напряжение, на котором работает микроконтроллер. Правильно настроенный «шилд» может прочитать напряжение на контакте IOREF и выбрать нужный источник питания или переключиться на нужную логику – 3,3-вольтовую или 5-вольтовую.

Память

Плата Mega ADK имеет 256 Кб flash-памяти для хранения кода (из которых 8 Кб используются загрузчиком), 8 Кб SRAM-памяти и 4 Кб EEPROM-памяти (запись и считывание на ней можно делать при помощи библиотеки EEPROM).

Входные и выходные контакты

Каждый из 50-ти цифровых контактов Mega ADK можно использовать и в качестве входного, и в качестве выходного контакта – при помощи функций pinMode(), digitalWrite() и digitalRead(). Они работают на 5 вольтах. Каждый контакт может получать/отдавать 40 миллиампер и имеет подтягивающий резистор (по умолчанию отключен) на 20-50 кОм. Кроме того, некоторые контакты выполняют специальные функции:

  • Последовательная передача данных: класс Serial0-ой (RX) и 1-ый (TX) контакты; класс Serial119-ый (RX) и 18-ый (TX) контакты; класс Serial217-ый (RX) и 16-ый (TX) контакты; класс Serial315-ый (RX) и 14-ый (TX) контакты. Используются для получения (RX) и передачи (TX) последовательных TTL-данных. 0-ой и 1-ый контакты также подключены к соответствующим контактам на чипе Atmega8U2, который конвертирует USB в TTL.
  • Внешние прерывания: 2-ой (прерывание 0), 3-ий (прерывание 1), 18-ый (прерывание 5), 19-ый (прерывание 4), 20-ый (прерывание 3) и 21-ый (прерывание 2) контакты. Эти контакты можно настроить на запуск прерывания при переключении на значение LOW, возрастающем/ниспадающем фронте импульса или изменении значения. Более подробно читайте в статье о функции attachInterrupt().
  • ШИМ: контакты со 2-го по 13-ый, а также с 44-го по 46-ой. Обеспечивают выдачу 8-битной ШИМ при помощи функции analogWrite().
  • Интерфейс SPI: 50-ый (MISO), 51-ый (MOSI), 52-ой (SCK) и 53-ий (SS) контакты. Эти контакты поддерживают SPI-коммуникацию при помощи библиотеки SPI. Контакты шины SPI также выведены на ICSP-гребешок, который физически совместим с платами Uno, Duemilanove и Diecimila.

Чип MAX3421E коммуницирует с Arduino через шину SPI и потому использует следующие контакты:

  • Цифровые: 7-ой (RST), 50-ый (MISO), 51-ый (MOSI) и 52-ой (SCK) контакты. Примечание: не используйте 7-ой цифровой контакт ни в качестве входного, ни в качестве выходного, т.к. он используется для коммуникации с MAX3421E.
  • Не выведенные на гребешки: контакты PJ3 (GP_MAX), PJ6 (INT_MAX), PH7 (SS).
  • Встроенный светодиод: 13-ый цифровой контакт. Если подать на этот контакт HIGH, светодиод включится, а если LOW, то выключится.
  • Интерфейс TWI: 20-ый (SDA) и 21-ый (SCL) контакты. Поддерживают TWI-коммуникацию при помощи библиотеки Wire. Обратите внимание, что эти контакты находятся не там, где TWI-контакты у Duemilanove и Diecimila.

Плата Mega ADK также оснащена 16-тью аналоговыми контактами, каждый из которых поддерживает 10-битное разрешение (т.е. может работать с 1024 разными значениями). По умолчанию вольтовый диапазон на них составляет от 5 вольт до «земли», однако его верхнюю границу можно изменить при помощи контакта AREF и функции analogReference().

Вот еще несколько контактов, имеющихся на плате:

  • AREF – эталонное напряжение для входных аналоговых контактов. Используется с функцией analogReference().
  • Reset – если подать на этот контакт значение LOW, это сбросит микроконтроллер. Как правило, используется, чтобы добавить на «шилд» кнопку сброса, потому что подключение «шилда» блокирует эту кнопку на самой плате.

Коммуникация

Плата Arduino Mega ADK имеет несколько средств для коммуникации с компьютером, а также с другими Arduino и микроконтроллерами. Чип ATmega2560 оснащен четырьмя аппаратными UART для последовательной TTL (5 вольт) коммуникации. Чип ATmega8U2 перенаправляет один из этих UART через USB, а также делает так, что ПО компьютера видит Arduino как виртуальный COM-порт (машинам на Windows для этого нужен файл *.inf, тогда как машины на OSX и Linux распознают плату как COM-порт автоматически). Кроме того, в IDE Arduino встроен монитор порта, который позволяет отправлять простые текстовые данные – и на плату, и от нее.

Также плата оснащена светодиодами RX и TX, которые загораются при передаче данных через чип ATmega8U2/16U2 и через USB-соединение (но не через последовательный порт на 0-ом и 1-ом контактах).

Последовательная передача данных через цифровые контакты Arduino Mega ADK осуществляется при помощи библиотеки SoftwareSerial.

Чип ATmega2560 также поддерживает коммуникацию через SPI и TWI. Для упрощения коммуникации через шину TWI в IDE Arduino есть библиотека Wire. Для коммуникации через SPI используется библиотека SPI.

Интерфейс для USB-хоста обеспечивается чипом MAX3421E, который позволяет Arduino Mega ADK подключаться и взаимодействовать с любым устройством, имеющим USB-порт. Это позволяет вам, к примеру, взаимодействовать с различными типами телефонов, управлять камерами Canon, подключаться к клавиатурам, мышкам и игровым контроллерам (вроде Wiimote и геймпадов для PS3).

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

Плата Arduino Mega ADK программируется через IDE Arduino. О языке программирования Arduino читайте тут, а руководства ищите тут.

Чип ATmega2560 на Arduino Mega ADK идет с предзаписанным загрузчиком (таким же, как и на Arduino Mega 2560), который позволяет загружать новый код без использования внешнего аппаратного программатора. Он коммуницирует через протокол STK500v2 (описание, заголовочные файлы).

Вы также можете обойти загрузчик и программировать микроконтроллер через ICSP-гребешок при помощи Arduino ISP или похожего устройства. Более подробно читайте в этих инструкциях.

Исходный код прошивки ATmega8U2 можно скачать с GitHub-репозитория Arduino. Загрузка прошивки на чип ATmega8U2 осуществляется при помощи загрузчика DFU, который активируется следующим образом:

  • На платах версии Rev1. Припаяйте перемычку на задней части платы (рядом с картой Италии) и сбросьте 8U2.
  • На платах версии Rev2. Здесь есть резистор, который притягивает линию HWB на 8U2/16U2 к «земле», тем самым упрощая переход в режим DFU. Для загрузки новой прошивки можно использовать либо программу FLIP от Atmel (Windows), либо DFU Programmer (Mac OS X или Linux). Или можно воспользоваться ISP-гребешком и внешним программатором (это перезапишет загрузчик DFU). Более подробно читайте в этом руководстве.

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

Плата Arduino Mega ADK устроена так, что ей не требуется ручное нажатие на кнопку сброса перед загрузкой нового кода: сброс выполняется на программном уровне – на компьютере, к которому подключена Arduino.

Одна из аппаратных линий для управления потоками на ATmega8U2 (если точнее, DTR) подключена к линии сброса на ATmega2560 через конденсатор емкостью 100 нанофарад. Когда на эту линию подается LOW, этого достаточно, чтобы сбросить чип. Это позволяет вам загружать новый код, просто нажав в IDE Arduino кнопку загрузки. Это означает также, что у загрузчика может быть более короткий таймаут, поскольку подачу LOW на DTR можно привязать к началу загрузки.

Эта особенность влияет на работу платы и в другом. Если Arduino Mega ADK подключена к компьютеру на Mac OS X или Linux, то сбрасывается каждый раз при настройке соединения (через USB) между нею и IDE Arduino. Следующие полсекунды (или около того) на Mega ADK выполняется запуск загрузчика. Хотя он запрограммирован, чтобы игнорировать дефектные данные (т.е. все, что не касается загрузки нового кода), он все же перехватит несколько первых байтов, посланных на плату после открытия соединения. Таким образом, если скетч при первом запуске получает начальные настройки или другие важные данные, убедитесь, что ПО, с которым общается этот скетч, ждет примерно секунду после открытия соединения и перед отправкой этих данных.

Плата Mega ADK имеет линию (с надписью RESET-IN), которую можно обрезать, чтобы отключить автоматический сброс. Чтобы снова его включить, контактные площадки по обе стороны этой линии нужно снова припаять друг к другу. Кроме того, автосброс можно отключить, подсоединив резистор на 100 Ом между контактом 5V и линией сброса; более подробно читайте в этом форумном посте.

Защита от перегрузок

Плата Arduino Mega ADK оснащена восстанавливаемым предохранителем, который защищает USB-порты компьютера от коротких замыканий и перегрузок. Многие компьютеры имеют собственную защиту от подобных неприятностей, но этот предохранитель добавляет к ней еще один слой. Если на USB-порт будет подано свыше 500 миллиампер, предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.

Физические характеристики и совместимость с «шилдами»

Максимальные длина и ширина печатной платы Mega ADK составляют 10,16 см и 5,33 см соответственно, однако USB-порт и разъем для питания могут немного выходить за эти пределы. Кроме того, на плате есть 3 отверстия, благодаря которым ее можно прикрепить к какому-либо корпусу или поверхности. Обратите внимание, что расстояние между 7-ым и 8-ым контактами составляет 0,406 см, а между остальными – 0,254 см.

Плата Arduino Mega ADK совместима с большинством «шилдов», разработанных для моделей Uno, Diecimila и Duemilanove. Цифровые контакты с 0-го по 13-ый (и прилегающие к ним контакты AREF и GND), входные аналоговые контакты с 0-го по 5-ый, гребешок для питания и ICSP-гребешок находятся на тех же местах.

Кроме того, на тех же контактах (0-ом и 1-ом) расположен и главный UART (последовательный порт), а также внешние прерывания 0 и 1 (2-ой и 3-ий контакты соответственно). Также, как на Duemilanove и Diecimila, шина SPI доступна через гребешок ICSP. Но обратите внимание на то, что шина I2C находится не на 4-ом и 5-ом контактах (как на Diecimila и Duemilanove), а на 20-ом и 21-ом.

Драйверы и установка

Для этой платы вам нужно будет поменять файл «boards.txt», который находится по адресу Arduino-00xx > hardware > arduino.

Обновленный файл для Arduino 0022 или старше можно скачать тут; файл для Arduino 1.0 (бета)тут.

Документация

Плата Arduino Mega ADK – это оборудование, которое распространяется по принципу «open-source». Вы можете создать собственную плату на базе Mega ADK, используя следующие файлы:

См.также

Внешние ссылки