Arduino:Продукты/Продукты Arduino/Плата Arduino Zero

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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



Arduino Zero[1]

Модель Zero – это простое и мощное 32-битное расширение платы Arduino Uno. Области применения Zero простираются от девайсов для интернета вещей и носимой электроники до высокотехнологичной автоматизации и робототехники.

В основе платы лежит микроконтроллер SAMD21 от Atmel, оснащенный 32-битным ядром ARM Cortex M0+. Одна из важнейших функций Zero – это встроенный отладчик («embedded debugger» или просто EDBG), который обеспечивает полнофункциональный отладочный интерфейс без использования дополнительного оборудования, что значительно упрощает программную отладку платы. Кроме того EDBG поддерживает использование виртуального COM-порта, который можно использовать для программирования платы и загрузчика.

Внимание: В отличие от большинства плат семейства Arduino/Genuino, Zero работает на 3,3 вольтах. Максимальное напряжение, к которому терпимы I/O контакты на Zero – 3,3 вольта. Если подать больше, это может повредить плату.

Плата обладает всем необходимым для работы микроконтроллера – просто подключите ее к компьютеру при помощи кабеля типа micro-USB либо запитайте от батареи или адаптера, конвертирующего переменный ток в постоянный. Плата Zero совместима со всеми «шилдами», работающими на 3,3 вольтах, а также с распиновкой Arduino 1.0.

О гарантии можно почитать тут.

Примечание

Платы Arduino и Genuino на базе микроконтроллеров AVR сбрасываются и перезапускают скетч каждый раз, когда в IDE Arduino открывается монитор порта. Кроме того, тот же механизм используется для загрузки скетчей. Однако Zero отличается от других плат Arduino: если она подключена через USB-порт для программирования, и пользователь открывает в IDE Arduino монитор порта, автоматического сброса не происходит, и скетч, загруженный на плату, продолжает работать. Чтобы перезапустить скетч, вам нужно самостоятельно нажать на кнопку сброса.

С чего начать

Здесь можно почитать о том, как настроить плату, использовать IDE Arduino и другие основы. О том, как обновить загрузчик до последней версии, читайте тут.

Нужна помощь? Ее можно попросить на форумах Arduino:

  • Здесь можно спросить о ПО
  • Здесь – о проектах
  • Здесь можно попросить пользовательскую поддержку

Примеры

В этом руководстве можно прочесть, как снизить энергопотребление Arduino Zero, в этом – как при помощи библиотеки Audio и 10-битного АЦП проигрывать WAV-файлы, хранящиеся на SD-карте, а благодаря этому – научиться использовать функции библиотеки RTC.

О других проектах, которые можно создать при помощи Arduino/Genuino Zero, читайте на Arduino Project Hub – образовательной платформе официального сайта Arduino.

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

  • Микроконтроллер – ATSAMD21G18, 32 бита, ARM Cortex M0+
  • Рабочее напряжение – 3,3 вольта
  • Цифровые I/O контакты – 20 шт.
  • Цифровые I/O контакты с поддержкой ШИМ – все контакты, кроме 2-ого и 7-ого
  • UART – 2 шт. (штатный порт и порт для программирования)
  • Входные аналоговые контакты – 6 шт., 12-битные АЦП-каналы
  • Выходные аналоговые контакты – 1 шт., 10-битный ЦАП
  • Внешние прерывания – все контакты, кроме 4-го
  • Максимальная сила тока на один I/O контакт – 7 миллиампер
  • Flash-память – 256 Кб
  • SRAM – 32 Кб
  • EEPROM – нет (см. документацию)
  • Встроенный светодиод (LED_BUILTIN) – 13-ый
  • Тактовая частота – 48 МГц
  • Длина – 68 мм.
  • Ширина – 30 мм.
  • Вес – 12 грамм

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

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

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

Плата Zero оснащена 32-битным ядром ARM, которое мощнее 8-битных микроконтроллеров, что обычно стоят на платах Arduino. Вот ряд других важных отличий:

  • 32-битное ядро позволяет выполнять операции с 4-байтными данными в рамках одного такта процессора (более подробно читайте в статье о типе данных int)
  • Тактовая частота процессора – 48 МГц
  • 12-канальный DMA-контроллер, освобождающий процессор от выполнения особо трудоемких задач
  • 32-битный RTC (счетчик реального времени) с функцией часов/календаря
  • 32-битный генератор CRC
  • 2-канальный интерфейс I2S (Inter IC Sound)
  • Периферийный сенсорный контроллер (или PTC; от «peripheral touch controller»)

Более подробную информацию о микроконтроллере SAM-D21 читайте в даташите.

Встроенный отладчик Atmel

Чтобы программировать микроконтроллер SAMD21, встроенный отладчик (EDBG) платы Zero использует интерфейс SWD. Кроме того, EDBG подключен к одному из аппаратных последовательных портов микроконтроллера. Это значит, что класс Serial отвечает за порт для программирования. Плата Zero была разработана в сотрудничестве с Atmel, поэтому для получения полного доступа к памяти микроконтроллера (чтобы упростить отладку кода) можно воспользоваться средой разработки ATMEL Studio.

Питание

Плату Arduino Zero можно запитать через USB-коннектор или внешний источник питания. Источник питания выбирается автоматически.

Внешнее (не USB) питание может идти от адаптера, конвертирующего переменный ток в постоянный, или от батареи – в таком случае используется 2,1-миллиметровый коннектор с положительным центральным контактом, подключенный к разъему для питания на плате. Также питание можно подать через контакты GND и VIN на коннекторе POWER.

Плата может работать от источника питания с напряжением от 6 до 20 вольт. Но мы рекомендуем использовать от 7 до 12 вольт.

Контакты для питания на плате Zero:

  • VIN – входное напряжение при использовании внешнего источника питания (в отличие от 5 вольт, подаваемых через USB-соединение или другой регулированный источник питания). Через этот контакт можно как подавать напряжение, так и получать к нему доступ, если напряжение подается через разъем для питания.
  • 5V – выдача отрегулированных 5 вольт от регулятора напряжения, имеющегося на плате. Плату можно питать от разъема постоянного тока (7-12 вольт), от USB-соединения (5 вольт) или от контакта VIN (7-12 вольт). Подача напряжения на контакты 5V или 3.3V идет в обход регулятора и может повредить плату. Делать этого не рекомендуется.
  • 3.3V3,3 вольта, генерируемые встроенным регулятором напряжения. Максимальная сила тока – 800 миллиампер. Кроме того, этот регулятор обеспечивает питанием микроконтроллер SAMD21.
  • GND – контакты для «земли».
  • IOREF – эталонное напряжение, на котором работает микроконтроллер. Правильно настроенный «шилд» может прочесть напряжение на контакте IOREF и выбрать правильный источник питания или переключить в нужное состояние вольтовую логику – либо на 5 вольт, либо на 3,3 вольта.

Память

Микроконтроллер SAMD21 оснащен 256 Кб памяти. Кроме того, у него есть 32 Кб SRAM-памяти и 16 Кб эмулированной EEPROM-памяти.

Входные и выходные контакты

Каждый из 20 цифровых I/O контактов Zero может быть использован и для ввода, и для вывода данных – при помощи функций pinMode(), digitalWrite() и digitalRead(). Некоторые контакты (3-ий, 4-ый, 5-ый, 6-ой, 8-ой, 9-ый, 10-ый, 11-ый, 12-ый и 13-ый) также можно использовать для ШИМ – при помощи функции analogWrite(). Все контакты работают на 3,3 вольтах. Каждый контакт может получать/отдавать не более 7 миллиампер и имеет встроенный подтягивающий резистор (по умолчанию отключен) на 20-50 кОм.

Кроме того, некоторые контакты Zero имеют специальные функции:

  • Последовательная передача данных: 0-ой (RX) и 1-ый (TX) контакты. На этих контактах используется класс Serial1. Однако на штатном USB-порте используется класс SerialUSB.
  • Внешние прерывания: Доступны на всех контактах, кроме 4-ого.
  • ЦАП: 0-ой аналоговый контакт. Выдача 10-битного напряжения при помощи функции analogWrite().
  • ШИМ: 3-ий, 4-ый, 5-ый, 6-ой, 8-ой, 9-ый, 10-ый, 11-ый, 12-ый и 13-ый контакты. Выдача 8-битной ШИМ при помощи функции analogWrite().
  • Интерфейс SPI: SS, MOSI, MISO и SCK. Расположен на ICSP-гребешке и поддерживает SPI-коммуникацию (только при помощи библиотеки SPI).
  • Встроенный светодиод: 13-ый цифровой контакт. Если подать на него значение HIGH, светодиод включится, а если LOW, то выключится.
  • Аналоговые контакты: Шесть из двадцати I/O контактов Zero можно использовать для входных аналоговых данных. Они пронумерованы с A0 до A5, и каждый из них имеет 12-битное разрешение (т.е. значения в диапазоне от 1 до 4096). По умолчанию диапазон составляет от «земли» до 3,3 вольт, однако верхнюю границу этого диапазона можно поменять при помощи контакта AREF и функции analogReference().
  • Интерфейс TWI: контакты SDA и SCL. Поддерживают TWI-коммуникацию при помощи библиотеки TWI.

На плате также есть еще несколько специальных контактов:

  • AREF – эталонное напряжение для входных аналоговых контактов. Используется с функцией analogReference().
  • Reset – если подать на эту линию значение LOW, это сбросит микроконтроллер. Как правило, используется, чтобы добавить на «шилд» кнопку сброса, т.к. подключение «шилда» блокирует кнопку сброса на самой плате.

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

Загрузка скетчей на SAMD21 осуществляется не так, как на микроконтроллерах AVR, которыми оснащаются другие Arduino/Genuino.

Для программирования платы можно использовать оба USB-порта, однако мы рекомендуем использовать тот, что расположен выше (т.е. USB-порт для программирования) – из-за того, как выполняется стирание информации на чипе:

  • USB-порт для программирования: Чтобы использовать этот порт, выберите в IDE Arduino пункт Tools > Board > Arduino/Genuino Zero (Programming Port) или Инструменты > Плата > Arduino/Genuino Zero (Programming Port). Затем подключите USB-порт для программирования (тот, что ближе к разъему для питания) к компьютеру. USB-порт для программирования использует EDBG в качестве чипа, конвертирующего USB в SWD.
  • Штатный USB-порт: Чтобы использовать этот порт, выберите в IDE Arduino пункт Tools > Board > Arduino/Genuino Zero (Native USB Port) или Инструменты > Плата > Arduino/Genuino Zero (Native USB Port). Штатный USB-порт подключен напрямую к SAMD21. Подключите штатный USB-порт (он находится ближе к кнопке сброса) к компьютеру.

В отличие от других плат Arduino, которые используют для загрузки avrdude, Zero полагается на bossa, а порт для программирования использует openOCD.

JTAG-коннектор для отладки через SWD

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

ICSP-коннектор для SPI-коммуникации

Ниже – картинка, показывающая расположение контактов SPI на гребешке ICSP:

EEPROM

Часть flash-памяти можно использовать для долговременного хранения информации, но с некоторыми ограничениями. Как правило, срок работы flash-памяти составляет 25 тысяч циклов записи и, в отличие от EEPROM, данные на ней стираются страницами. Кроме того, перед загрузкой нового скетча flash-память стирается.

Последовательные порты

  • Serial – это аппаратный последовательный порт, который подключен к чипу EDBG. Кроме того, он соответствует виртуальному последовательному порту на компьютере, когда вы подключаете Arduino Zero через USB-порт для программирования.
  • SerialUSB – это виртуальный последовательный USB-порт, который соответствует виртуальному последовательному порту на компьютере, когда вы подключаете Arduino Zero через штатный USB-порт.
  • Serial1 – это аппаратный последовательный порт, подключенный к 0-ому и 1-ому контактам. Его можно свободно подключать к внешним устройствам, использующим последовательный интерфейс.

Запись загрузчика

Запись загрузчика можно осуществить при помощи USB-порта для программирования. Для этого нужно выполнить следующее:

  • Выбрать в IDE Arduino пункт Tools > Programmer > Atmel EDBG или, если использовать русскоязычную версию, Инструменты > Программатор > Atmel EDBG
  • Выбрать в IDE Arduino пункт Tools > Board > Arduino/Genuino Zero (Programming Port) или, если использовать русскоязычную версию, Инструменты > Плата > Arduino/Genuino Zero (Programming Port)
  • Выбрать в IDE Arduino пункт Tools > Burn Bootloader или, если использовать русскоязычную версию, Инструменты > Записать Загрузчик

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

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

Физические характеристики

Максимальная длина и ширина печатной платы Arduino Zero составляют 6,85 см и 5,33 см соответственно, причем USB-коннекторы и разъем для питания немного выходят за пределы ширины. Также на плате имеются три отверстия, через которые плату можно прикрепить к какой-либо поверхности или корпусу. Обратите внимание, что расстояние между 7-ым и 8-ым контактом составляет 0,406 см, а между другими контактами – 0,254 см.

Плата Zero совместима с большинством «шилдов», созданных для моделей Uno, Diecimila и Duemilanove. Цифровые контакты с 0-го по 13-ый (и прилегающие контакты AREF и GND), аналоговые контакты с 0-го по 5-ый, гребешок для питания и ICSP-гребешок находятся на тех же местах. Более того, главный UART (последовательный порт) тоже расположен на тех же контактах – 0-ом и 1-ом.

См.также

Внешние ссылки