Arduino due описание. Китайская Arduino DUE. Физические характеристики и совместимость с платами расширения

Радиомодуль NRF24L01, OKI 120A2, SD Card Module, Микросхема контроллера коллекторного электродвигателя, Модем M590E GSM GPRS, Часы реального времени DS 3231/DS 1307, Mini 360 на схеме LM2596, L293D, Инфракрасные датчики расстояния, Часы реального времени, HC-SR501, блок питания Mini 360 на схеме LM2596, Контроллер L298N, HC-SR501, GSM GPRS, Модем M590E GSM GPRS, Часы реального времени DS 3231/DS 1307, Модуль Wi-Fi ESP8266-12E, Card Module, Блок питания, Mini 360, L293D, блок питания Mini 360 на схеме LM2596, Радиомодуль, ИК-пульт дистанционного управления, ИК-пульт, Ethernet shield, Микросхема контроллера коллекторного электродвигателя, Микросхема контроллера коллекторного электродвигателя, ИК-пульт дистанционного управления, SD Card Module, Радиомодуль NRF24L01, двигатель OKI, L293D, Шаговый двигатель, Блок питания, L293D, блок питания Mini 360 на схеме LM2596, Карта памяти SD, Ethernet shield, датчик движения HC-SR501, Модуль Wi-Fi ESP8266-12E, Шаговый двигатель OKI 120A2, Шаговый двигатель,

Arduino Due - плата микроконтроллера на базе процессора Atmel SAM3X8E ARM Cortex-M3. Это первая плата Arduino на основе 32-битного микро- контроллера с ARM-ядром.

В отличие от других плат Arduino, Arduino Due работает от 3,3 В. Максимальное напряжение, которое выдерживают входы/выходы, составляет 3,3 В.



Плата Arduino Due

Характеристики платы Arduino Due

Микроконтроллер

AT91SAM3X8E

Рабочее напряжение

3,3 В

7–12 В

Входное напряжение (предельное)

6–20 В

Цифровые входы/выходы

54 (на 12 из которых реализуется выход ШИМ)

Аналоговые входы

Аналоговые выходы

2 (ЦАП)

Постоянный ток через вход/выход

50 мА

Постоянный ток для вывода 3,3 В

800 мА

Постоянный ток для вывода 5 В

800 мА

Флеш-память

512 Кбайт

ОЗУ

96 Кбайт (два банка: 64 Кбайт и 32 Кбайт)

Тактовая частота

84 МГц

Общие сведения

Arduino Due - это устройство на основе микропроцессора Atmel SAM3X8E ARM Cortex-M3 Это первая плата Ардуино на базе 32-разрядного микроконтроллера ARM. В ее состав входят 54 цифровых вывода (из которых 12 могут работать в качестве ШИМ-выходов), 12 аналоговых входов, 4 UART (аппаратных приемопередатчика, осуществляющих последовательную передачу данных), генератор тактовой частоты на 84 МГц, USB с поддержкой технологии OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка очистки памяти.

Внимание: в отличие от других плат Ардуино, рабочее напряжение Arduino Due составляет 3.3В. Соответственно, максимальное напряжение, которое могут выдержать его выводы, равно 3.3В. Подача на вывод большего напряжения (например, 5В) может привести к выходу платы из строя.

В состав устройства входит все необходимое для обеспечения работы микроконтроллера; для начала работы достаточно просто подать питание от AC/DC-адаптера или батарейки, либо подключить его к компьютеру посредством USB-кабеля. Arduino Due совместим со всеми платами расширения, работающими от 3.3В, и соответствует требованиям распиновки 1.0:

  • Выводы SDA и SCL (TWI) расположены возле вывода AREF.
  • Присутствует вывод IOREF, позволяющий платам расширения подстраиваться под рабочее напряжение Ардуино. Благодаря этому, платы расширения могут быть совместимы как с 3.3В-Ардуино (подобными Due), так и с 5В-Ардуино на основе микроконтроллеров AVR.
  • Предусмотрен свободный вывод, зарезервированный для будущих целей.

Преимущества использования ядра ARM

Благодаря использованию 32-разрядного ядра ARM, Arduino Due во многом превосходит типичные платы на базе 8-разрядных микроконтроллеров. Наиболее существенные отличия заключаются в следующем:

  • 32-битное ядро позволяет обрабатывать 4х-байтовые данные всего за один такт. (Для получения более подробной информации см. ).
  • Тактовая частота - 84 МГц.
  • Объем оперативной памяти SRAM составляет 96 КБайт.
  • Объем флеш-памяти программ - 512 КБ.
  • Наличие DMA-контроллера, позволяющего разгрузить центральный процессор от выполнения ресурсоемких операций с памятью.

Схема, исходный проект и расположение выводов

Расположение выводов: распиновка SAM3X

Питание

Arduino Due может быть запитан от USB либо от внешнего источника питания - тип источника выбирается автоматически.

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер или аккумулятор/батарея. Штекер адаптера (диаметр - 2.1мм, центральный контакт - положительный) необходимо вставить в соответствующий разъем питания на плате. В случае питания от аккумулятора/батареи, ее провода необходимо подсоединить к выводам Gnd и Vin разъема POWER.

Напряжение внешнего источника питания может быть в пределах от 6 до 20 В. Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства. Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.

Ниже перечислены выводы питания, расположенные на плате:

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

Память

Объем флеш-памяти программ микроконтроллера SAM3X составляет 512 КБ (2 блока по 256 КБ). Устройство выпускается с прошитим загрузчиком, расположенном в отдельной памяти ПЗУ. Объем доступной оперативной памяти SRAM составляет 96 КБ, представляющих собой два смежных банка памяти по 64 КБ и 32 КБ соответственно. Вся доступная память (Flash, ОЗУ и ПЗУ) имеет общее линейное адресное пространство.

Кнопка удаления, расположенная на плате, позволяет очистить Flash-память микроконтроллера SAM3X и стереть текущую загруженную программу. Для этого необходимо нажать и удерживать ее в течение нескольких секунд.

Входы и выходы

  • Цифровые входы/выходы: выводы 0 - 53 С использованием функций , и каждый из 54 цифровых выводов может работать в качестве входа или выхода. Рабочее напряжение этих выводов составляет 3.3В. Максимальный выходной ток каждого вывода колеблется в пределах от 3 мА до 15 мА (в зависимости от вывода), а максимальный входной ток - от 6 до 9 мА (в зависимости от вывода). Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 100 кОм. Помимо этого, некоторые из выводов могут выполнять дополнительные функции:
  • Последовательный интерфейс 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) последовательных данных (уровень напряжения TTL 3.3В). Выводы 0 и 1 соединены с соответствующими выводами микросхемы ATmega16U2, выполняющей роль преобразователя USB-UART.

  • ШИМ: выводы со 2 по 13

С помощью функции analogWrite() могут выводить 8-битные аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ можно изменить с помощью функции analogWriteResolution().

  • Интерфейс SPI: выводы SPI (на платах Ардуино разъем ICSP)

С применением данные выводы могут осуществлять связь по интерфейсу SPI. Линии SPI выведены на 6-контактный разъем по центру платы, физически совместимый с Uno, Leonardo и Mega2560. Обратите внимание, что разъем SPI не предназначен для внутрисхемного программирования микроконтроллера SAM3X и может использоваться только для связи с другими SPI-устройствами. Кроме того, в Arduino Due SPI имеет ряд дополнительных возможностей, которые можно использовать с помощью специальных методов.

  • Интерфейс CAN: выводы CANRX и CANTX

Данные выводы поддерживают протокол связи CAN, однако на данный момент его реализация в Arduino API пока отсутствует.

  • "L" светодиод: вывод 13

Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается. Помимо этого, яркость свечения светодиода можно регулировать, поскольку вывод 13 может работать как ШИМ-выход.

  • Интерфейс TWI 1: выводы 20 (SDA) и 21 (SCL)
  • Интерфейс TWI 2: выводы SDA1 и SCL1

С использованием данные выводы могут осуществлять связь по интерфейсу TWI.

  • Аналоговые входы: выводы A0 - A11
  1. В Arduino Due есть 12 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 12-битного числа (4096 значений). Разрядность АЦП, взаимодействующего с этими выводами, по умолчанию, установлена в 10 бит (для совместимости с другими платами Ардуино). Изменить разрядность АЦП можно с помощью функции AnalogReadResolution"На аналоговые входы Arduino Due можно подавать напряжение в диапазоне от 0 до 3.3В. При подаче большего напряжения микроконтроллер SAM3X может выйти из строя. Функция AnalogReference() в Arduino Due игнорируется.

На плате вывод AREF соединен с выводом опорного напряжения микросхемы SAM3X через резисторный мост. Для использования вывода AREF необходимо выпаять резистор BR1.

  • DAC1 и DAC2

Аналоговые выходы 12-битного цифро-аналогового преобразователя. С помощью функции analogWrite() позволяют формировать 4096 различных уровня напряжения. Данные выводы могут использоваться для создания удио-выхода смотреть библиотеку Audio.

Другие выводы на плате:

  • AREF

Опорное напряжение АЦП. Используется функцией analogReference().

  • Reset

Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения.

Связь

Arduino Due предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами, а также с различными устройствами, такими, как телефоны, планшеты, камеры и т.д. В микроконтроллере SAM3X есть один аппаратный UART и три аппаратных USART для реализации последовательных интерфейсов с TTL-уровнем напряжения 3.3В.

USB-порт для программирования на плате взаимодействует с микросхемой ATmega16U2, выполняющую роль USB-UART преобразователя, который при подключении к компьютеру определяется как виртуальный COM-порт. (Для корректной идентификации на Windows-системах потребуется.inf-файл, на системах с OSX и LINUX плата распознается автоматически). Микросхема 16U2 соединена с аппаратным приемопередатчиком UART микроконтроллера SAM3X. Для программирования микроконтроллера через микросхему ATmega16U2 используются выводы RX0 и TX0. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных через микросхему-преобразователь USB-UART во время USB-соединения с компьютером, на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1, без использования USB-преобразователя, данные светодиоды не задействуются).

Штатный USB-порт на плате также соединен с контроллером SAM3X и предназначен для последовательной (CDC) передачи данных через USB. Данный порт позволяет Ардуино взаимодействовать с различными приложениями на компьютере (например, Serial Monitor или др.). Использование штатного USB-порта при подсоединении к компьютеру позволяет Arduino Due работать в качестве USB-мыши или клавиатуры. Более подробную информацию об этом см. в справке по библиотекам Mouse и Keyborad.

Штатный USB-порт также может работать как USB-хост и поддерживает подключение периферийных устройств, таких как мыши, клавиатуры или смартфоны. Более подробную информацию об этом см. в справке по библиотеке USBHost.

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

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

Процесс загрузки программ в микроконтроллер SAM3X отличается от процесса прошивки AVR-микроконтроллеров, используемых в других платах Ардуино. Особенность SAM3X заключается в том, что для его перепрошивки требуется предварительно очищать Flash-память контроллера. Такая необходимость обусловлена тем, что процесс загрузки программы контролируется загрузчиком в ПЗУ SAM3X, который запускается только при условии отсутствия программы во Flash-памяти микроконтроллера.

Таким образом, любой из USB-портов может использоваться для прошивки платы. Тем не менее, рекомендуется использовать USB-порт для программирования ("Programming Port" на рисунке) в силу некоторых особенностей процесса очистки памяти микроконтроллера:

  • Порт для программирования: Для использования этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Programming Port)". Подсоедините Due к компьютеру, соединив USB-кабель c разъемом для программирования (расположенным ближе к разъему питания). Порт для программирования взаимодействует с микросхемой 16U2, выполняющей роль преобразователя USB-UART. Микросхема 16U2 в свою очередь соединена с первым UART микроконтроллера SAM3X (выводы RX0 и TX0), а также управляет его выводами Reset и Erase. При открытии и закрытии порта на скорости 1200 бод, на выводах Erase и Reset формируется активный уровень, что приводит к очистке памяти микроконтроллера. Таким образом, срабатывает так называемая процедура "аппаратной очистки" перед взаимодействием с UART SAM3X. Этот способ более надежен, чем "программная очистка" при использовании штатного USB-порта, и работает даже в случае зависания процессора. Именно поэтому для прошивки Arduino Due рекомендуется использовать порт для программирования.
  • Штатный USB-порт: Для использование этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Naive USB Port)". Штатный USB-порт соединен непосредственно с микроконтроллером SAM3X. Подсоедините Due к компьютеру, соединив USB-кабель со штатным USB-разъемом (расположенным ближе к кнопке сброса). Открытие и закрытие порта на скорости 1200 бод приведет к срабатыванию процедуры "программной очистки", во время которой очищается flash-память, перезагружается микроконтроллер и стартует загрузчик. Поскольку эта процедура выполняется исключительно программой самого микроконтроллера SAM3X, то в случае зависания последнего процесс очистки может не произойти. При этом открытие/закрытие штатного порта на различных скоростях не поможет перезагрузить микроконтроллер.

В отличие от других плат Ардуино, для программирования которых используется avrdude, процесс прошивки Arduino Due осуществляется с помощью программы .

Исходный код прошивки микроконтроллера ATmega16U2 доступен в репозитории Ардуино . Прошить микроконтроллер можно через разъем для внутрисхемного программирования ISP с помощью внешнего программатора (в этом случае затрется DFU-загрузчик).

Защита USB от перегрузок

В Arduino Due есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.

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

Максимальная длина и ширина печатной платы Arduino Due составляет 10.2 см и 5.4 см соответственно, с учетом USB-разъемов и разъема питания, выступающих за пределы платы. Три крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

Arduino Due спроектирован таким образом, чтобы обеспечивать совместимость с большинством плат расширения для Uno, Diecimila или Duemilanove. Расположение основных выводов платы полностью эквивалентно: цифровые выводы 0 - 13 (а также смежные выводы AREF и GND), аналоговые входы 0 - 5, разъем POWER и разъем "ICSP" (SPI) - все выводы расположены на одинаковых расстояниях друг относительно друга. Кроме того, линии основного приемопередатчика UART соединены с одними и теми же выводами (0 и 1). Пожалуйста, обратите внимание, что номера выводов I2C на Arduino Due (20 и 21) отличаются от выводов Duemilanove / Diecimila (аналоговые входы 4 и 5).

Arduino Due - представляет более серьезное решение, по сравнению с . Это первая плата Arduino на основе 32-разрядного ядра.

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

  • Микроконтроллер: AT91SAM3X8E;
  • Тактовая частота: 84 МГц;
  • Разрядность: 32 бита
  • Напряжение питания: 3.3В;
  • Входное напряжение (рекомендуемое): 7-12В;
  • Входное напряжение (предельное): 6-16 В;
  • Цифровые выводы I/0: 54 линии (12 из них - ШИМ);
  • Аналоговые входы: 12 (АЦП);
  • Аналоговые выходы: 2 (ЦАП);
  • Flash-память: 512 Кб (вся память доступна для программ);
  • SRAM-память: 96 Кб;
  • Максимальный ток на выводе I/0: 130 мА;
  • Максимальный ток на выводе 3,3V: 800 мА;
  • Максимальный ток на выводе 5V: 800 мА;
  • Длина: 101,52 мм;
  • Ширина: 53,3 мм;
  • Вес: 36 г.;

Подключение

Для подключения к компьютеру понадобится .

Питание

Arduino Due может быть запитан от USB, через , либо от внешнего источника питания: , , штекер которого (Ø 2,1 мм, центральный вывод - положительный) необходимо подключить к силовому разъему питания. Если внешним источником питания служит аккумуляторная батарея, то её нужно подключить к выводам Vin и GND. Тип источника питания выбирается автоматически.

Подробнее о плате

Arduino Due построена на базе 32-разрядного микроконтроллера Atmel SAM3X8E ARM Cortex-M3 с тактовой частотой 84МГц. В отличии от большинства плат Arduino, Arduino Due работает от 3,3 В, имеет 2 порта I2C, порт CAN, 2 аналоговых выхода (ЦАП), 2 порта microUSB с поддержкой USB OTG - возможность подключения других USB-устройств к USB порту. Наличие контроллера DMA позволяет освободить процессор от ресурсоемких задач. Помимо кнопки Reset имеется кнопка Erase (бортового стирания) удержание которой в течении нескольких секунд, при наличии питания, приведет к аппаратному стиранию данных из Flash-памяти. Загрузчик прошивается на заводе изготовителе в специально для него выделенную область памяти. Следует учесть, что наличие напряжения больше 3,3В на любом входе, может повредить плату.

Программное обеспечение

Скачать (загрузить) программу Arduino IDE для создания, редактирования и загрузки скетчей в Arduino или Genuino, Вы можете с

Arduino Due - это мощная Arduino, основанная на 32-битном ARM-процессореAT91SAM3X8E от Atmel. Он обладает тактовой частотой 84 МГц, а его 32-битная архитектура позволяет выполнять большинство операций на целыми числами в 4 байта за один такт.

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

  • 96 Кб SRAM (оперативная память)
  • 512 Кб флеш-памяти (для хранения программы)
  • Прямой доступ к памяти (DMA) для задач, активно работающих с данными в памяти
  • 54 цифровых входов/выходов; 12 из них поддерживают ШИМ (PWM)
  • 4 аппаратных последовательных порта (UART)
  • 12 аналоговых входов
  • 2 цифро-аналоговых преобразователя (DAC) для 2 аналоговых выходов
  • 2 шины TWI / I²C
  • SPI-разъём
  • JTAG-разъём
  • Поддержка USB On The Go (USB OTG) для подключения других USB-устройств

Внимание! В отличии от большинства плат Arduino, родным напряжением Arduino Due является 3,3 В, а не 5 В . Соответственно, выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Подача большего напряжения может повредить процессор! Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.

Контакты Arduino Due

  • Цифровые входы/выходы: контакты 0–53. Работают на напряжении 3,3 В. В режиме выхода могут выдавать ток 3 или 15 мА (в зависимости от контакта); в режиме входа - принимать ток 6 или 9 мА (в зависимости от контакта). К контактам также подключены подтягивающие резисторы по 100 кОм, которые по умолчанию выключены, но могут быть включены программно.
  • Аппаратные последовательные порты (RX/TX): 0/1, 19/18, 17/16, 15/14. Передача данных осуществляется на уровне 3,3 В. Первая пара также соединена с чипом ATmega16U2, отвечающим за подключение через USB к компьютеру.
  • Широтно-имульсная модуляция (ШИМ/PWM): контакты 2–13. Дают возможность выдавать аппаратный шим с разрешением 8 бит (256 градаций).
  • SPI - отдельная группа контактов 2×3. На Arduino Due используется только для общения по SPI-интерфейсу с другими устройствами. Он не может быть использован для программирования контроллера, как на других Arduino. По расположению он в точности совпадает с расположением на , Arduino Mega 2560, Arduino Leonardo, а следовательно даёт возможность работы с платами расширения его использующими, таких как Ethernet Shield.
  • CAN-шина: контакты CANRX и CANTX. Позволяют использовать Arduino Due в автомобильных сетях. Поддержка с программной стороны пока не реализована производителем.
  • Встроенный светодиод: контакт 13 (L). Для простой индикации. В отличии от Arduino Uno и Mega, он поддерживает ШИМ.
  • Шины TWI/I²C: 20(SDA)/21(SCL), SDA1/SCL1. Для общения с периферией по синхронному протоколу, через 2 провода.
  • Аналоговые входы: контакты A0–A11. Принимают сигнал до 3,3 В. Большее напряжение может вывести процессор из строя. Аналоговые входы предоставляют разрешение до 12 бит (4096 градаций), хотя по умолчанию настроены на разрешение в 10 бит для совместимости со скетчами для других моделей Arduino.
  • Цифро-аналоговый преобразователь: контакты DAC1 и DAC2. Позволяют выдавать настоящий аналоговый сигнал с 12-битным разрешением (4096 градации), например, для устройств, связанных с обработкой звука.
  • Сброс процессора: RESET. Позволяет аппаратно перезагружать плату.
  • Входное напряжение: Vin. Выдаёт напряжение, поданное внешним источником, либо может являться входом для внешнего питания.
  • Стабилизированные 5 В: контакт 5V. Позволяет получать ровные 5 В и ток до 800 мА.
  • Стабилизированные 3,3 В: контакт 3.3V. Позволяет получать ровные 3,3 В и ток до 800 мА.
  • Общая земля: GND.
  • Опорное напряжение для плат расширения: IOREF. Платы расширения должны «советоваться» с этим контактом, чтобы правильно определять родное напряжение родительской платы. Arduino Due выдаёт на IOREF 3,3 В.

Память Arduino Due

  • На борту SAM3X - 2 блока по 256 Кб флеш-памяти для хранения программы
  • Загрузчик (bootloader) располагается в отдельной памяти только для чтения и прошит на заводе Atmel
  • Оперативная SRAM-память поделена на 2 банка: 64 и 32 Кб

Любая память доступна для последовательной адресации из программы. Содержимое флеш-памяти (программа) может быть очищено зажатием на несколько секунд кнопки Erase на плате.

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

Arduino Due позволяет взаимодействовать с компьютером, другими Arduino, микроконтроллерами и различными устройствами вроде телефонов, планшетов, фотоаппаратов. Для этого плата предоставляет три аппаратных последовательных порта (UART/USART), две шины TWI/I²C, интерфейс SPI и USB-порт.

Один USB-порт (programming) используется для прошивки Arduino Due. Он подключён к чипу ATmega16U2 на плате, который является мостом между USB и аппаратным портом SAM3X, используемым для программирования процессора и связи с компьютером.

Второй USB-порт (native) может использоваться для связи с другими устройствами как в режиме slave (эмуляция мыши, клавиатуры), так и в режиме host (приём данных с фотоаппаратов, управление мышью, клавиатурой, телефоном).

Совместимость

Платформа по своему форм-фактору полностью совпадает с Arduino Mega 2560. Это означает механическую совместимость со всеми платами расширения для Arduino Mega, Arduino Uno, Arduino Leonardo.

Однако, в силу того, что родным является напряжение в 3,3 В, а не 5 В, как на других моделях, стоит обязательно удостоверяться в возможности подключения платы расширения к Arduino Due.

Питание, защита USB и принципы взаимодействия аналогичны другим моделям Arduino.

Габариты Arduino Due

Размер платы составляет 10,16 × 5,3 см (против 6,9 × 5,3 см базовой модели). Гнёзда для внешнего питания и USB выступают на пару миллиметров за обозначенные границы. На плате предусмотрены места для крепления на шурупы или винты. Расстояние между контактами составляет 0,1” (2,54 мм), но в случае 7-го и 8-го контакта - расстояние: 0,16”.

Где купить Arduino

Наборы Arduinoможно купить на официальном сайте и в многочисленных интернет-магазинах.

Наиболее привлекательные цены, постоянные спецпредложения и бесплатная доставка на сайтах китайских магазинов

{{#setlogo:ArduinoCommunityLogo.png}}

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

Знакомство с Arduino Due

Чтобы подключить Arduino Due к компьютеру, понадобится USB -кабель с разъемом Micro-B . Этот кабель, с одной стороны, будет питать плату электричеством, а с другой, позволит ее программировать.

Подключите кабель разъемом Micro-B к так называемому «порту для программирования» на Due . Это USB-порт, который находится ближе к DC -разъему, т.е. разъему для питания переменным током. Чтобы загрузить скетч, открываем меню Инструменты > Плата (Tools > Board) и выбираем там . Затем выбираем нужный порт в меню Инструменты > Порт (Tools > Port) .

На официальном форуме Arduino есть специальная ветка , посвященная Arduino Due .

Чтобы программировать на Due , версия IDE Arduino должна быть не старее 1.5 . Загрузить ее можно отсюда .

Отличия от плат на базе ATmega

Использование Arduino Due почти ничем не отличается от использования других Arduino . Однако несколько важных отличий и функциональных расширений все же есть.

Контакты на Arduino Due расположены так же, как и на Arduino Mega 2560 .

Питание

Микроконтроллеру, которым оснащена Arduino Due , нужно питание 3,3 вольт – это значит, что все датчики и прочие устройства можно будет питать только этими 3,3 вольтами . Если подключить более высокое напряжение (вроде 5 вольт , которыми обычно питаются Arduino ), это приведет к повреждению Due .

Плата может питаться либо от USB -коннекторов, либо от DC -разъема. При использовании DC -разъема напряжение должно быть в пределах 7-12 вольт .

Arduino Due оснащена импульсным стабилизатором напряжения, чьи характеристики соответствуют требованиям для устройств с функцией USB -хоста. Благодаря этому Due может выступать в качестве источника питания для USB -устройства, подключенного к ее штатному USB -порту. То есть, по сути, служить USB -хостом. Однако для этого она сама должна быть подключена к источнику питания через DC -разъем.

USB-порты на Due

Модель Arduino Due оснащена двумя USB -портами. Штатный USB -порт поддерживает CDC -коммуникацию (от Connected Device Class ; означает то, что плата будет отображаться для ОС как виртуальный последовательный порт) через объект SerialUSB и подключен напрямую к микропроцессору SAM3X . Другой USB -порт – это порт для программирования. Он подключен к чипу ATMEL 16U2 , который служит USB-UART преобразователем. Именно этот порт по умолчанию используется для загрузки скетчей и коммуникации с Arduino .

Преобразователь USB-UART подключен к первому UART ’у микропроцессора SAM3X . Благодаря этому с портом для программирования можно взаимодействовать при помощи объекта Serial из языка Arduino .

USB -коннектор на штатном порте напрямую подключен к контактам USB -хоста SAM3X . Таким образом, благодаря штатному порту Due можно использовать и как клиентское периферийное USB -устройство (например, как мышь или клавиатура, подключенные к компьютеру), и как USB -хост, к которому могут быть подключены различные USB -устройства (вроде тех же мыши, клавиатуры или телефона на Andriod ). Кроме того, этот порт можно использовать как виртуальный последовательный порт при помощи объекта SerialUSB в языке программирования Arduino .

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

Микроконтроллер SAM3X отличается от микроконтроллеров AVR тем, что перед тем, как снова его программировать, его flash -память должна быть очищена. Это можно сделать вручную – сначала секунду нажимать на кнопку очистки памяти, потом нажать на кнопку в IDE Arduino , а после этого нажать на кнопку сброса.

Это скучная и монотонная процедура, однако ее можно автоматизировать. Но для каждого из портов это делается по-разному:

  • Штатный порт. Когда штатный порт, работающий на скорости 1200 бит/с , открывается и закрывается, это запускает процедуру т.н. «мягкой очистки» flash -память очищается, а плата перезагружается при помощи загрузчика. Если микроконтроллер во время этого процесса по какой-то причине зависнет, то процедура «мягкой очистки» , скорее всего, не сработает, т.к. выполняется при помощи ПО внутри самого микроконтроллера.

В то же время, если штатный порт будет открыт/закрыт не на 1200 бит/с , а на какой-то другой скорости, то SAM3X сброшен не будет. Чтобы воспользоваться монитором порта и с его помощью увидеть, какие данные скетч будет отправлять в самом начале работы Due , в секцию setup() нужно вписать дополнительный код – благодаря ему SAM3X перед выполнением скетча будет ждать открытия SerialUSB -порта:

while (! Serial) ;

Если нажать на Due кнопку сброса (Reset ), то будет сброшен и SAM3X , и USB -соединение. Если у вас во время этого разрыва будет открыт «Монитор порта» , то для восстановления соединения его нужно будет закрыть и снова открыть.

  • Порт для программирования. USB -порт для программирования использует чип-преобразователь USB-UART , подключенный к первому UART ’у микроконтроллера (а если точнее – к контактам RX0 и TX0 ). Кроме того, два контакта этого чипа подключены к контактам Reset и Erase на SAM3X . Таким образом, когда вы открываете порт для программирования, то перед самым началом коммуникации чип запускает последовательность Erase-Reset , тем самым очищая память SAM3X .

Это более надежная процедура, чем та, что имеется на штатном порте, и если микроконтроллер зависнет, она должна сработать лучше.

Чтобы настроить последовательную передачу данных через порт для программирования, нужно использовать объект Serial . Все скетчи, использующие последовательную коммуникацию на базе Uno , должны работать таким же образом. Порт для программирования на Due работает примерно так же, как последовательный порт Uno – в том отношении, что преобразователь USB-UART сбрасывает плату каждый раз, когда вы открываете коммуникацию через монитор порта (или другую последовательную коммуникацию).

Нажатие на Reset во время коммуникации через порт для программирования не оборвет USB -соединение с компьютером, т.к. сброшен будет только микропроцессор SAM3X .

USB-хост

Когда Due выступает в качестве хоста, она еще и обеспечивает периферийное устройство электричеством. Поэтому мы рекомендуем подключить ее к питанию через DC -разъем.

Разрядности АЦП и ШИМ

Кроме того, в Due можно менять установленную по умолчанию разрядность для считывания и записи аналоговых данных (10 бит и 8 бит , соответственно). Она может поддерживать разрядность до 12 бит – и для АЦП , и для ШИМ . Более подробно читайте на соответствующих страницах – и .

Расширенная функциональность SPI

Модель Due также имеет SPI -шину с расширенными возможностями, которые могут пригодиться, когда к плате подключено несколько устройств, и они общаются с нею на разных скоростях. Более подробно читайте .

Установка драйверов

OSX

  • На OSX никаких драйверов устанавливать не нужно. В зависимости от версии ОС перед вами может появиться окно, спрашивающее, не хотите ли вы открыть сетевые настройки. Кликните на кнопку «Network Preferences…» , а затем на «Apply» . Плата Due будет показана как «Not Configured» , но работать все же будет. После этого из «System Preferences» можно выйти.

Windows (тестировалось на XP и 7)

  • Загрузите Windows -версию IDE Arduino и распакуйте загруженный файл. Убедитесь, что структура распакованных файлов осталась нетронутой.
  • Подключите Due к компьютеру при помощи USB -кабеля через порт для программирования.
  • Когда плата будет подключена, Windows должна запустить процесс установки драйверов. Впрочем, самостоятельно найти драйвер она не сможет. Вам нужно будет помочь ей сделать это. Образно говоря, ткнуть ее в этот драйвер носом.
  • Нажмите кнопку «Пуск» (или клавиши Win + X) и откройте «Панель управления» .
  • Кликните по пункту «Система и безопасность» , потом по «Система» и, наконец, по «Диспетчер устройств» .
  • Ищите секцию «Порты (COM и LPT)» . Здесь должен быть открытый порт «Arduino Due Prog. Port» .
  • Кликните по нему правой кнопкой и выберите пункт «Обновить драйверы...»

Linux

  • Установка драйверов не требуется.

Установка ядра Arduino SAM

Если вы используете Arduino IDE версии 1.6.2 и новее, то вам надо будет установить ядро, поддерживающее Arduino Due . Инструкции для этой процедуры описаны .

С точки зрения пользователя процесс загрузки скетча на Due такой же, как и на других моделях Arduino . Мы рекомендуем использовать для этих целей порт для программирования, но вообще делать это можно через оба USB -порта. Для загрузки через порт для программирования нужно проделать следующее:

  • Подключите плату к компьютеру, подсоединив USB -кабель к порту для программирования на Due (это порт, находящийся ближе к DC -разъему).
  • Откройте IDE Arduino .
  • В меню Инструменты > Порт (Tools > Serial Port) выберите порт Due .
  • В меню Инструменты > Плата (Tools > Board) выберите Arduino Due (Programming Port) .

Теперь на Arduino Due можно загружать скетчи.

Более подробно читайте на странице , описывающей оборудование платы.

Общие сведения

Arduino Due - это устройство на основе микропроцессора Atmel SAM3X8E ARM Cortex-M3 (datasheet). Это первая плата Ардуино на базе 32-разрядного микроконтроллера ARM. В ее состав входят 54 цифровых вывода (из которых 12 могут работать в качестве ШИМ-выходов), 12 аналоговых входов, 4 UART (аппаратных приемопередатчика, осуществляющих последовательную передачу данных), генератор тактовой частоты на 84 МГц, USB с поддержкой технологии OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка очистки памяти.

Внимание: в отличие от других плат Ардуино, рабочее напряжение Arduino Due составляет 3.3В. Соответственно, максимальное напряжение, которое могут выдержать его выводы, равно 3.3В. Подача на вывод большего напряжения (например, 5В) может привести к выходу платы из строя.

В состав устройства входит все необходимое для обеспечения работы микроконтроллера; для начала работы достаточно просто подать питание от AC/DC-адаптера или батарейки, либо подключить его к компьютеру посредством USB-кабеля. Arduino Due совместим со всеми платами расширения, работающими от 3.3В, и соответствует требованиям распиновки 1.0:

  • Выводы SDA и SCL (TWI) расположены возле вывода AREF.
  • Присутствует вывод IOREF, позволяющий платам расширения подстраиваться под рабочее напряжение Ардуино. Благодаря этому, платы расширения могут быть совместимы как с 3.3В-Ардуино (подобными Due), так и с 5В-Ардуино на основе микроконтроллеров AVR.
  • Предусмотрен свободный вывод, зарезервированный для будущих целей.

Преимущества использования ядра ARM

Благодаря использованию 32-разрядного ядра ARM, Arduino Due во многом превосходит типичные платы на базе 8-разрядных микроконтроллеров. Наиболее существенные отличия заключаются в следующем:

  • 32-битное ядро позволяет обрабатывать 4х-байтовые данные всего за один такт. (Для получения более подробной информации см. описание типа int).
  • Тактовая частота - 84 МГц.
  • Объем оперативной памяти SRAM составляет 96 КБайт.
  • Объем флеш-памяти программ - 512 КБ.
  • Наличие DMA-контроллера, позволяющего разгрузить центральный процессор от выполнения ресурсоемких операций с памятью.

Схема, исходный проект и расположение выводов

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

Микроконтроллер AT91SAM3X8E
Рабочее напряжение 3.3В
Напряжение питания (рекомендуемое) 7-12В
Напряжение питания (предельное) 6-16В
Цифровые выводы 54 (из них 12 могут работать как ШИМ-выходы)
Аналоговые входы 12
Аналоговые выходы 2 (ЦАП)
Суммарный выходной ток всех выводов (максимальный) 130 мА
Максимальный выходной ток вывода 3.3V 800 мА
Максимальный выходной ток вывода 5V 800 мА
Flash-память 512 КБ в полном объеме доступна пользовательским программам
SRAM 96 КБ (два банка памяти: 64 КБ и 32 КБ)
Тактовая частота 84 МГц

Питание

Arduino Due может быть запитан от USB либо от внешнего источника питания - тип источника выбирается автоматически.

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер или аккумулятор/батарея. Штекер адаптера (диаметр - 2.1мм, центральный контакт - положительный) необходимо вставить в соответствующий разъем питания на плате. В случае питания от аккумулятора/батареи, ее провода необходимо подсоединить к выводам Gnd и Vin разъема POWER.

Напряжение внешнего источника питания может быть в пределах от 6 до 20 В. Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства. Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.

Ниже перечислены выводы питания, расположенные на плате:

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

Память

Объем флеш-памяти программ микроконтроллера SAM3X составляет 512 КБ (2 блока по 256 КБ). Устройство выпускается с прошитим загрузчиком, расположенном в отдельной памяти ПЗУ. Объем доступной оперативной памяти SRAM составляет 96 КБ, представляющих собой два смежных банка памяти по 64 КБ и 32 КБ соответственно. Вся доступная память (Flash, ОЗУ и ПЗУ) имеет общее линейное адресное пространство.

Кнопка удаления, расположенная на плате, позволяет очистить Flash-память микроконтроллера SAM3X и стереть текущую загруженную программу. Для этого необходимо нажать и удерживать ее в течение нескольких секунд.

Входы и выходы

  • Цифровые входы/выходы: выводы 0 - 53
  • Интерфейс SPI: выводы SPI (на платах Ардуино разъем ICSP)
  • Интерфейс CAN: выводы CANRX и CANTX

Данные выводы поддерживают протокол связи CAN, однако на данный момент его реализация в Arduino API пока отсутствует.

  • "L" светодиод: вывод 13

Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается. Помимо этого, яркость свечения светодиода можно регулировать, поскольку вывод 13 может работать как ШИМ-выход.

  • Интерфейс TWI 1: выводы 20 (SDA) и 21 (SCL)
  • Интерфейс TWI 2: выводы SDA1 и SCL1

Другие выводы на плате:

  • AREF

Опорное напряжение АЦП. Используется функцией analogReference() .

  • Reset

Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения.

Связь

Arduino Due предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами, а также с различными устройствами, такими, как телефоны, планшеты, камеры и т.д. В микроконтроллере SAM3X есть один аппаратный UART и три аппаратных USART для реализации последовательных интерфейсов с TTL-уровнем напряжения 3.3В.

USB-порт для программирования на плате взаимодействует с микросхемой ATmega16U2, выполняющую роль USB-UART преобразователя, который при подключении к компьютеру определяется как виртуальный COM-порт. (Для корректной идентификации на Windows-системах потребуется.inf-файл, на системах с OSX и LINUX плата распознается автоматически). Микросхема 16U2 соединена с аппаратным приемопередатчиком UART микроконтроллера SAM3X. Для программирования микроконтроллера через микросхему ATmega16U2 используются выводы RX0 и TX0. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных через микросхему-преобразователь USB-UART во время USB-соединения с компьютером, на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1, без использования USB-преобразователя, данные светодиоды не задействуются).

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

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

Процесс загрузки программ в микроконтроллер SAM3X отличается от процесса прошивки AVR-микроконтроллеров, используемых в других платах Ардуино. Особенность SAM3X заключается в том, что для его перепрошивки требуется предварительно очищать Flash-память контроллера. Такая необходимость обусловлена тем, что процесс загрузки программы контролируется загрузчиком в ПЗУ SAM3X, который запускается только при условии отсутствия программы во Flash-памяти микроконтроллера.

Таким образом, любой из USB-портов может использоваться для прошивки платы. Тем не менее, рекомендуется использовать USB-порт для программирования ("Programming Port" на рисунке) в силу некоторых особенностей процесса очистки памяти микроконтроллера:

  • Порт для программирования: Для использования этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Programming Port)". Подсоедините Due к компьютеру, соединив USB-кабель c разъемом для программирования (расположенным ближе к разъему питания). Порт для программирования взаимодействует с микросхемой 16U2, выполняющей роль преобразователя USB-UART. Микросхема 16U2 в свою очередь соединена с первым UART микроконтроллера SAM3X (выводы RX0 и TX0), а также управляет его выводами Reset и Erase. При открытии и закрытии порта на скорости 1200 бод, на выводах Erase и Reset формируется активный уровень, что приводит к очистке памяти микроконтроллера. Таким образом, срабатывает так называемая процедура "аппаратной очистки" перед взаимодействием с UART SAM3X. Этот способ более надежен, чем "программная очистка" при использовании штатного USB-порта, и работает даже в случае зависания процессора. Именно поэтому для прошивки Arduino Due рекомендуется использовать порт для программирования.
  • Штатный USB-порт: Для использование этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Naive USB Port)". Штатный USB-порт соединен непосредственно с микроконтроллером SAM3X. Подсоедините Due к компьютеру, соединив USB-кабель со штатным USB-разъемом (расположенным ближе к кнопке сброса). Открытие и закрытие порта на скорости 1200 бод приведет к срабатыванию процедуры "программной очистки", во время которой очищается flash-память, перезагружается микроконтроллер и стартует загрузчик. Поскольку эта процедура выполняется исключительно программой самого микроконтроллера SAM3X, то в случае зависания последнего процесс очистки может не произойти. При этом открытие/закрытие штатного порта на различных скоростях не поможет перезагрузить микроконтроллер.

В отличие от других плат Ардуино, для программирования которых используется avrdude, процесс прошивки Arduino Due осуществляется с помощью программы .

Исходный код прошивки микроконтроллера ATmega16U2 доступен в репозитории Ардуино . Прошить микроконтроллер можно через разъем для внутрисхемного программирования ISP с помощью внешнего программатора (в этом случае затрется DFU-загрузчик).

Защита USB от перегрузок

В Arduino Due есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.

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

Максимальная длина и ширина печатной платы Arduino Due составляет 10.2 см и 5.4 см соответственно, с учетом USB-разъемов и разъема питания, выступающих за пределы платы. Три крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

Arduino Due спроектирован таким образом, чтобы обеспечивать совместимость с большинством плат расширения для Uno, Diecimila или Duemilanove. Расположение основных выводов платы полностью эквивалентно: цифровые выводы 0 - 13 (а также смежные выводы AREF и GND), аналоговые входы 0 - 5, разъем POWER и разъем "ICSP" (SPI) - все выводы расположены на одинаковых расстояниях друг относительно друга. Кроме того, линии основного приемопередатчика UART соединены с одними и теми же выводами (0 и 1). Пожалуйста, обратите внимание, что номера выводов I2C на Arduino Due (20 и 21) отличаются от выводов Duemilanove / Diecimila (аналоговые входы 4 и 5).

Подробная инструкция по работе с Arduino Due (на англ.)