Arduino due описание на русском. Начало работы с Arduino Due. Защита USB от перегрузки по току

Мощная плата Arduino DUE имеет 32-битное ядро, производительность которого существенно превосходит 8-ми битные чипы, установленные на других платах итальянского производителя. Питание платформы осуществляется от внешнего источника или от USB порта. На процессор Atmel при его изготовлении записывается загрузчик, что позволяет обойтись без внешних программаторов. Широкий ассортимент входов позволяет осуществлять Arduino DUE простые проекты и решать сложные задачи.

Платформа укомплектована средствами связи с ПК, другими платами Arduino, планшетами, смартфонами и другими автоматизированными устройствами. Программируется с помощью ПО производителя, загрузить программы на SAM3X можно только стерев flash-память. Осуществить программирование Arduino DUE можно через один из двух USB портов. Выводы платформы аналогичны плате Arduino 1.0, что облегчает использование ее в проектах с применением других продуктов компании. Доступная на Arduino DUE цена делает этот микроконтроллер одним из самых популярных в своем классе.

Технические характеристики Arduino DUE

Плата DUE имеет следующие технические параметры:

  • Питание – 3,3 В (не рекомендуется подавать напряжение более этого значения на выводы во избежание повреждения устройства);
  • Flash-память – 512 кБ;
  • ОЗУ микрочипа – 96 кБ;
  • Тактовая частота – 84 МГц;
  • Количество цифровых входов – 54;
  • Количество аналоговых входов – 2;
  • Габариты – 102х53 мм;
  • Расстояние между выводами 2,54 мм.

Первая плата 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.

Распиновка

The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU . It is the first Arduino board based on a 32-bit ARM core microcontroller.

On this page... ()

Use your Arduino Due on the Arduino Web IDE

All Arduino boards, including this one, work out-of-the-box on the , no need to install anything .

The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this to start coding on the browser and upload your sketches onto your board.

Use your Arduino Due on the Arduino Desktop IDE

If you want to program your Arduino Due while offline you need to install the and add the Atmel SAMD Core to it. This simple procedure is done selecting Tools menu , then Boards and last Boards Manager , as documented in the page.
Attach the USB micro side of the USB cable to the Due"s Programming port (this is the port closer to the DC power connector). To upload a sketch, choose Arduino Due (Programming port) from the Tools > Board menu in the Arduino IDE, and select the correct serial port from the Tools > Serial Port menu.

Installing the Arduino Sam Boards core

If you are using the Arduino IDE version 1.6.2 or newer you need to install the core that supports the Arduino Due. Please follow to install the new core.

Installing Drivers for the Due

OSX
  • No driver installation is necessary on OSX. Depending on the version of the OS you"re running, you may get a dialog box asking you if you wish to open the “Network Preferences”. Click the "Network Preferences..." button, then click "Apply". The Due will show up as “Not Configured”, but it is still working. You can quit the System Preferences.
Windows (tested on XP and 7)
Linux
  • No driver installation is necessary for Linux.

Select your board and port

The uploading process on the Arduino Due works the same as other boards from a user"s standpoint. It is recommended to use the Programming port for uploading sketches, though you can upload sketches on either of the USB ports.

port follow this steps:

  • Connect your board to the computer by attaching the USB cable to the Due"s Programming port (this is the port closer to the DC power connector).
  • In the "Tools" menu choose "Serial Port" and select the serial port of the Due
  • Under the "Tools > Boards" menu select "Arduino Due (Programming port)"

Open your first sketch

Everything is now ready to upload your first sketch. Go to File on the Arduino Software (IDE) and open the Examples tree; select 01. Basic and then Blink

This sketch just flashes the built in LED connected to Digital pin 13 at one second pace for on and off, but it is very useful to practice the loading of a sketch into the Arduino Software (IDE) and the Upload to the connected board.

Upload the program

Press the second round icon from left on the top bar of the Arduino Software (IDE) or press Ctrl+U or select the menu Sketch and then Upload .

Learn more on the Desktop IDE

When using the Due as a host, it will be providing power to the attached device. It is strongly recommended to use the DC power connector when acting as a host.

ADC and PWM resolutions

The Due has the ability to change its default analog read and write resolutions (10-bits and 8-bits, respectively). It can support up to 12-bit ADC and PWM resolutions. See the and pages for information.

Expanded SPI functionality

The Due has expanded functionality on its SPI bus, useful for communicating with multiple devices that speak at different speeds. See the for more details.

Last revision2017/01/10 by SM

The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License . Code samples in the guide are released into the public domain.

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

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

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

Технические характеристики

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

Документация

Схемы, разводка платы, размеры

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

Преимущества архитектуры ARM

  • 32-битное ядро, что позволяет выполнять операции с 4-байтными данными за один такт CPU;
  • тактовая частота CPU составляет 84 МГц;
  • 96 килобайт SRAM;
  • 512 килобайт флеш-памяти для кода программ;
  • DMA контроллер, что может освободить CPU от выполнения задач по интенсивной работе с памятью.

Питание

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

Внешнее (не USB) питание может подаваться либо от AC/DC адаптера, либо от батареи. Адаптер может быть подключен с помощью 2,1 мм разъема питания с положительным контактом в центре. Питание от батареи может быть подано на выводы Vin и GND разъема POWER.

Плата может работать от внешнего питания от 6 до 20 вольт. Если подается питание меньше, чем 7 вольт, то на выводе 5V питание может составлять менее пяти вольт, и плата может начать работать нестабильно. Если используется питание более 12В, регулятор напряжения может перегреться и повредить плату. Рекомендуется использовать напряжение питания в диапазоне от 7 до 12 вольт.

Выводы питания:

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

Память

SAM3X обладает 512 килобайтами (2 блока по 256 Кб) флэш-памяти для хранения кода программы. Загрузчик заранее прошит на заводе Atmel и хранится в выделенной для этого ROM памяти. Доступная SRAM память расположена в двух смежных банках 64 Кб и 32 Кб. Вся доступная память (Flash, RAM и ROM) может быть доступна напрямую через плоское адресное пространство.

Также возможно стирание флеш-памяти SAM3X с помощью кнопки стирания, расположенной на плате. Это удалит из MCU загруженный код программы. Чтобы стереть код, нажмите и удерживайте кнопку Erase несколько секунд при поданном на плату питании.

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

Каждый из 54 цифровых выводов Arduino 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 также подключены к соответствующим выводам преобразователя USB-TTL на ATmega16U2;
  • ШИМ: выводы со 2 по 13 . Обеспечивают 8-битный ШИМ выход с помощью функции analogWrite() . Разрешение ШИМ может быть изменено с помощью функции analogWriteResolution() ;
  • SPI: разъем SPI (разъем ICSP на других платах Arduino) . Эти выводы поддерживают связь через SPI с помощью соответствующей библиотеки. SPI выводы подключены к 6-пиновому разъему в центре, который физически совместим с платами Arduino Uno, Leonardo и Mega2560. Разъем SPI может использоваться только для связи с другими SPI устройствами, но не для программирования SAM3X по технологии внутрисхемного программирования. SPI в Arduino Due обладает расширенными возможностями, которые могут использоваться с расширенных SPI методов для Due;
  • CAN: CANRX и CANTX . Эти выводы поддерживают связь по протоколу CAN, но он еще не поддерживается Arduino API;
  • светодиод: 13 . Встроенный светодиод подключен к цифровому выводу 13. При высоком уровне на выводе светодиод загорается, при низком - гаснет. Также возможно менцание светодиода, так как цифровой вывод 15 является еще и ШИМ выходом;
  • TWI 1: 20 (SDA) и 21 (SCL), TWI 2: SDA1 и SCL1 . Поддерживают связь через TWI с помощью библиотеки Wire . SDA1 и SCL1 могут управляться с помощью класса Wire1 , поставляемого библиотекой Wire . В отличие от SDA и SCL, имеющих внутренние подтягивающие резисторы, SDA1 и SCL1 такими резисторами не обладают. Поэтому для использования Wire1 необходимо добавление двух подтягивающих резисторов на линии SDA1 и SCL1;
  • Аналоговые входы: выводы от A0 до A11 . Arduino Due обладает 16 аналоговыми входами, каждый из которых обеспечивает 12-битное разрешение (т.е. 4096 разных значений). По умолчанию для совместимости с другими платами Arduino разрешение чтения устанавливается равным 10 бит. Разрешение АЦП можно изменить с помощью функции analogReadResolution() . Аналоговые входы Arduino Due измеряют напряжение от 0 до максимального значения 3,3 вольт. Подача напряжения более 3,3В на выводы Arduino Due может вывести из строя микросхему SAM3X. Функция analogReference() игнорируется платой Arduino Due. Вывод AREF подключен к выводу опорного аналогового напряжения SAM3X через резисторный мост. Для использования вывода AREF необходимо выпаять резистор BR1 на плате;
  • DAC1 и DAC2 . Эти выводы обеспечивают настоящие аналоговые выходы с 12-битным разрешением (4096 уровней) с помощью функции analogWrite() . Эти выводы могут использоваться для создания аудиовыхода с помощью библиотеки Audio .

Еще пара выводов:

  • AREF . Опорное напряжение для аналоговых входов. Используется совместно с analogReference() ;
  • Reset . Низкий уровень на этом выводе приводит к перезагрузке микроконтроллера. Обычно используется для добавления кнопки сброса на платы расширения, закрывающей доступ к кнопке сброса на самой плате Arduino.
Таблица соответствия между выводами Arduino Due и портами SAM3X
Номер вывода Arduino Due Название вывода SAM3X Название соответствующего вывода Arduino Due Максимальный выходной ток (мА) Максимальный потребляемый ток (мА)
0 PA8 RX0 3 6
1 PA9 TX0 15 9
2 PB25 Цифровой вывод 2 3 6
3 PC28 Цифровой вывод 3 15 9
4 Подключен и к PA29 , и к PC26 Цифровой вывод 4 15 9
5 PC25 Цифровой вывод 5 15 9
6 PC24 Цифровой вывод 6 15 9
7 PC23 Цифровой вывод 7 15 9
8 PC22 Цифровой вывод 8 15 9
9 PC21 Цифровой вывод 9 15 9
10 Подключен и к PA28 , и к PC29 Цифровой вывод 10 15 9
11 PD7 Цифровой вывод 11 15 9
12 PD8 Цифровой вывод 12 15 9
13 PB27 Цифровой вывод 13 / желтый светодиод "L" 3 6
14 PD4 TX3 15 9
15 PD5 RX3 15 9
16 PA13 TX2 3 6
17 PA12 RX2 3 6
18 PA11 TX1 3 6
19 PA10 RX1 3 6
20 PB12 SDA 3 6
21 PB13 SCL 3 6
22 PB26 Цифровой вывод 22 3 6
23 PA14 Цифровой вывод 23 15 9
24 PA15 Цифровой вывод 24 15 9
25 PD0 Цифровой вывод 25 15 9
26 PD1 Цифровой вывод 26 15 9
27 PD2 Цифровой вывод 27 15 9
28 PD3 Цифровой вывод 28 15 9
29 PD6 Цифровой вывод 29 15 9
30 PD9 Цифровой вывод 30 15 9
31 PA7 Цифровой вывод 31 15 9
32 PD10 Цифровой вывод 32 15 9
33 PC1 Цифровой вывод 33 15 9
34 PC2 Цифровой вывод 34 15 9
35 PC3 Цифровой вывод 35 15 9
36 PC4 Цифровой вывод 36 15 9
37 PC5 Цифровой вывод 37 15 9
38 PC6 Цифровой вывод 38 15 9
39 PC7 Цифровой вывод 39 15 9
40 PC8 Цифровой вывод 40 15 9
41 PC9 Цифровой вывод 41 15 9
42 PA19 Цифровой вывод 42 15 9
43 PA20 Цифровой вывод 43 3 6
44 PC19 Цифровой вывод 44 15 9
45 PC18 Цифровой вывод 45 15 9
46 PC17 Цифровой вывод 46 15 9
47 PC16 Цифровой вывод 47 15 9
48 PC15 Цифровой вывод 48 15 9
49 PC14 Цифровой вывод 49 15 9
50 PC13 Цифровой вывод 50 15 9
51 PC12 Цифровой вывод 51 15 9
52 PB21 Цифровой вывод 52 3 6
53 PB14 Цифровой вывод 53 15 9
54 PA16 Аналоговый вход 0 3 6
55 PA24 Аналоговый вход 1 3 6
56 PA23 Аналоговый вход 2 3 6
57 PA22 Аналоговый вход 3 3 6
58 PA6 Аналоговый вход 4 3 6
59 PA4 Аналоговый вход 5 3 6
60 PA3 Аналоговый вход 6 3 6
61 PA2 Аналоговый вход 7 3 6
62 PB17 Аналоговый вход 8 3 6
63 PB18 Аналоговый вход 9 3 6
64 PB19 Аналоговый вход 10 3 6
65 PB20 Аналоговый вход 11 3 6
66 PB15 DAC0 3 6
67 PB16 DAC1 3 6
68 PA1 CANRX 3 6
69 PA0 CANTX 15 9
70 PA17 SDA1 3 6
71 PA18 SCL2 15 9
72 PC30 светодиод "RX" 15 9
73 PA21 светодиод "TX" 3 6
74 PA25 (MISO) 15 9
75 PA26 (MOSI) 15 9
76 PA27 (SCLK) 15 9
77 PA28 (NPCS0) 15 9
78 PB23 (не подключен) 15 9
USB PB11 ID 15 9
USB PB10 VBOF 15 9

Связь

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

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

Собственный USB порт подключен к SAM3X. Это позволяет использовать последовательную (CDC) связь поверх USB. Это обеспечивает последовательное соединение с монитором последовательного порта или с другими приложениями на вашем компьютере. Это также позволяет Arduino Due имитировать USB мышь или клавиатуру, подключенную к компьютеру. Для использования этой возможности посмотрите на документацию библиотек Mouse и Keyboard .

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

SAM3X также поддерживает связь через TWI и SPI. Arduino IDE включает в себя библиотеку Wire для упрощения использования шины TWI. Для связи через SPI используется библиотека SPI .

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

Arduino Due может быть прошит с помощью Arduino IDE.

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

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

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

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

Прошивка ATmega16U2 доступна в репозитории Arduino. Вы можете использовать разъем ISP с внешним программатором (перезаписывающим DFU загрузчик).

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

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

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

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).