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

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

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


Arduino Mega [1]

Arduino Mega – это микроконтроллерная плата на базе чипа ATmega1280 (даташит). У нее 54 цифровых I/O контакта (из которых 14 можно использовать для выдачи ШИМ), 16 входных аналоговых контактов, 4 UART (аппаратных последовательных порта), кристаллический тактовый генератор на 16 МГц, USB-соединение, разъем для питания, ICSP-гребешок и кнопка сброса. Она содержит все необходимое для поддержки микроконтроллера; чтобы начать, просто подключите ее к компьютеру при помощи USB-кабеля или запитайте от адаптера, конвертирующего переменный ток в постоянный, или от батареи. Arduino Mega совместима с большинством «шилдов», разработанных для Arduino Duemilanove и Diecimila.

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

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

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

Питание

Arduino Mega можно питать либо от USB-соединения, либо от внешнего источника питания. Источник питания выбирается автоматически.

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

Плата можно работать на напряжении от 6 до 20 вольт. Впрочем, если подать на плату меньше 7 вольт, контакт 5V может получить недостаточно питания, из-за чего плата начнет работать нестабильно. А если подать на Mega больше 12 вольт, регулятор напряжения может перегреться и повредить плату. Поэтому рекомендуется питать плату напряжением в диапазоне от 7 до 12 вольт.

Контакты для питания на Mega:

  • VIN – входное напряжение при использовании внешнего источника питания (в противовес 5 вольтам, идущим от USB-соединения или другого регулированного источника питания). Этот контакт можно использовать по-разному: можно подавать через него питание на плату или брать от него питание, если напряжение на плату подается через контакт для питания.
  • 5V – регулированный источник питания, используемый для питания микроконтроллера и других компонентов платы. Оно может идти либо от USB-соединения, либо от контакта VIN через регулятор напряжения, либо от другого регулированного источника питания.
  • 3V3 – напряжение в 3,3 вольта, идущее от встроенного чипа FTDI. Максимальная сила тока, которую можно тянуть отсюда, составляет 50 миллиампер.
  • GND – контакты для «земли».

Память

Чип ATmega1280 имеет 128 Кб flash-памяти для хранения кода (из них 4 Кб используются загрузчиком), 8 Кб памяти типа SRAM и 4 Кб памяти типа EEPROM. Запись и считывание с этой памяти осуществляется при помощи библиотеки EEPROM.

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

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

  • Последовательная передача данных: класс Serial – контакты 0 (RX) и 1 (TX), класс Serial1 – контакты 19 (RX) и 18 (TX), класс Serial2 – контакты 17 (RX) и 16 (TX), класс Serial3 – контакты 15 (RX) и 14 (TX). Используются для приема (RX) и отправки (TX) последовательных TTL-данных. Контакты 0 и 1 подключены к соответствующим контактам на чипе FTDI, который конвертирует 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-гребешок, который физически совместим с платами Duemilanove и Diecimila.
  • Встроенный светодиод: подключен к цифровому контакту 13. Если подать на него значение HIGH, этот светодиод включится, а если LOW, то выключится.
  • Интерфейс I2C: контакты 20 (SDA) и 21 (SCL). Поддерживают коммуникацию типа I2C (TWI) при помощи библиотеки Wire. Имейте в виду, что эти контакты не совместимы с I2C-контактами на Duemilanove и Diecimila.

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

Также на Mega есть еще несколько специальных контактов:

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

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

Arduino Mega имеет несколько средств для коммуникации с компьютером, а также другими Arduino и микроконтроллерами. Чип ATmega1280 имеет четыре аппаратных последовательных порта (UART) для последовательной (TTL, 5 вольт) коммуникации. Чип FT232RL перенаправляет один из этих портов на USB-соединение, а драйверы FTDI (идут в комплекте с IDE Arduino) обеспечивают виртуальный COM-порт для ПО на компьютере. В IDE Arduino также встроен монитор порта, который позволяет отправлять простые текстовые данные – и на плату, и от нее. Светодиоды RX и TX на плате загораются, когда данные передаются через чип FTDI и USB-соединение с компьютером (но не через последовательный порт на контактах 0 и 1).

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

Чип ATmega1280 также поддерживает коммуникации типа SPI и I2C (TWI). Для первой в IDE Arduino предусмотрена SPI, а для второй – библиотека Wire.

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

Arduino Mega программируется при помощи IDE Arduino. О языке Arduino можно почитать здесь, а о руководствах – здесь.

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

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

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

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

Одна из аппаратных линий, отвечающих на чипе FT232RL за управление потоками (а именно – DTR), через 100-нанофарадный конденсатор подключена к линии сброса на ATmega1280. Если подать на эту линию LOW, значение на линии сброса упадет достаточно, чтобы сбросить чип. Благодаря этому вы можете загружать на плату новый код, просто нажав на кнопку загрузки в IDE Arduino. Это значит, что загрузчику можно сделать более короткий таймаут, скоординировав подачу значения LOW на линию DTR с началом загрузки.

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

Mega также оснащена специальной трассой, обрезав которую, можно отключить функцию автоматического сброса. Чтобы снова включить ее, нужно спаять контактные площадки, находящиеся по обе стороны этой трассы.

Она подписана как «RESET-IN». Вы также можете отключить автосброс, подключив резистор на 110 Ом между контактом 5V и линией сброса. Более подробно читайте в этом посте на форуме Arduino.

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

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

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

Максимальные длина и ширина печатной платы Arduino Mega составляют Длина::101,6 мм. и Ширина::53,34 мм., однако USB-коннектор и разъем для питания выходят немного за пределы ширины.

Также на плате есть несколько отверстий, благодаря которым ее можно прикрепить к какой-либо поверхности или корпусу. Обратите внимание, что расстояние между цифровыми контактами 7 и 8 составляет 4,06 мм, а между остальными – 2,54 мм.

Mega совместима с большинством «шилдов», разработанных для Duemilanove и Diecimila. Цифровые контакты с 0 по 13 (а также прилегающие к ним AREF и GND), входные аналоговые контакты с 0 по 5, разъем для питания и ICSP-гребешок находятся в тех же местах. Более того, главный UART (последовательный порт) размещен на тех же контактах (0 и 1), как и внешние прерывания 0 и 1 (контакты 2 и 3). Интерфейс SPI доступен через ICSP-гребешок – и на Mega, и на Duemilanove/Diecimila. Пожалуйста, обратите внимание, что шина I2C на Mega (контакты 20 и 21) размещена не там, где у Duemilanove/Diecimila(входные аналоговые контакты 4 и 5).

Фото Arduino Mega сделано SpikenzieLabs.

См.также

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