Модуль ARDUINO DUE
ARDUINO DUE — старшая и достаточно мощная модель в семействе плат ARDUINO. Именно в ней, в качестве основного управляющего контроллера, впервые был реализован высокотехнологичный 32-битный ARM-процессор ATSAM3X8E-AU (AT91SAM ARM) со встроенным модулем защиты памяти. Предоставила микроконтроллер корпорация Atmel, широко известная среди производителей микрочипов. Такой смелый шаг по переходу с одного типа процессоров на другой позволил инженерам ARDUINO увеличить вычислительную мощность аппаратной платформы, полностью доступную для нужд пользователей. Тактовая частота 84 МГц и 32-битная архитектура, которыми обладает микроконтроллер, позволяют вычислять большинство операций над целыми числами в 4 байта за один такт. Процессор максимально совместим со средой разработки ARDUINO IDE и поддерживает большинство подключаемых библиотек и функций. Перенос ваших программ с других ARDUINO-платформ не составит особого труда. Модуль DUE, при верном подключении, прекрасно работает в сочетании с аналогичными платами, построенными на микроконтроллерах ATmega.
Если вы ранее не были знакомы с подобными микроконтроллерными платами, поверьте, самое время окунуться в мир ARDUINO - удобным комплексом программных и аппаратных средств, предоставляющим как начинающим, так и опытным пользователям неограниченные возможности для проектирования и разработке всевозможных систем автоматики и робототехники. Большинство ARDUINO-совместимых плат реализованы по технологии модульной сборки, и позволяют собирать ваши изделия без применения паяльника.
Скорее всего, вы уже задумывались и о приобретении модулей расширения для вашего будущего проекта на ARDUINO, так как практически ни один проект без них не обходится. Или, возможно, модули у вас уже имеются. Пожалуйста, будьте предельно внимательны и осторожны в процессе их совмещения друг с другом. В отличии от DUE, подавляющее большинство плат-расширений работают от постоянного напряжения 5 вольт, именно такой же вид питания используют и основные модели микроконтроллерных плат ARDUINO с микропроцессорами AVR. К самым популярным из них можно отнести базовую UNO R3, миниатюрную Nano V3.0 или полноразмерную MEGA 2560 R3. Если вы находитесь на пороге ознакомительного изучения ARDUINO, попробуйте начать именно с них, тем самым облегчив получение первых навыков.
Особенности DUE
Модуль ARDUINO DUE функционирует от постоянного стабильного напряжения 3.3 вольта и изначально совместима со всеми модулями-расширениями, использующими в качестве основного такое же питание. Все имеющиеся на плате контакты, предназначенные для ввода или вывода данных, не допускают коммутацию с более высоким напряжением (не толлерантны к повышенному уровню напряжения). Поэтому, внешние модули расширения с напряжением 5 вольт не будут работать должным образом. Подав на любой из выводов обмена данными GPIO с периферией напряжение (например, 5 вольт), вы рискуете испортить все встроенные компоненты микроконтроллерной платы DUE. Тем не менее, DUE совместима со многими полноформатными модулями-расширениями ARDUINO по размерам, расположению и компоновке контактов. За основу негласного "стандарта" таких дополняющих плат-расширений взят физический размер и расположение выводов платы ARDUINO UNO.
ARDUINO DUE воброла в себя все ранее наработанные инженерами-разработчиками нововведения, реализованные в ранних платах ARDUINO, и получила дополнительный новый и полезный функционал. К наиболее значимым можно отнести расширенное количество выводов, наличие двух USB-портов для раздельной коммутации и программирования, а также аппаратные возможности, позволяющие использовать плату как самостоятельное HID-устройство (класс устройств USB для взаимодействия с человеком). Это значит, что вы можете задействовать плату в создании таких "умных" проектов, как мышь или клавиатура. Похожими аппаратными возможностями обладают ARDUINO-платы LEONARDO и ESPLORA.
Впервые появившиеся цифро-аналоговые преобразователи помогут вашей DUE зазвучать. Добавились разъёмы внутрисхемного программирования основного микроконтроллера, двумя USB-портами разделены функциональные возможности USB-интерфейса. Вдобавок к уже перечисленному, модуль DUE поддерживает подключение и взаимодействие с другими USB-устройствами, способными работать с функцией OTG (On-The-Go - простое и лёгкое соединение устройств между собой напрямую, без использования дополнительного связующего компьютера).
Расположение элементов на плате
Расположение и обозначение выводов
• Аналоговые входы расположены в отдельном блоке контактов "Analog In", промаркированы соответственно A0-A11 и могут иметь максимальное разрешение 12-бит (или 4096 возможных значений). Для большей совместимости с другими ARDUINO-платами, разрешение установлено в 10-бит (1024 различных значений). Используя функцию analogReadResolution(), вы сможете изменить их разрешение до максимального. Значения изменяются в диапазоне от нуля (0, земля) до 3.3 вольта (рабочее).
• DAC1 и DAC2 - цифро-аналоговый преобразователь ЦАП, генерирующий аналоговый сигнал с разрешением 12-бит (4096 уровней значений в диапазоне напряжений от 0.55 до 2.75 вольт). Используя библиотеку Audio, контакты можно использовать для формирования звука или создания аудио-выхода.
• CANRX и CANTX поддерживают протокол обмена информацией по автомобильной сетевой CAN-шине. Программный функционал для интерфейса CAN на сегодняшний день не реализован в среде разработки ARDUINO API.
• Пользовательский встроенный светодиод "L", подключенный к цифровому/ШИМ выводу 13. Управляется программно значениями HIGH для включения и LOW для выключения светодиода. Яркость светодиода возможно регулировать ШИМ-модуляцией при помощи оператора analogWrite().
• Цифровые входы/выходы размещены в секциях "PWM", "Communication" и "Digital" - двухрядной линейке контактов с обозначением номеров на плате от 22 до 53. Каждый из них умеет оперировать исходящим током 3 мА или 15 мА, и входящим током 6 мА или 9 мА, в зависимости от вывода. Для всех контактов имеется встроенные нагрузочные резисторы номиналом 100 кОм, отключенные по умолчанию. Для работы с цифровыми входами/выходами применяются функции pinMode(), digitalWrite() и digitalRead().
• PWM - 8-битные (256 значений) цифровые выводы широтно-импульсной модуляции (ШИМ) размещены в области платы с пометкой "PWM" и цифровым обозначением от 2 до 13.
• Communication - коммутационные цифровые выводы обмена данными одного интерфейса UART и трёх интерфейсов USART. Пины UART обозначаются RX0<-(0 контакт) и TX->(1 контакт), пины USART маркируются соответственно для каждой парной группы: RX1 (19 контакт) и TX1 (18 контакт) для первой, RX2 (17 контакт) и TX2 (16 контакт) для второй, RX3 (15 контакт) и TX3 (14 контакт) для третей. Выводы TX0 и RX0 подключены к микроконтроллеру ATmega16U2, используются для USB-программирования и соединения с персональным компьютером (при такой связи с ATmega16U2 индикации светодиодами линий RX и TX в процессе обмена данными не происходит).
В этой же области расположены выводы первого из двух интерфейсов I2C/IIC/TWI, использующий две линии приёмо-передачи: SDA (20 контакт) и SCL (21 контакт), каждая из которых имеет нагрузочные резисторы. Используется библиотека Wire. Второй интерфейс расположился рядом с пином AREF, также использующий парную линию обмена данными SDA1 и SCL1, но уже без подтягивающих резисторов. Для работы с ним применяется класс Wire1 из библиотеки Wire.
• AREF - вывод устанавливает опорное (эталонное) напряжение для аналоговых входов, подключен напрямую к соответствующему контакту микроконтроллера SAM3X8E через "резисторный мост" и изначально не задействован. Для восстановления возможности использования функции AREF потребуется отпайка резистора BR1 от платы. Данный резистор размещён в центре платы, обведён в рамочку и помечен надписью "AREF". Используется функция analogReference(), выполняющая пропорциональное сравнение напряжений на выводе AREF с аналоговым входом, с последующей генерацией значений от 0 до 1023. (Например, опорное напряжение устанавливается 3.3 вольта, а на входе аналогового контакта подается 1,65 вольта. Результатом выполнения функция вернёт значение 512).
• IOREF - совмещён с контактом выходного напряжения 3.3 вольта. Вывод предусмотрен для модулей и расширений, способных самостоятельно подстраиваться под рабочее напряжение основной системы.
• Вывод "Reset" служит для аппаратного сброса микроконтроллера, управляемого низкоуровневым сигналом LOW.
Элементы управления
• Физическая кнопка "Reset" позволяет выполнить сброс микроконтроллера вручную.
• Разъём ICSP внутрисистемного последовательного программирования разработан для непосредственного доступа к памяти связующего USB-контроллера ATmega16U2. Позволяет программировать чип с помощью внешних программаторов, таких как USBASP, AVRISP STK500 или других, с поддержкой интерфейса SPI, без использования внутреннего загрузчика.
• Разъём SPI - группа из 6 контактов, расположенная около микроконтроллера SAM3X8E, осуществляющая связь с подключаемыми к ним SPI-устройствами или расширениями. Разъём имеет "стандартное" расположение, такое же как на ARDUINO Uno, Leonardo или Mega2560, обеспечивающее максимальную физическую совместимость. Для работы со связью SPI используются интерфейсные библиотеки SPI. Данный разъём на платах с центральными чипами ATmega именуется ICSP и даёт возможность их прямого программирования)
• JTAG-разъём - из-за конструктивных особенностей микросхемы SAM3X8E, возможность независимого программирования с применением внешних программаторов у ARDUINO DUE реализована в самостоятельном четырёх-сигнальном синхронном интерфейсе на разъёме JTAG и отладочной группе контактов DEBUG (SWD).
• Кнопка удаления "Erase" - позволяет очистить флеш-память главного микроконтроллера SAM3X8E путём нажатия и удержания её в течение нескольких секунд при включенном питании платы. Ранее загруженные в память пользовательские программы будут удалены из микросхемы.
• USB-порт программирования - соединён с вспомогательным микроконтроллером ATmega16U2, являющимся связующим звеном между USB-портом и аппаратной линией UART-интерфейса контроллера SAM3X8E. ATmega16U2 служит преобразователем данных из USB в TTL-уровни и создаёт виртуальной COM-порт для программного обеспечения на подключенном персональном компьютере. Процесс загрузки пользовательской программы сопровождается индикацией светодиодов RX и TX. Порт программирования не требует дополнительных действий при загрузке новой программы.
• USB-порт нативный - соединён непосредственно с микроконтроллером SAM3X8E и осуществляет связь с устройствами CDC (Communications Device Class - класс коммуникационного устройства) по последовательной универсальной линии обмена данных. Нативный порт позволяет эмулировать манипуляторы управления подключенным компьютером, такие как мышка или клавиатура, или же выступать в качестве USB-хоста для подключенных к нему напрямую периферийных устройств. К подобным устройствам можно отнести смартфоны, планшеты, камеры, клавиатуры и мышки. Порт не поддерживает устройства, подключенные через USB-разветвитель. Для работы с портом используется библиотека USBHost. Программирование через нативный порт подразумевает предварительное удаление ранее загруженной пользовательской программы из памяти микросхемы.
Принципиальная схема
Питание DUE
Подключение питающего напряжения у DUE реализованы разными способами. При этом плата самостоятельно определяет источник питания и автоматически на него переключается.
• USB-порт. Максимально удобен для проектов, находящихся в стадии разработки или тестировании. Если же вы готовите переносное или подвижное устройство, то такой вариант не подойдёт по причине того, что свободного разъёма USB от источника питания может запросто не оказаться рядом.
Энергосхема ARDUINO DUE обеспечивает дополнительный уровень защиты от перегрузок и токов короткого замыкания. Она спроектирована таким образом, чтобы обезопасить оба USB-порта от превышенной нагрузки. Помогают ей в этом самовосстанавливающиеся предохранители, по одному для каждого из USB-порта. В случае, когда плата потребляет через отдельно взятый порт ток более 500 мА, предохранитель разрывает цепь основного питания, обесточивая все компоненты цепи подключения и снова возвращает питание, когда ток будет снижен до допустимого порогового значения или устранено короткое замыкание.
• Разъём для внешнего источника питания или связка Vin + GND. Здесь вариантов может быть много - это и блоки питания от обычных 220 вольт, и аккумуляторы, и батарейки. При подключении к DUE используйте уже имеющийся у источника штекер с диаметром центрального "плюсового" контакта 2,1мм. В случае его отсутствия приобретите разъём и скоммутируйте с аккумулятором или батарейкой. Подаваемое через разъём напряжение не должно быть ниже 7 В или выше 12 В. Cамый удобный вариант для мобильных устройств.
Выводы 3.3В и 5В могут быть использованы в роли источника питания для подключаемых дополнительных расширений. Максимальный ток вывода 3.3 - 700 мА.
Первое включение
Работа с вашей ARDUINO DUE очень проста. Сначала соедините плату с компьютером, используя USB-кабель. Одну сторону шнура подключите в USB-порт компьютера, вторую сторону - в USB-порт программирования DUE. По загоревшемуся светодиоду "ON" станет ясно, что плата получает питание. Загорится и, спустя доли секунды, переключиться в режим мигания жёлтый светодиод "L".
Ничего странного в мигании светодиода нет - производителем платы, для проверки её работоспособности, записывается в память тестовая программа. При отсутствии же в памяти микроконтроллера SAM3X8E какой-либо программы, или присутствии другой, не использующей обращение к выводу D13, светодиод "L" не будет светится.
Для верного определения устройства на платформе ОС Windows необходим служебный .INF-файл. Системы на платформах ОС Linux и OSX (MAC) распознают и создают виртуальный порт автоматически. Произойдёт установка USB-совместимого программного обеспечения и компьютер создаст виртуальный COM-порт. Нумерация портов различается на каждом отдельном компьютере (COM2, COM3 и так далее). На ОС MAC наименование порта может выглядеть как /dev/tty.usbserial-A6006hSc.
Так выглядит результат определения DUE на ОС Windows 7:
Программирование
Возможно, вы ранее никогда не пользовались ARDUINO. Если это так, то для начала загрузите и установите на ваш компьютер бесплатный редактор ARDUINO IDE. Затем произведите несложные настройки, которые помогут понять редактору, какую плату вы программируете.
Запустив ARDUINO IDE, редактор предложит установить пакет дополнительных библиотек для работы с DUE, открыв окно Менеждера плат. Выберите из списка "Arduino SAM boards (32-bits ARM Cortex-M3) by Arduino" и нажмите кнопку "Установка". Последует загрузка и установка необходимых настроек и инструментов для DUE, дождитесь окончания процесса.
В меню редактора Инструменты (Tools)/Плата (Boards) выберите во вновь появившемся разделе "Arduino ARM (32-bits)" раскрывающегося перечня ваш микроконтроллер ARDUINO DUE (Programming Port). Следующим шагом в меню Инструменты (Tools)/Порт (Port) укажите созданный ранее виртуальный COM-порт.
Всё готово для начала программирования.
Любая программа, будь она маленькая или большая, в среде ARDUINO называется "Скетч". Попробуйте загрузить в микроконтроллер "пустой" скетч, который автоматически генерируется при каждом открытии редактора. Теперь нажмите кнопку "Загрузить" на панели редактора. После расчёта и компиляция кода вы заметите, что на DUE замигают светодиоды RX и TX, после чего светодиод "L" перестанет включаться и выключаться.
В качестве примера, попробуйте записать программу в память микроконтроллера. Нижеприведённый скетч демонстрирует доступ к пользовательскому светодиоду "L", используя эффект затухания.
int ledPin = 13;
int brightness = 0;
int fadeAmount = 5;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
analogWrite(ledPin, brightness);
brightness += fadeAmount;
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount;
}
delay(20);
}
В завершении добавим, что редактор ARDUINO IDE имеет немалую ознакомительную библиотеку примеров. Найти их можно в основном меню "Файл / Примеры".
Библиотеки
USBHost-1.0.5.zip - библиотека активирует на плате Arduino Due режим хоста USB, позволяя ей обмениваться данными с периферийными устройствами, такими как мыши и клавиатуры USB. USBHost не поддерживает устройства, подключенные через сторонние дополнительные USB-концентраторы, а также некоторые клавиатуры, имеющие свои собственные внутренние концентраторы.
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru