Arduino Mega, программируемый контроллер на базе ATmega1280

Опубликовано 29.07.2011 Ведущий Антон Панкратов

Платформа Arduino пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Со времени появления первой Arduino на основе ATmega8 аппаратная часть совершенствовалась, использовались все более новые и мощные микроконтроллеры, создавались дополнительные модули, расширяющие возможности базовой модели. На настоящий момент существует несколько версий платформ Arduino, отличающихся установленным микроконтроллером, форм-фактором и другими параметрами. Например, здесь у нас представлены платы Arduino Nano на базе микроконтроллера ATmega328, Freeduino 2009 (аналог Arduino Duemilanove) на базе ATmega168 и Arduino Mega на основе ATmega1280. На последней плате остановимся подробнее. Данная плата, конечно, проигрывает двум другим в компактности, но зато обладает преимуществом в количестве портов. Arduino Mega содержит 54 цифровых входа/выхода (14 из которых могут использоваться как выходы ШИМ) и 16 аналоговых входов. У платы Freeduino, к слову, всего 14 контактов цифрового ввода/вывода, из них шесть ШИМ и 6 аналоговых входов. Arduino Mega содержит также 4 последовательных порта UART, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB или подать питание при помощи адаптера AC/DC, или аккумуляторной батареей. Установленная на плате микросхема FTDI FT232RL направляет один из интерфейсов через USB, а драйверы FTDI предоставляют виртуальный COM порт программе на компьютере. Программирование осуществляется посредством ПО Arduino. Микроконтроллер ATmega1280 поставляется с записанным загрузчиком, позволяющим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500. Имеется возможность не использовать загрузчик и запрограммировать микроконтроллер через выводы блока ICSP методом внутрисхемного программирования. Arduino Mega совместима со всеми платами расширения, разработанными для платформ Duemilanove. Расположение выводов 0 – 13 (и примыкающих AREF и GND), аналоговых входов 0 – 5, силового разъема и некоторых других выводов на Mega соответствует расположению на плате Freeduino. Однако расположение выводов (20 и 21) связи I2C на платформе Mega не соответствуют расположению тех же выводов (аналоговые входы 4 и 5) на Freeduino. Продемонстрируем совместимость плат Arduino Mega и Freeduino на примере управления шаговым двигателем с использованием силового модуля Motor Shield. Плата Freeduino уже прошита простенькой программой, управляющей шаговым двигателем в разных режимах. Эту же программу для проверки мы зальем в Arduino Megu. Устанавливаем модуль Motor Shield согласно распиновке, подключаем питание и убеждаемся, что шаговый двигатель так же прекрасно управляется платой Arduino Mega.