Arduino due проекты. Китайская Arduino DUE

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можно купить на официальном сайте и в многочисленных интернет-магазинах.

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

Доброго времени суток!
Уже довольно давно на досуге я занимаюсь всяческими электронными безделушками. Начинал с программирования тинек и мег в IARе, пока не понял что c Arduino дела обстоят намного проще. И вот совсем недавно обнаружил на просторах китайских магазинов копию Arduino DUE по цене чуть дороже небезызвестной Mega2560.

Для тех, кто не знает что это и с чем его едят

Arduino - это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.

Arduino позволяет компьютеру выйти за рамки виртуального мира в физический и взаимодействовать с ним. Устройства на базе Arduino могут получать информацию об окружающей среде посредством различных датчиков, а также могут управлять различными исполнительными устройствами.

Микроконтроллер на плате программируется при помощи языка Arduino (основан на языке Wiring) и среды разработки Arduino (основана на среде Processing). Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.
© arduino.ru


Начинал свое знакомство с arduino я с покупки китайского аналога Mega2560. По началу игрался, подключал дисплеи, датчики, сервомоторы, пока как то раз не понадобилось по работе сделать девайс, считывающий напряжения с токового шунта и терморезистора, преобразующий все это дело в нормальный вид и выводящий на дисплей. Вот тут то и пригодилась ардуина, за 5 минут был написан скетч, подключен дисплей и плата переехала на работу. Конечно получилось из пушки по воробьям, но на тот момент это было самое быстрое решение. Потом я заказал с десяток ProMini по 100 рублей и хотел перенести на одну из них скетч, но как известно, нет ничего более постоянного чем временное и моя лень так и не дала мне этого сделать. Дома же пришлось довольствоваться сторублевыми платами, благо кроме количества выводов, памяти, и отсутствия USB-UART преобразователя они ничем особо от меги и не отличались.

Но выводов стало нехватать и однажды бродя по просторам банггуда я наткнулся на Arduino DUE. Цена ее была чуть выше чем на Mega2560 и я незамедлительно ее купил. Основным отличием ее от других ардуин является то, что внутри у нее 32-х битный ARM микроконтроллер архитектуры Cortex-M3 работающий на частоте 84 МГц.

Посылка добралась за 27 дней, плата была завернута в несколько слоев пупырки и упакована в типичный желтый китайский пакет.

Вид спереди:


Пайка выполнена аккуратно, но если приглядеться, заметны небольшие изъяны шелкографии.
Как видно из фото данная плата обладает двумя разъемами microUSB. Один необходим для программирования, а через второй плата может общаться с внешним миром: читать флешки, эмулировать клавиатуру, мышь (сам пока этого не проверял). Также есть хитрая кнопка erase, нажатие на которую стирает флеш микроконтроллера.

Вид сзади:

Технические характеристики платы (взято с офф. сайта):
Микроконтроллер: AT91SAM3X8E
Рабочее напряжение: 3,3 В
Входное напряжение (рекомендуемое): 7-12 В
Входное напряжение (предельное): 6-20 В
Цифровые Входы/Выходы: 54 (на 12 из которых реализуется выход ШИМ)
Аналоговые входы: 12
Аналоговые выходы: 2 (ЦАП)
Общий выходной постоянный ток на всех входах/выходах: 50 мА
Постоянный ток через вывод 3,3 В: 800 мА
Постоянный ток через вывод 5 В: 800 мА
Флеш-память: 512 КБ доступно всего для пользовательских приложений
ОЗУ: 96 КБ (два банка: 64 КБ и 32 КБ)
Тактовая частота: 84 МГц

Все стандартные интерфейсы, такие как SPI, 1Wire, UART присутствуют.
Более подробно можно почитать

А вот и сам МК покрупнее:

За его программирование отвечает 16-я мега с кварцем на 16 МГц:

А тактируется он внешним кварцем:


Как подсказал комрад Angrim, 84 МГц получаются умножением на 7 исходных 12-ти.

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

Для написания скетчей и их заливки нужно скачать Arduino 1.5.8 BETA, с поддержкой DUE. Однако стоит отметить что не все библиотеки написанные под другие версии ардуино нормально работают с DUE. У меня библиотека работы с датчиком BMP180 нормально работавшая с мегой, выдавала нереальные данные, пришлось качать библиотеку от Adafruit. Также заметил что не всегда после подачи питания МК начинает исполнение программы, иногда нужно жать reset. Чей это глюк, бета версии IDE или китайской платы я не знаю.

Тесты

Сначала для проверки я залил скетч, опрашивающий датчик BMP180 и записывающий данные с него (давление и температуру) на флешку.


Все заработало, правда, как я писал выше, пришлось использовать библиотеку Adafruit.

Результат

Ну и конечно, как же не воспользоваться встроенным ЦАПом!
Для этого заливаем пример SimpleAudioPlayer, подключаем флешку с залитым waw файлом test.waw, а вывод DAC0 вместе с землей подключаем к усилителю. В моем случае в роли усилителя был портативный динамик, полученный по акции от Pringles. Выводы просто примотал к джеку двумя резисторами по 10 кОм т.к. на прямую динамик жестко перегружался.

Радуемся музыке из колонки!


Звук конечно так себе, все таки 12 бит дают о себе знать, но для ардуины очень даже не плохо!
Теперь в планах прикупить цветной дисплейчик и погонять на нем видео.

Ну и в качестве итога рассмотрим плюсы и минусы данной ардуины
Плюсы:
- Низкая стоимость
- 32 битный контроллер и частота 84 МГц.
- Наличие ЦАП 12 бит 1Msps
- 12 битные АЦП
- Собственный USB

Минусы:
- 3.3V рабочее напряжение (несовместимость с некоторыми шилдами/устройствами)
- Несовместимость с некоторыми библиотеками.
- Иногда после подачи питания нужно нажать reset чтобы программа запустилась

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

Всем спасибо за внимание!

Планирую купить +60 Добавить в избранное Обзор понравился +51 +107
Общие сведения

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

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

Плата содержит все, что необходимо для поддержки микроконтроллера. Чтобы начать работу с ней, достаточно просто подключить её к компьютеру кабелем микро-USB, либо подать питание с AC/DC преобразователя или батарейки. Due совместим со всеми платами расширения Arduino, работающими от 3,3 В, и с цоколевкой Arduino 1.0.

Расположение выводов Due повторяет цоколевку Arduino 1.0:

  • TWI: Выводы SDA и SCL расположены рядом с выводом AREF.
  • Вывод IOREF, который позволяет с помощью правильной конфигурации адаптировать присоединенную плату расширения к напряжению, выдаваемому Arduino. Благодаря этому платы расширения могут быть совместимы и с 3,3-вольтовыми платами типа Due и с платами на базе AVR, работающими от 5 В.
  • Неподключенные выводы, зарезервированные для использования в будущем.

Преимущества ядра ARM

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

32-битное ядро, позволяющее выполнять операции с данными шириной 4 байта за 1 такт (более подробную информацию смотри на странице int type).

  • частота процессора (CPU) 84 МГц.
  • 96 КБ ОЗУ.
  • 512 КБ флеш-памяти для хранения программ.
  • контроллер DMA, который разгружает центральный процессор от выполнения интенсивных операций с памятью.
Схема, исходные данные и расположение выводов
Характеристики

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

AT91SAM3X8E

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

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

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

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

12
Аналоговые выходы 2 (ЦАП)
Общий выходной постоянный ток
на всех входах/выходах
Постоянный ток через вывод 3,3 В 800 мА
Постоянный ток через вывод 5 В 800 мА
Флеш-память 512 КБ доступно всего для пользовательских приложений
ОЗУ 96 КБ (два банка: 64 КБ и 32 КБ)
Тактовая частота 84 МГц
Питание

Питание Arduino Due может осуществляться через USB соединитель или с помощью внешнего источника питания. Выбор источника питания выполняется автоматически.

Внешним (не USB) источником питания может быть либо AC/DC преобразователь («wall wart» - адаптер в одном корпусе с вилкой), либо батарея. Адаптер подключается к разъему питания платы 2,1 мм штепсельной вилкой с центральным положительным контактом. Выводы батареи подключаются к контактам Gnd и Vin разъема POWER. Плата может функционировать при внешнем питании от 6 до 20 В. Но если напряжение питания опускается ниже 7 В, на выводе 5 В может оказаться меньше пяти вольт, и плата будет работать нестабильно. Если же подается напряжение более 12 В, может перегреться стабилизатор напряжения, что приведет к повреждению платы. Рекомендуемый диапазон напряжений - от 7 до 12 В.

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

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

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

Существует возможность стереть флеш-память SAM3X с помощью встроенной кнопки стирания. При этом из микропроцессора удалится текущая загруженная программа. Для стирания нажмите и несколько секунд удерживайте кнопку стирания при включенном питании платы.

Входы и Выходы
  • Цифровые входы/выходы: выводы с 0 по 53
    Каждый из 54 цифровых выводов Due может использоваться в качестве входа или выхода, с помощью функций pinMode() , digitalWrite() и digitalRead() . Выводы работают от 3,3 В. Каждый вывод может выдавать (как источник) ток 3 мА или 15 мА, в зависимости от вывода, или получать (как приемник) ток 6 мА или 9 мА, в засимости от вывода. На них также имеются внутренние нагрузочные резисторы (по умолчанию они отключены) номиналом 100 кОм. Кроме этого, некоторым выводам назначены специализированные функции:
  • Последовательная линия: 0 (RX) и 1 (TX)
  • Последовательная линия 1: 19 (RX) и 18 (TX)
  • Последовательная линия 2: 17 (RX) и 16 (TX)
  • Последовательная линия 3: 15 (RX) и 14 (TX)
    Эти выводы используются для приема (RX) и передачи (TX) последовательных данных TTL (с уровнем 3,3 В). Выводы 0 и 1 соединены с соответствующими выводами последовательного контроллера ATmega16U2 USB-to-TTL.
  • ШИМ : выводы с 2 по 13
    На них реализуется 8-битный выход ШИМ с помощью функции analogWrite() . Разрешение ШИМ можно менять, используя функцию analogWriteResolution() .
  • SPI : разъем SPI (разъем ICSP на других платах Arduino)
    Данные выводы служат для связи по SPI с использованием библиотеки SPI . Сигналы SPI выведены на центральный 6-контактный разъем, который физически совместим с Uno, Leonardo и Mega2560. Разъем SPI можно использовать только для связи с другими устройствами SPI, но не для программирования SAM3X по технологии внутрисхемного последовательного программирования (ICSP). SPI на Due также имеет расширенные функции, доступные при использовании Расширенных методов SPI для Due .
  • CAN : CANRX и CANTX
    На этих выводах поддерживается протокол связи CAN, но пока его не поддерживают программные интерфейсы (API) Arduino.
  • " L " LED : 13
    Встроенный светодиод, подключенный к цифровому выводу 13. При высоком уровне сигнала на данном выводе, светодиод включается, при низком - выключается. Возможно также убавить яркость светодиода, поскольку вывод 13 одновременно является выходом ШИМ.
  • TWI 1: 20 (SDA) и 21 (SCL)
  • TWI 2: SDA 1 и SCL 1
    На данных выводах с использованием библиотеки Wire поддерживается связь по TWI.
  • Аналоговые входы: выводы с A 0 по A 11
    Плата Arduino Due имеет 12 аналоговых входов, каждый из которых может обеспечить разрешение 12 бит (т.е. 4096 различных значений). По умолчанию установлено разрешение 10 бит для совместимости с другими платами Arduino. Разрешение АЦП можно менять при помощи функции analogReadResolution() . Аналоговые ходы Due производят измерения от уровня земли до максимального значения 3,3 В. Приложение к этим выводам напряжения свыше 3,3 В вызовет повреждение кристалла SAM3X. Функция analogReference() на Due игнорируется.
    Вывод AREF подключен к аналоговому выводу опорного напряжения SAM3X через резисторный мост. Для активации вывода AREF необходимо отпаять с печатной платы резистор BR1.
  • DAC 1 и DAC 2
    На выводах ЦАП DAC 1 и DAC 2 предоставляются достоверные аналоговые выходы с 12-битным разрешением (4096 уровней) при помощи функции analogWrite() . Данные выводы можно использовать для создания аудиовыхода, используя при этом библиотеку Audio .

Другие выводы:

  • AREF
    Опорное напряжение для аналоговых входов. Используется с функцией analogReference ().
  • Reset
  • По низкому уровню на этой линии происходит сброс микроконтроллера. Типичное применение вывода Reset - добавление кнопки сброса на плату расширения, которая перекрывает эту кнопку на микроконтроллере.
Связь

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

Порт программирования соединен с ATmega16U2 , предоставляющей виртуальный COM порт для программ на подключенном компьютере. (Для определения этого устройства компьютеру с ОС Windows потребуется файл.inf, на машинах же с OSX и Linux плата автоматически будет распознана как COM порт). Чип 16U2 также соединен с аппаратным UARTом SAM3X. Последовательная шина на выводах RX0 и TX0 предоставляет преобразование Serial-to-USB для программирования платы через микроконтроллер ATmega16U2. В программное обеспечение Arduino входит монитор последовательной шины, который дает плате возможность отправлять и принимать простые текстовые сообщения. Светодиоды RX и TX на плате будут мигать, когда идет передача данных через кристалл ATmega16U2 и через USB подключение к компьютеру (но не во время последовательного обмена по выводам 0 и 1).

Собственный USB порт может также работать как USB хост для подключенных периферийных устройств: мыши, клавиатуры и смартфотонов. Чтобы использовать эти свойства, обратитесь к справочным страницам USB хост .

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

Arduino Due можно запрограммировать с помощью программных средств Arduino (скачать). Более детальная информация содержится в .

отличается от таковой для микроконтроллеров AVR, находящихся на других платах Arduino, поскольку необходимо стереть флеш-память перед тем как перепрограммировать её. Загрузка в кристалл управляется из ПЗУ контроллера SAM3X и запускается, только когда флеш-память кристалла пуста.


Плату можно программировать через оба USB порта, хотя рекомендуется использовать порт программирования, в связи с тем, что он поддерживает стирание кристалла:

  • Порт программирования : Для использования этого порта выберите в Arduino IDE в качестве вашей платы "Arduino Due (Programming Port)". Подключите порт программирования платы Due (ближайший к разъему питания постоянного тока) к вашему компьютеру. Порт программирования использует микросхему 16U2 в качестве преобразователя USB-to-serial, соединенный с первым UARTом контроллера SAM3X (RX0 и TX0). Два вывода 16U2 подключены к выводам Reset и Erase SAM3X. Открытие и закрытие порта программирования, подключенного на скорости передачи 1200 бит в секунду, запускает процедуру «аппаратного стирания» чипа SAM3X, активирование выводов Erase и Reset на SAM3X перед установлением связи с UART. Это рекомендуемый порт для программирования Due. Аппаратное стирание более надежно, чем «программное стирание», которое происходит на собственном USB порте, и будет работать даже в случае повреждения главного микропроцессора.
  • Собственный порт : Чтобы использовать этот порт, выберите в Arduino IDE тип вашей платы "Arduino Due (Native USB Port)". Собственный USB порт подсоединен напрямую к SAM3X. Подключите собственный USB порт Arduino Due (ближний к кнопке Reset) к вашему компьютеру. Открытие и закрытие собственного порта при скорости передачи 1200 бит в секунду запускает процедуру «программного стирания»: флеш-память стирается и плата перезапускается с помощью загрузчика. Если главный микроконтроллер по какой-либо причине поврежден, то, вероятно, программное стирание не будет работать, так как эта процедура на SAM3X происходит полностью программно. Открытие и закрытие собственного порта на других скоростях передачи не вызовет сброса SAM3X.

В отличие от других плат Arduino, использующих для загрузки avrdude, Due полагается на bossac.

Токовая защита разъема USB

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

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

Максимальная длина печатной платы Arduino Due равна 4 дюйма, а ширина - 2,1 дюйма, без учета USB соединителей и разъема питания, которые выступают за приведенные габаритные размеры. Три отверстия под винты позволяют закрепить плату на поверхности или в корпусе. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 составляет 160 мил (0.16", 4,064 мм), не кратно промежуткам в 100 мил (2,54 мм) между остальными выводами.

Arduino Due сделан совместимым с большинством плат расширения, разработанных для Uno, Diecimila или Duemilanove. Цифровые выводы с 0 по 13 (и соседние выводы AREF и GND), аналоговые входы с 0 по 5, разъем питания, разъем "ICSP" (SPI) расположены одинаково на всех платах. Более того, основной UART (последовательный порт) находится на тех же выводах (0 и 1).
Пожалуйста, обратите внимание, что шина I 2 C расположена в Arduino Due на других выводах (20 и 21), не так как в Duemilanove / Diecimila (аналоговые входы 4 и 5).

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

Подключение и настройка

Для работы с платформой Arduino Due в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino - Arduino IDE.

Добавление платформы

Элементы платы

Микроконтроллер Atmel SAM3X8E ARM Cortex-M3

Сердцем платы Arduino Due является 32-битное ARM ядро AT91SAM3X8E с тактовой частотой 84 МГц, 512 КБ флеш-памяти и 96 ОЗУ, превосходящее по производительности обычные 8-битные микроконтроллеры.

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

Микроконтроллер ATmega16U2 создает порт программирования для связи микроконтроллера SAM3X с USB-портом компьютера. При подключении к ПК Arduino Due определяется как виртуальный COM-порт. Перепрошивка микросхемы 16U2 производится через ICSP разъём используя стандартные драйвера USB-COM.

Пины питания

    VIN: Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, когда устройство запитано от внешнего адаптера.

    5V: На вывод поступает напряжение 5 В от стабилизатора напряжения на плате, независимости от того, как запитано устройство: от адаптера (7–12 В), от USB (5 В) или через вывод VIN (7–12 В). Питать устройство через вывод 5V не рекомендуется - в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.

    3.3V: 3,3 В от стабилизатора напряжения платы. Максимальный ток - 800 мА. Cтабилизатор также обеспечивает питание микроконтроллера SAM3X.

    GND: Выводы земли.

    IOREF: Этот вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения на нём, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.

Порты ввода/вывода

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

    Цифровые входы/выходы: пины 0 – 53
    Логический уровень единицы - 3,3 В, нуля - 0 В. Максимальный ток выхода - 3 или 15 мА в зависимости от вывода микроконтроллера, или ток входа - 6 или 9 мА. К контактам подключены подтягивающие резисторы 100 кОм, которые по умолчанию выключены, но могут быть включены программно.

    ШИМ: пины 2 – 13
    Позволяют выводить аналоговые значения в виде ШИМ-сигнала. Разрешение ШИМ позволяет менять функция analogWriteResolution().

    АЦП: пины A0 – A11
    12 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 12-битного числа (4096 значений). По умолчанию выставлена разрядность - 10 бит, для совместимости с другими платами. Разрешение АЦП можно менять с помощью функции analogReadResolution(). Аналоговые входы платы производят измерения от 0 до максимального значения 3,3 В. Если подать на вход напряжения свыше 3,3 В - это вызовет повреждение кристалла SAM3X.

    TWI/I²C: пины 20(SDA) , 21(SCL) и TWI 2/I²C 2: SDA1 и SCL1
    Для общения с периферией по синхронному протоколу, через 2 провода. Для работы используйте библиотеку Wire .

    SPI: Пины SPI выведены на центральный 6-контактный разъем, совместимый с Uno, Leonardo и Mega2560.
    Для коммутации по интерфейсу SPI используйте библиотеку SPI .

    UART: Serial: пины 0(RX) и 1(TX) ; Serial1: пины 19(RX1) и 18(TX1) ;Serial2: пины 17(RX2) и 16(TX2) ; Serial3: пины 15(RX3) и 14(TX3) .
    Эти выводы используются для получения (RX) и передачи (TX) данных по последовательному интерфейсу. Выводы 0(RX) и 1(TX) соединены с соответствующими выводами микросхемы ATmega16U2 , выполняющей роль преобразователя USB-UART. Для связи Arduino Due с компьютером через порт программирования, используйте класс Serial.

    DAC1/DAC2: На выводах ЦАП DAC1 и DAC2 доступны аналоговые выходы с 12-битным разрешением (4096 уровней) при помощи функции analogWrite(). Данные выводы можно использовать в качестве аудиовыхода, используя библиотеку Audio.

Светодиодная индикация

Разъём Programming USB

Разъём предназначен для прошивки платформы Arduino Due с помощью компьютера. Для использования этого порта выберите в Arduino IDE в качестве вашей платы "Arduino Due (Programming Port)". При этом также производится стирание предыдущей прошивки. Аппаратное стирание более надежно, чем «программное стирание», которое происходит на собственном USB порте, и будет работать даже при повреждении главного микропроцессора. В программное обеспечение Arduino входит монитор последовательной шины, который дает возможность компьютеру обмениваться простыми текстовыми сообщениями с платой подключенной через Programming USB посредством контроллера ATmega16U2.

Разъём Native USB

Чтобы использовать этот порт, выберите в Arduino IDE тип вашей платы "Arduino Due (Native USB Port)". Native USB port подключен к SAM3X, тем самым осуществляя последовательную связь (CDC) посредством USB обеспечивая подключение к монитору последовательной шины, или другим приложениям на вашем компьютере. Открытие и закрытие собственного порта при скорости передачи 1200 бит в секунду запускает процедуру «программного стирания»: флеш-память стирается и плата перезапускается с помощью загрузчика. Также это дает Due возможность эмулировать USB мышь или клавиатуру.

Native USB может также работать как USB хост для подключенных периферийных устройств: мыши, клавиатуры и прочего.

Разъём для внешнего питания

Разъём для подключения внешнего питания от 7 В до 12 В.

ICSP-разъём для ATmega2560

ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega2560. Также с применением библиотеки SPI данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах 50(MISO) , 51(MOSI) , 52(SCK) и 53(SS) .

ICSP-разъём для ATmega16U2

ICSP-разъём для внутрисхемного программирования микроконтроллера ATmega16U2.

Распиновка

Похожие публикации