Arduino Mega 2560

Версія від 18:54, 6 червня 2018, створена Дмитро (обговореннявнесок)
(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Arduino Mega 2560 R3 - вигляд спереду
Arduino Mega2560 R3 - вигляд ззаду
Arduino Mega 2560 - вигляд спереду
Arduino Mega 2560 - вигляд ззаду



Загальні відомості

Arduino Mega 2560 - це пристрій на основі мікроконтролера ATmega2560. У його склад входить все необхідне для зручної роботи з мікро контролером: 54 цифрових входи / виходи (з яких 15 можуть використовуватися в якості ШІМ-виходів), 16 аналогових входів, 4 UART (апаратних приймача для реалізації послідовних інтерфейсів), кварцовий резонатор на 16 МГц , роз'єм USB, роз'єм живлення, роз'єм ICSP для внутрішньо схемного програмування і кнопка скидання. Для початку роботи з пристроєм досить просто подати живлення від AC/DC-адаптера або батарейки, або підключити його до комп'ютера за допомогою USB-кабелю. Arduino Mega сумісний з більшістю плат розширення, розроблених для Arduino Duemilanove і Diecimila.

Mega 2560 - це оновлена версія Arduino Mega.

Arduino Mega 2560 відрізняється від усіх попередніх плат тим, що в ньому для перетворення інтерфейсів USB-UART замість мікросхеми FTDI використовується мікроконтролер ATmega16U2 (ATmega8U2 в версіях плати R1 і R2).

На платі Mega 2560 версії R2 доданий резистор, що підтягує до землі лінію HWB мікроконтролера 8U2. Така дія дозволяє спростити процес оновлення прошивки і перехід пристрою в режим DFU .

Зміни на платі версії R3 перераховані нижче:

Терморегулятори 1.0: додані висновки SDA і SCL (біля виведення AREF), а також два нових виведення, розташованих біля виведення RESET. Перший - IOREF - дозволяє платам розширення підлаштовуватися під робочу напругу Arduino. Даний вивід передбачений для сумісності плат розширення як з 5В-Ардуіно на базі мікроконтролерів AVR, так і з 3.3В-платами Arduino Due. Другий вихід ні до чого не приєднаний і зарезервований для майбутніх цілей. Покращена стійкість ланцюга скидання.


Dfgdgfzdfgvfzdg445454.jpg


Мікроконтролер ATmega16U2 замінений на 8U2

Порівняльна таблиця Mega 2560 і Mega 1280

Uno Mega
Мікроконтролер ATmega328p ATmega2560
Кількість цифрових входів/виходів 14 54
…із них підтримують ШІМ 6 15
Кількість аналогових входів 6 16
Кількість контактів для апаратного переривання 2 6
Об’єм Flash-пам’ят’ (кБ) 32 256
Об’єм SRAM-пам’яті (кБ) 2 8
Об’єм EEPROM-пам’яті (кБ) 1 4
Тактова частота (МГц) 16 16
Кількість апаратних serial-портів 1 4

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

мікроконтролер ATmega2560
робоча напруга
Напруга живлення (рекомендований) 7-12В
Напруга живлення (граничне) 6-20В
Цифрові входи / виходи 54 (з яких 15 можуть використовуватися в якості ШІМ-виходів)
аналогові входи 16
Максимальний струм одного виведення 40 мА
Максимальний вихідний струм виводу 3.3V 50 мА
Flash-пам'ять 256 КБ з яких 8 КБ використовуються завантажувачем
SRAM 8 КБ
EEPROM 4 КБ
Тактова частота 16 МГц

Живлення

Arduino Mega може живитись від USB або від зовнішнього джерела живлення - тип джерела вибирається автоматично.

В якості зовнішнього джерела живлення (НЕ USB) може використовуватися мережевий AC/DC-адаптер або акумулятор / батарея. Штекер адаптера (діаметр - 2.1мм, центральний контакт - позитивний) необхідно вставити у відповідний роз'єм живлення на платі. У разі живлення від акумулятора / батареї, її проводу необхідно під'єднати до висновків Gnd і Vin роз'єму POWER. Напруга зовнішнього джерела живлення може бути в межах від 6 до 20 В. Однак, зменшення напруги живлення нижче 7В призводить до зменшення напруги на виводі 5V, що може стати причиною нестабільної роботи пристрою. Використання напруги більше 12В може призводити до перегріву стабілізатора напруги і виходу плати з ладу. З огляду на це, рекомендується використовувати джерело живлення з напругою в діапазоні від 7 до 12В.

Zxxccvvbbnnmm.jpg


Виводи живлення які розташовані на платі, перераховані нижче:

  • VIN. Напруга, що надходить в Arduino безпосередньо від зовнішнього джерела живлення (не пов'язане з 5В від USB або іншим стабілізованою напругою). Через цей висновок можна як подавати зовнішнє живлення, так і споживати струм, коли пристрій живиться від зовнішнього адаптера.
  • 5V. На цей висновок надходить напруга 5В від стабілізатора напруги на платі, поза незалежності від того, як живиться пристрій: від адаптера (7 - 12В), від USB (5В) або через висновок VIN (7 - 12В). Живити пристрій через висновки 5V або 3V3 не рекомендується, оскільки в цьому випадку не використовується стабілізатор напруги, що може привести до виходу плати з ладу.
  • 3V3. 3.3В, що надходять від стабілізатора напруги на платі. Максимальний струм, споживаний від цього висновку, становить 50 мА.
  • GND. Висновки землі.
  • IOREF. Цей висновок надає платам розширення інформацію про робочій напрузі мікроконтролера Ардуіно. Залежно від напруги, ліченого з виведення IOREF, плата розширення може переключитися на відповідний джерело живлення або задіяти перетворювачі рівнів, що дозволить їй працювати як з 5В, так і з 3.3В-пристроями.

Пам'ять

У мікроконтролері ATmega2560 є 256 КБ флеш-пам'яті програм (з яких 8 КБ використовуються завантажувачем), 8 КБ пам'яті SRAM і 4 КБ EEPROM (для роботи з цією пам'яттю служить бібліотека EEPROM ).

Входи і виходи

З використанням функцій pinMode (), digitalWrite () і digitalRead () кожен з 54 цифрових виводів Arduino Mega можна налаштувати на роботу в якості входу або виходу. Рівень напруги на висновках обмежений 5В. Максимальний струм, який може віддавати або споживати один вивід, становить 40 мА. Всі виводи пов'язані з внутрішніми підтягуються резисторами (за замовчуванням відключеними) номіналом 20-50 кОм. Крім цього, деякі виводи Arduino можуть виконувати додаткові функції:

  • Послідовний інтерфейс Serial: виводи 0 (RX) і 1 (TX); Serial 1: 19 (RX) і 18 (TX); Serial 2: 17 (RX) і 16 (TX); Serial 3: 15 (RX) і 14 (TX). Дані виводи використовуються для отримання (RX) і передачі (TX) даних по послідовному інтерфейсу. Виводи 0 і 1 також з'єднані з відповідними виводами мікросхеми ATmega16U2, яка виконує роль перетворювача USB-UART.
  • Зовнішні переривання: виводи 2 (переривання 0), 3 (переривання 1), 18 (переривання 5), 19 (переривання 4), 20 (переривання 3) і 21 (переривання 2). Ці виводи можуть використовуватися в якості джерел переривань, що виникають при різних умовах: при низькому рівні сигналу, при фронті, спаді або зміні сигналу. Для отримання додаткової інформації див. функцію attachInterrupt () .
  • ШІМ: виводи 2 - 13 і 44 - 46. За допомогою функції analogWrite () можуть виводити 8-бітові аналогові значення в вигляді ШІМ-сигналу.
  • Інтерфейс SPI: виводи 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Із застосуванням бібліотеки SPI дані виводи дозволяють здійснювати зв'язок по інтерфейсу SPI. Лінії SPI також виведені на роз'єм ICSP, сумісний з Arduino Uno, Duemilanove і Diecimila.
  • Світлодіод: 13. Вбудований світлодіод, приєднаний до виводу 13. При відправці значення HIGH світлодіод включається, при відправці LOW - вимикається.
  • TWI: виводи 20 (SDA) і 21 (SCL). З використанням бібліотеки Wire дані виводии дозволяють здійснювати зв'язок по інтерфейсу TWI. Зверніть увагу, що розташування цих виводів відрізняється від Arduino Duemilanove і Diecimila.

В Arduino Mega 2560 є 16 аналогових входів, кожен з яких може представити аналогову напругу у вигляді 10-бітного числа (1024 різних значення). За замовчуванням, вимір напруги здійснюється відносно діапазону від 0 до 5 В. Проте, верхню межу цього діапазону можна змінити, використовуючи вивід AREF і функцію analogReference ().

Крім перерахованих на платі існує ще кілька виводів:

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

Зв'язок

Arduino Mega 2560 надає ряд можливостей для здійснення зв'язку з комп'ютером, ще одним Arduino або іншими мікроконтролерами. У ATmega2560 є чотири апаратних приймача UART для реалізації послідовних інтерфейсів (c логічним рівнем TTL 5В). Мікроконтролер ATmega16U2 (або ATmega8U2 на платах версії R1 і R2) забезпечує зв'язок одного з приймачів з USB-портом комп'ютера, і при підключенні до ПК дозволяє Arduino визначатися як віртуальний COM-порт (для цього операційній системі Windows потрібно відповідний .inf-файл, на відміну від OSX і Linux, де розпізнавання плати в якості COM-порту відбувається автоматично). У пакет програмного забезпечення Arduino входить спеціальна програма SerialMonitor, що дозволяє зчитувати і відправляти на Arduino прості текстові дані. При передачі даних через мікросхему ATmega8U2 / ATmega16U2 під час USB-з'єднання з комп'ютером, на платі будуть мигати світлодіоди RX і TX. (При послідовній передачі даних за допомогою виводів 0 і 1, без використання USB-перетворювача, дані світлодіоди не використовуються).

Бібліотека SoftwareSerial дозволяє реалізувати послідовну зв'язок на будь-яких цифрових виводах Mega2560.

У мікроконтролері ATmega2560 також реалізована апаратна підтримка послідовних інтерфейсів TWI і SPI. У програмне забезпечення Ардуіно входить бібліотека Wire, що дозволяє спростити роботу з шиною TWI; для отримання більш докладної інформації див. бібліотеку Wire . Для роботи з інтерфейсом SPI використовуйте бібліотеку SPI .

Сумісність

Платформа виконана таким чином, щоб бути максимально сумісною зі своїми попередніми версіями і модулями розширення (shields). Ліва частина плати по конфігурації контактів ідентична Arduino Uno, як по розташуванню, так і по призначенню. Це означає, що Arduino Mega 2560 може просто замінити Arduino Uno, якщо її можливостей перестало хватати.

Виключення являють 20-й и 21-й контакти, котрі призначені для комунікації з другими пристроями по протоколу I?C. В базовій моделі вони комбіновані з 4-м і 5-контактами.

Живлення, розподілення напруг, захист USB і принципи взаємодії аналогічні базовій моделі.

Програмування

Arduino Mega програмується за допомогою програмного забезпечення Arduino.

ATmega2560 в Arduino Mega випускається з прошитим завантажувачем, що дозволяє завантажувати в мікроконтролер нові програми без необхідності використання зовнішнього програматора. Взаємодія з ним здійснюється за оригінальним протоколу STK500. Проте, мікроконтролер можна прошити і через роз'єм для внутрішньосхемного програмування ICSP (In-Circuit Serial Programming), не звертаючи уваги на завантажувач. Вихідний код прошивки мікроконтролера ATmega16U2 (або ATmega8U2 на платах R1 і R2) знаходиться в в репозиторіях Arduino. Прошивка ATmega16U2 / 8U2 включає в себе DFU-завантажувач (Device Firmware Update), що дозволяє оновлювати прошивку мікроконтролера. Для активації режиму DFU необхідно:

  • На платах версії R1: замкнути перемичку на звороті плати (біля зображення Італії), після чого скинути 8U2.
  • На платах версій R2 і вище - для спрощення переходу в режим DFU присутній резистор, що підтягує до землі лінію HWB мікроконтролера 8U2 / 16U2. Після переходу в DFU-режим для завантаження нової прошивки можна використовувати програмне забезпечення Atmel's FLIP (для Windows) або DFU programmer ( для Mac OS X і Linux). Альтернативний варіант - прошити мікроконтролер через роз'єм для внутршньосхемного програмування ISP за допомогою зовнішнього програматора, проте в цьому випадку DFU-завантажувач затреться.

Автоматичне (програмне) скидання

Для того щоб кожен раз перед завантаженням програми не було потрібно натискати кнопку скидання, Arduino Mega 2560 спроектований таким чином, що дозволяє здійснювати його скидання програмно з підключеного комп'ютера. Один з виводів ATmega8U2, який бере участь в управлінні потоком даних (DTR), з'єднаний з виводом RESET мікроконтролера ATmega2560 через конденсатор номіналом 100нФ. Коли на лінії DTR з'являється нуль, вивід RESET також переходить в низький рівень на час, достатній для перезавантаження мікроконтролера. Дана особливість використовується для того, щоб можна було прошивати мікроконтролер всього одним натисненням кнопки в середовищі програмування Arduino. Така архітектура дозволяє зменшити таймаут завантажувача, оскільки процес прошивки завжди синхронізований зі спадом сигналу на лінії DTR.

Однак ця система може призводити і до інших наслідків. При підключенні Mega 2560 до комп'ютерів, що працюють на Mac OS X або Linux, його мікроконтролер буде скидатися при кожному з'єднанні програмного забезпечення з платою. Після скидання на Arduino Mega2560 активізується завантажувач на час близько пів секунди. Незважаючи на те, що завантажувач запрограмований ігнорувати сторонні дані (тобто всі дані, які не стосуються процесу прошивки нової програми), він може перехопити кілька перших байт даних з посилки, що відправляється платі відразу після установки з'єднання. Відповідно, якщо в програмі, що працює на Arduino, передбачено отримання від комп'ютера будь-яких налаштувань або інших даних при першому запуску, переконайтеся, що програмне забезпечення, з яким взаємодіє Arduino.

На платі Mega 2560 існує доріжка (зазначена як "RESET-EN"), розімкнувши яку, можна відключити автоматичне скидання мікроконтролера. Для повторного відновлення функції автоматичного скидання необхідно спаяти між собою виводи, розташовані по краях цієї доріжки. Автоматичне скидання також можна вимкнути, підключивши резистор номіналом 110Ом між висновком RESET і 5В.

Захист USB від перевантажень

В Arduino Mega 2560 є відновлювані запобіжники, що захищають USB-порт комп'ютера від коротких замикань і перевантажень. Незважаючи на те, що більшість комп'ютерів мають власний захист, такі запобіжники забезпечують додатковий рівень захисту. Якщо від USB-порту споживається струм більше 500мА, запобіжник автоматично розірве з'єднання до усунення причин короткого замикання або перевантаження.

Фізичні характеристики та сумісність з платами розширення

Максимальна довжина і ширина друкованої плати Mega2560 становить 10.2 см і 5.4 см відповідно, з урахуванням роз'єму USB і роз'єму живлення, які виступають за межі плати. Три монтажні отвори дозволяють прикріплювати плату до поверхні або корпусу. Зверніть увагу, що відстань між цифровими виводами 7 і 8 не кратне традиційним 2.54 мм і становить 4 мм.

Arduino Mega2560 спроектований таким чином, щоб бути сумісним з більшістю плат розширення для Ардуіно Uno, Diecimila і Duemilanove. Для цього цифрові висновки 0 - 13 (а також суміжні з ними виводи AREF і GND), аналогові входи 0 - 5, роз'єм живлення і ICSP-роз'єм на всіх платах розташовані однаково. Крім того, в перерахованих пристроях лінії основного приймача UART з'єднані з одними і тими ж виводами (0 і 1), як і лінії зовнішніх переривань 0 і 1 (виводии 2 і 3 відповідно). Лінії інтерфейсу SPI виведені на роз'єм ICSP на обох платах - як на Mega2560, так і на Duemilanove / Diecimila. Слід мати на увазі, що на Arduino Mega розташування виводів інтерфейсу I2C відрізняється від плат Duemilanove / Diecimila: на Arduino Mega це виводи 20 і 21, а на Duemilanove / Diecimila - аналогові входи 4 і 5.

Перелік літератури


1. https://www.arduino.cc/
2. http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:arduino-mega-2560
3. https://doc.arduino.ua/ru/hardware/MotorShield