====== Arduino Nano 33 IoT: распиновка, схема подключения и программирование ======
[[amp>product/arduino-nano-33-iot?utm_source=man&utm_campaign=arduino-nano-every&utm_medium=wiki|Arduino Nano 33 IoT]] — компактная платформа для разработки с 32-битным микроконтроллером Microchip ATSAMD21G18, беспроводным модулем U-blox NINA-W102 и IMU-сенсором на 6 степеней свободы.
{{ :products:arduino-nano-33-iot:arduino-nano-33-iot.4.jpg?nolink |}}
===== Подключение и настройка =====
==== Шаг 1 ====
[[articles:arduino-ide-install|Скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE.
==== Шаг 2 ====
По умолчанию среда Arduino IDE настроена только на AVR-платы. Для работы с платформой Arduino Nano 33 IoT — [[:articles:arduino-boards-manager#добавление_плат_с_ядром_cortex-m0|добавьте в менеджере плат поддержку платформ на ядре ARM Cortex-M0+]].
===== Элементы платы =====
{{ :products:arduino-nano-33-iot:arduino-nano-33-iot-annotation.png?nolink |}}
==== Микроконтроллер ATSAMD21G18 ====
Мозгом платформы Arduino MKR Wi-Fi 1010 является 32-разрядный микроконтроллер фирмы Microchip (Atmel) — {{ :products:arduino-nano-33-iot:samd21g18a-datasheet.pdf |ATSAMD21G18}} с вычислительном ядром ARM Cortex® M0.
Благодаря использованию 32-разрядного ядра ARM, Arduino Nano IoT во многом превосходит типичные платы на базе 8-разрядных микроконтроллеров. Наиболее существенные отличия заключаются в следующем:
* 32-битное ядро позволяет обрабатывать четырёх-байтовые данные всего за один такт.
* Тактовая частота – 48 МГц.
* Объем памяти программ Flash – 256 КБ.
* Объем оперативной памяти SRAM – 32 КБ.
* Наличие DMA-контроллера позволяет разгрузить центральный процессор, выполняя ресурсоёмкие операции с памятью.
==== Беспроводной модуль NINA-W102 ====
За беспроводную связь отвечает модуль {{ :products:arduino-nano-33-iot:nina-w102-datasheet.pdf |U-blox NINA-W102}} со встроенным чипом ESP32 для обмена данными по воздуху в диапазоне 2,4 ГГц по Wi-Fi и Bluetooth. Регулировка выходной мощности обеспечивает оптимальное соотношение между дальностью связи, скоростью передачи данных и энергопотреблением.
==== IMU-сенсор ====
IMU-сенсор на 6 степеней свободы включает в себя акселерометр и компас. Сборка выполнена на чипе {{ :products:arduino-nano-33-iot:lsm6ds3-datasheet.pdf |LSM6DS3}} по технологии (англ. System-in-Package — система в корпусе), где акселерометр и гироскоп лежат методом бутерброда в пластиковом корпусе.
==== Крипто-чип ATECC608A ====
Криптографический сопроцессор Microchip {{ :products:arduino-nano-33-iot:atecc608a-datasheet.pdf |ATECC608A}} интегрирует протокол безопасности ECDH (Elliptic Curve Diffie Hellman) в сверхзащищенный метод, обеспечивающий согласование ключей для шифрования / дешифрования, наряду с ECDSA (алгоритм цифровой подписи эллиптической кривой) для проверки подлинности с подписью для Интернета вещей (IoT), включая домашнюю автоматизацию, промышленные сети, медицинские услуги, аутентификацию аксессуаров и расходных материалов.
==== USB порт ====
Разъём micro-USB предназначен для прошивки платформы Arduino Nano Every с помощью компьютера.
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| ON |Информационный индикатор питания|
| L | Пользовательский светодиод на ''13'' пине микроконтроллера. Используйте определение ''LED_BUILTIN'' для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.|
==== Понижающий регулятор 3V3 ====
Импульсный понижающий регулятор напряжения {{ :products:arduino-nano-33-iot:mpm3610-datasheet.pdf |MPM3610}} обеспечивает питание микроконтроллера [[#микроконтроллер_atmega4809|ATSAMD21G18]] и другой логики платформы при подключении платформы через пин ''Vin''. Диапазон входного напряжения от 5 до 18 вольт. Выходное напряжение 3,3 В с максимальным выходным током 1,2 А.
==== Кнопка RESET ====
Пользовательская кнопка с двумя полезными функциями:
* Один клик (Single Сlick): служит для сброса микроконтроллера.
* Двойной клик (Double Click): переводит микроконтролер в BOOT-режим, который пригодиться при зависании платы или дургих сбоев в программе.
===== Распиновка =====
{{ :products:arduino-nano-33-iot:arduino-nano-33-iot-pinout.png?nolink |}}
==== Пины питания ====
* **VIN** Пин для подключения внешнего источника напряжения в диапазоне от 5 до 18 вольт.
* **5V:** Для обратной совместимости с проектами на Arduino Nano пин 5V оставили на месте, но на плате отсутствует стабилизатор напряжения на 5 вольт и пин висит в воздухе. Чтобы получить активную линию питания на 5 вольт, вам понадобится спаять перемычку для площадок VUSB и подвести внешнее питание 5 вольт через USB-порт.
* **3V3** Пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 1,2 А. Регулятор обеспечивает питание микроконтроллера [[#микроконтроллер_atsamd21g18|ATSAMD21G18]], беспроводного модуля [[#беспроводной_модуль_nina-w102|NINA W-102]] и другой вспомогательной логики платы.
* **AREF:** Пин для подключения внешнего опорного напряжения АЦП относительно которого происходят аналоговые измерения при использовании функции [[https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/|analogReference()]] с параметром «EXTERNAL».
* **GND** Выводы земли.
==== Порты ввода/вывода ====
В отличии от большинство плат Arduino, родным напряжением Arduino Nano 33 IoT является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Большее напряжение может повредить микроконтроллер!
Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.
* **Цифровые входы/выходы** 22 пина: ''0''–''21''\\ Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 20 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
* **ШИМ** 12 пинов: ''3'',''5'', ''6'', ''9''–''12'', ''14'', ''16'', ''17'' и ''19''\\ Позволяет выводить аналоговые значения в виде ШИМ-сигнала. По умолчанию разрядность «ШИМ» установлена в 8 бит. Изменить разрядность «ШИМ» можно с помощью функции [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/|analogWriteResolution()]].
* **АЦП** 8 пинов: ''A0''–''A7''\\ Позволяет представить аналоговое напряжение в виде цифровом виде. По умолчанию разрядность «АЦП» установлена в 10 бит. Изменить разрядность «АЦП» можно с помощью функции [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogreadresolution/|analogReadResolution()]]. Диапазон входного напряжения от 0 до 3,3 В. При подаче большего напряжения микроконтроллер может выйти из строя.
* **ЦАП:** пин ''DAC/A0''\\ Аналоговый выход цифро-аналогового преобразователя, который позволяет формировать 10-битные уровни напряжения. Вывод может использоваться для [[https://www.arduino.cc/en/Tutorial/SimpleAudioPlayer|создания аудио-выхода]] — для этого используйте библиотеку [[https://www.arduino.cc/en/Reference/AudioZero|AudioZero]].
* **TWI/I²C** пины ''SDA/18'' и ''SCL/19''\\ Для общения с периферией по интерфейсу «I²C». Для работы используйте библиотеку [[https://www.arduino.cc/en/Reference/Wire|Wire]].
* **SPI:** пины ''MOSI/11'', ''MISO/12'' и ''SCK/13''\\ Для общения с периферией по интерфейсу «SPI». Для работы — используйте библиотеку [[https://www.arduino.cc/en/Reference/Spi|SPI]].
* **UART/Serial:**\\ Платформа поддерживает несколько последовательных интерфейсов. Для работы — используйте методы библиотеки [[https://www.arduino.cc/en/Reference/Serial|Serial]].
* **SerialUSB** пины: ''D−/31/C33'' и ''D+/32/C34''\\ Выводы шины соединены с USB-разъёмом платы. Используется для прошивки и отладки платформы через ПК.
* **Serial1** пины: ''RX/0/C38'' и ''TX/1/C37''\\ Для коммуникации платы Arduino с другими [[amp>collection/boards?utm_source=man&utm_campaign=arduino-nano-33-iot&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-nano-33-iot&utm_medium=wiki|сенсорами]] по последовательному интерфейсу.
* **Serial2** пины: ''RX/30/C22'' и ''TX/29/C21'' \\ Используется для общение с беспроводным модем [[#беспроводной_модуль_nina-w102|NINA-W102]].
===== Принципиальная и монтажная схемы =====
{{:products:arduino-nano-33-iot:arduino-nano-33-iot-schematic.1.png?direct&330 |}}
{{ :products:arduino-nano-33-iot:arduino-nano-33-iot-schematic.2.png?direct&330|}}
{{:products:arduino-nano-33-iot:arduino-nano-33-iot-layout-top.png?direct&330 |}}
{{ :products:arduino-nano-33-iot:arduino-nano-33-iot-layout-bottom.png?direct&330|}}
===== Габаритный чертёж =====
{{ :products:arduino-nano-33-iot:arduino-nano-33-iot-mechanical-drawings.png?nolink |}}
===== Характеристики =====
==== Общие ====
* Чипы: SAMD21, NINA-W102 и LSM6DS3
* Порты ввода-вывода: 22
* Напряжение логических уровней: 3,3 В
* Пины с АЦП: 8
* Разрядность АЦП: 8/10/12 бит (по умолчанию 10 бит)
* Пины с ШИМ: 12
* Разрядность ШИМ: 8/10/12 бит (по умолчанию 8 бит)
* Пины с ЦАП: 1
* Разрядность ЦАП: 10 бит
* Аппаратные интерфейсы SPI: 1
* Аппаратные интерфейсы I²C: 1
* Аппаратные интерфейсы UART: 1
* Максимальный ток с пина или на пин: 20 мА
* Максимальный выходной ток пина 3V3: 1,2 A
* Входное напряжение через пин Vin: 5–18 В
* Габариты платы: 45×18 мм
==== Микроконтроллер Microchip ATSAMD21G18 ====
* Ядро: ARM Cortex M0+ (32 бита)
* Тактовая частота: 48 МГц
* Flash-память: 256 КБ
* SRAM-память: 32 КБ
==== Беспроводной модуль NINA-W102 ====
* Микроконтроллер: Tensilica Xtensa LX6
* Flash-память: 2 МБ
* ROM-память: 448 КБ
* SRAM-память: 520 КБ
* Тактовая частота: до 240 МГц
* Частотный диапазон связи: 2,4 ГГц
* Стандарт Wi-Fi: 802.11b/g/n
* Стандарт Bluetooth: BLE v4.2 BR/EDR
* Интерфейс связи с микроконтроллером: SPI/UART
==== IMU-сенсор STM LSM6DSM ====
* Частота обновления 3-осевого акселерометра: 1,6–6664 Гц
* Диапазон измерения ускорения: ±2/±4/±8/±16g
* Частота обновления 3-осевого гироскопа: 12,5–6664 Гц
* Диапазон измерения поворота: ±125/±250/±500/±1000/±2000 град./с\
* Интерфейс связи с микроконтроллером: I²C
* Адрес: 0x6A
===== Ресурсы =====
* [[amp>product/arduino-nano-33-iot?utm_source=man&utm_campaign=arduino-nano-33-iot&utm_medium=wiki|Arduino Nano 33 IoT]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/arduino-nano-33-iot.svg|Векторное изображение Arduino Nano 33 IoT]]
* {{ :products:arduino-nano-33-iot:samd21g18a-datasheet.pdf |Datasheet на микроконтроллер SAMD21G18A}}
* {{ :products:arduino-nano-33-iot:nina-w102-datasheet.pdf |Datasheet на беспроводной модуль NINA-W102}}
* {{ :products:arduino-nano-33-iot:lsm6ds3-datasheet.pdf |Datasheet на IMU-сенсор LSM6DS3}}
* {{ :products:arduino-nano-33-iot:atecc608a-datasheet.pdf |Datasheet на крипто-чип ATECC608A}}
* {{ :products:arduino-nano-33-iot:mpm3610-datasheet.pdf |Datasheet на понижающий регулятор 3V3 MPM3610}}