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

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

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


Arduino Mega 2560[1]

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

Плата Arduino Mega 2560 заменила собой Arduino Mega.

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

С чего начать

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

Если нужна помощь, то...

  • ...об IDE Arduino можно почитать тут
  • ...о проектах можно почитать тут
  • ...о самих продуктах можно спросить тут

Для вдохновения

О проектах, созданных при помощи Arduino/Genuino Mega 2560 можно почитать на Arduino Project Hub – образовательной платформе официального сайта Arduino. Вот несколько проектов оттуда:

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

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

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

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

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

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

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

Загрузчик, впрочем, можно обойти и программировать микроконтроллер через ICSP-гребешок (от «in-circuit serial programming») при помощи устройства Arduino ICSP или чего-то похожего. Более подробно читайте здесь.

Исходный код прошивки ATmega16U2 (или 8U2 на платах rev1 и rev2) можно найти на GitHub-репозитории Arduino. Загрузка на чип ATmega16U2/8U2 осуществляется с помощью загрузчика DFU, который можно активировать...

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

Внимание

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

Питание

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

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

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

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

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

Память

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

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

Здесь можно посмотреть распиновку между портами ATmega2560 и контактами Mega 2560.

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

Рекомендуемой силой тока (принимаемого и отдаваемого) для каждого контакта является 20 миллиампер. Кроме того, каждый контакт оснащен подтягивающим резистором на 20-50 кОм (по умолчанию он отключен).

Максимально допустимая сила тока – 40 миллиампер, и если ее превысить, это может привести к повреждению микроконтроллера.

Кроме того, некоторые контакты Mega 2560 имеют специальные функции:

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

Также смотрите распиновку контактов Mega 2560.

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

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

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

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

Плата Arduino Mega 2560 имеет несколько средств для коммуникации с компьютером, другими платами и другими микроконтроллерами. Во-первых, у Mega 2560 есть 4 аппаратных UART для последовательной TTL (5 вольт) коммуникации. Чип ATmega16U2 (на версиях rev1 и rev2ATmega8U2) перенаправляет один из них на USB, а ПО на компьютере видит его как виртуальный COM-порт (машинам на Windows нужен файл *.inf, тогда как машины на OSX и Linux автоматически распознают плату как COM-порт). В IDE Arduino есть монитор порта, который позволяет отправлять простые текстовые данные – как на саму плату, так и от нее. При передаче данных через чип ATmega8U2/16U2 и USB-соединение на компьютер (но не при последовательной коммуникации через 0-ой и 1-ый контакты) на плате будут загораться светодиоды RX и TX.

Для последовательной коммуникации через цифровые контакты Mega 2560 используется библиотека SoftwareSerial.

Плата Mega 2560 также поддерживает интерфейсы SPI и TWI. Для коммуникации через TWI в IDE Arduino предусмотрена библиотека Wire; более подробно о ней читайте тут. Для коммуникации через SPI используйте библиотеку SPI.

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

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

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

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

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

Эта особенность влияет на работу Mega 2560 и в другом. Когда плата Mega 2560 подключена к компьютеру на Mac OS X или Linux, то сбрасывается каждый раз, когда программа настраивает соединение через USB.

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

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

Она называется RESET-EN. Кроме того, автосброс можно отключить, подключив между контактом 5V и линией сброса 110-омовый резистор. Более подробно читайте тут.

Версии

Плата Arduino Mega 2560 не использует чип для FTDI-драйвера, конвертирующий USB-данные в последовательные данные. Вместо этого она оснащена чипом ATmega16U2 (ATmega8U2 в версиях rev1 и rev2), запрограммированным как USB-serial конвертер.

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

Платы Arduino версии rev3 и текущая версия Genuino Mega 2560 оснащены следующими функциями:

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

См.также

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