Современный человеческий социум окружен большим количеством вспомогательных механизмов, облегчающих жизнь индивидуума. С каждым годом техника все «умнеет», беря на себя множество рутинных задач, которыми ранее приходилось заниматься людям.
Самые элементарные вещи, сейчас воспринимающиеся как привычные, к примеру, работа светофора для регулировки транспортного движения, системы вентиляции или отопления в помещениях, лифты или же еще миллионы обыденных мелочей — ранее требовали непосредственного участия оператора-человека. Теперь управлением технологическими устройствами занимаются компьютеры и их младшие братья – микроконтроллеры, такие как, к примеру, ATMega2560.
Описание микроконтроллера

Общее описание
Микроконтроллер – маленький по габаритам, не очень быстрый компьютер, с ограниченным размером оперативной памяти, невысокой тактовой частотой, малой разрядностью обрабатываемых команд. Обычно он представляет собой 8 битный RISC процессор, расположенный на одном чипе с системами ввода-вывода, оперативной и перепрограммируемой памятью. Для обработки видео и аудио он, конечно, не предназначен, но в своей нише служит просто панацеей.
Область применения
Основная область применения – различные устройства, в которых требуется наличие реакций, описываемых логикой, на определенную внешнюю информацию или показания датчиков.
К примеру, можно назвать обычный лифт. Он должен перемещаться между этажами и вверх и вниз, при этом останавливаясь в зависимости от запросов людей снаружи, по пути своего следования, для забора пассажиров. В реальности пример хорош еще и тем, что используется достаточно сложная логика работы. Один из ключевых факторов – если лифт перегружен, то он не будет реагировать на вызов кабины по пути своего следования до момента частичной разгрузки, или если первый пассажир выбрал направление вверх, а желающие им воспользоваться хотят и жмут кнопку «вниз», то на этажах с подобным запросом подъемник не остановится.
Опять же, можно вернуться к регулировке движения автотранспорта. В определенные часы трафик увеличивается в одну сторону, в другие – в обратную. Кроме того, необходимо учитывать частоту пешеходного движения. В обед и вечером количество людей больше, а значит, и разрешающие переход для них и блокирующие езду машин сигналы работают долгое время. В другие периоды наоборот, приоритет дается движению транспортного потока.
Для управления логикой работы устройств или их комплексов, объединенных в «умный» город или дом, и предназначены микроконтроллеры.
Имея достаточно скромные возможностями обработки информации, они, тем не менее, позволяют полностью покрыть весь объем требуемого контроля оборудования. При этом их более низкая цена, минимальное энергопотребление, пассивное охлаждение, крошечные размеры, сравнительно с «большими» компьютерами, – приоритетный плюс в данной области применения.
Характеристики

Речь в статье пойдет о флагманском контроллере ATMega2560 фирмы ATMel. Он служит основой платформы Arduino Mega 2560, объединяющей на единой плате не только сам процессор, но и дополнительно программируемый адаптер USB-COM портов ATMega16u2, позволяющий использовать ATMega2560 в качестве USB HID устройства.
Ранее, в более простых вариантах платформ ATMel, для организации подобной возможности применялись микросхемы шотландской фирмы FTDI.
Характеристики микроконтроллера
Микроконтроллер представлен RISC процессором, разработанным AVR и функционирующим на частоте 16Мгц, которая максимальна из всей линейки продуктов ATMel. На кристалле его чипа расположены все устройства, относимые к общему понятию компьютерной системы: оперативная и перепрограммируемая постоянная, а также flash память, интерфейсные мосты, умножитель.
Процессор характеризуется, как вычислитель одного по времени отклика, на выполнение любой команды, вне зависимости от ее сложности. Разрядность шины адресов и внутренних регистров — 8 бит. Максимальный размер подключаемой, внешней памяти SRAM – 64 Кбайт. Задающий частоту генератор находится в составе самой микросхемы контроллера.
Рабочие характеристики и производительность
Наиболее точно характеристики выражены таблицей:
ЕEPROM (ППЗУ) |
4 Kb |
SRAM (ОЗУ) |
8 Kb |
FLASH ROM |
256 Kb |
Циклов перезаписи EEPROM |
100 000 |
Циклов перезаписи FLASH ROM |
10 000 |
Количество режимов ожидания процессора |
6 |
Таймеры |
|
8bit |
2 |
16bit |
4 |
RTC\Real Time Clock (реального времени) |
1 |
PWM (ШИМ-преобразователи 8bit, выход) |
4 |
Порты |
|
Порты ввода-вывода (общее количество) |
86 |
Аналоговые, по 10bit (вход) |
16 |
Последовательные USART |
4 |
Последовательный SPI, работающий (master/slave) |
1 |
Последовательный, побайтный |
1 |
Цифровые входы\выходы |
54 |
Частота процессора AVR |
16Мгц |
Питание платы Arduino Mega 2560 |
|
стартовое |
1,8В |
рабочее |
5В |
максимальное |
7-12В |
Выходные токи портов 5В |
800мА |
Выходные токи портов 3,3В |
150 мА |
Температурный режим |
-40ºС — +85ºС |
Заявленная скорость обработки команд при номинальной частоте ядра AVR – 16000000 инструкций в секунду.
Порты ввода и вывода
Назначение микроконтроллера – управлять внешним оборудованием, соответственно и для любого из них необходимо большое количество коммуникационных портов. ATMega2560, кроме стандартных, дискретных параллельных и последовательных входов\выходов, оснащен и преобразователями аналоговых сигналов, как в цифровые, так и из них.
Описание пинов
Ниже представлена полная распиновка контактов ATMega2560, с описанием на русском языке.
Аналоговые входы разведены 16 портами, каждый из которых определяет 1024 градации мощности сигнала между 5В и общим контактом платы. Чувствительность на единицу показания уровня составляет 0,004В. Верхние пределы максимального напряжения можно менять функциями микроконтроллера и разницей с пином платы AREF.
Порты аналоговых входов:
Pin |
Примечание |
Адресация |
A0 |
|
54 |
A1 |
|
55 |
A2 |
|
56 |
A3 |
|
57 |
A4 |
TCK |
58 |
A5 |
TMS |
59 |
A6 |
TDO |
60 |
A7 |
TDI |
61 |
A8 |
PC INT 16h |
62 |
A9 |
PC INT 17h |
63 |
A10 |
PC INT 18h |
64 |
A11 |
PC INT 19h |
65 |
A12 |
PC INT 20h |
66 |
A13 |
PC INT 21h |
67 |
A14 |
PC INT 22h |
68 |
A15 |
PC INT 23h |
69 |

Цифровые каналы представлены 54 контактами (пинами), работающими, как на ввод, так и на вывод. Часть линий можно задействовать не только для цифровой дискретной выдачи 0 и +5В, соответствующих логическим 0 и 1, но и изменять программно их выходное напряжение, используя ШИМ(PWM) таймеры.
Pin |
Управление PWM(ШИМ) |
Примечание |
0 |
|
Последовательный RX |
1 |
|
Последовательный TX |
2 |
+ |
IN INT 0h |
3 |
+ |
IN INT 1h |
4-12 |
+ |
|
13 |
+ |
In board LED indicator |
14 |
|
Serial port 3 TX |
15 |
|
Serial port 3 RX |
16 |
|
Serial port 2 TX |
17 |
|
Serial port 2 RX |
18 |
|
Serial port 2 TX \ IN INT 5h |
19 |
|
Serial port 2 RX \ IN INT 4h |
20 |
|
I2C SDA \ IN INT 3h |
21 |
|
I2C SCL \ IN INT 2h |
22-23 |
|
|
44-46 |
+ |
|
47-49 |
|
|
50 |
|
MISO |
51 |
|
MOSI |
52 |
|
SCK |
53 |
|
SCL |
Дополнительно Arduino Mega2560 содержит контакт Reset, подавая низкий сигнал, на который вызывается перезагрузка микроконтроллера. Используется он для плат расширения, если они закрывают собой доступ к кнопке сброса.
Питание atmega2560

Питание самого устройства выполняется или через внешнюю USB шину, или используя блок питания, подключаемый к специализированному входу 2.1, с центральной плюсовой жилой.
В случае применения разъема допустим люфт напряжений на вводе от 5 до 12В, – контроллеры, расположенные на плате, ограничат превышения 5В в шине питания процессора.
Подавать более 12В на ввод не рекомендуется – это может привести к выходу Arduino Mega2560 из строя.
На плате также разведен плюсовой ввод в виде отдельного пина, для возможности нестандартного подключения питания +7-12В. Он используется и как незащищенный вывод тока внешних устройств, если применяется БП.
На самой плате расположены выводы питания, которые можно применять для внешних устройств, если, конечно, ток потребителей не превышает установленных пределов. Это выход +5В с максимальной выдачей 800 мА, +3.3В с потолком в 150 мА.
Кроме них, рядом расположен общий GND, а также пин IOREF, дающий внешнему оборудованию информацию об используемом напряжении системы и необходимости применения ими отдельных источников питания.
Особенности

В Datasheet к ATMega2560 его особенностями названы:
- непосредственный старт работы процессора при подаче питания и определения контроллером, чем был вызван запуск – появлением тока или же нажатием кнопки Reset;
- внутренний задающий генератор частоты;
- возможность использовать аппаратные прерывания, как от внешних источников, так и сформированные внутренними процессами схемы;
- шесть режимов ожидания процессора – Idle, ADC Noise Reduction, Power-save, Power-down, Standby и Extended Standby.
Отличительные преимущества
Наибольшие плюсы ATMega2560 сравнительно с моделями контроллеров других производителей – это универсальность, отработанная система разработки кода процессора Arduino IDE, документированность возможностей, наличие множества модулей расширения.
Также большое значение имеет время выполнения команд самим устройством – оно заявлено одинаковым для всех инструкций, вне зависимости от их сложности.
Кроме того, это один из самых быстрых контроллеров подобного класса – его частота в 16Мгц с трудом достижима конкурентами.
Хочется также в качестве преимуществ этой платы указать на ее легкое программирование, простое подключение к ПК, благодаря используемому ATMega16u2 или его аналогов в Arduino. Да и форм-фактор поставки с удобным, хорошо документированным расположением вводов\выводов дает большое преимущество именно этому продукту.