====== Arduino MKR Wi-Fi 1010: распиновка, схема подключения и программирование ====== [[amp>product/arduino-mkr-wifi-1010?utm_source=man&utm_campaign=arduino-mkr-wifi-1010&utm_medium=wiki|Arduino MKR Wi-Fi 1010]] — платформа для разработки на базе микроконтроллера {{ :products:arduino-mkr-wifi-1010:atsamd21g18_datasheet.pdf |ATSAMD21G18}} с вычислительным ядром ARM Cortex® M0! {{ :products:arduino-mkr-wifi-1010:arduino-mkr-wifi-1010.1.jpg?nolink |}} ===== Подключение и настройка ===== ==== Шаг 1 ==== [[articles:arduino-ide-install|Скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE. ==== Шаг 2 ==== По умолчанию среда Arduino IDE настроена только на AVR-платы. Для работы с платформой Arduino MKR Wi-Fi 1010 — [[:arduino-ide:boards-manager#добавление_плат_с_ядром_cortex-m0|добавьте в менеджере плат поддержку платформ на ядре ARM Cortex-M0+]]. [[установка-и-настройка-arduino-ide:arduino-m0-restore|У меня не появляется новых устройств при подключении Arduino MKR Wi-Fi 1010]] ===== Примеры работы ===== * [[:projects:scheduler-multiple-blinks|Многозадачность на Arduino]] * [[:projects:play-music-dac|Воспроизведение музыки через ЦАП]] * [[:projects:play-music-i2s|Аудио плеер на через интерфейс I²S]] ===== Элементы платы ===== {{ :products:arduino-mkr-wifi-1010:arduino-mkr-wifi-1010_annotation.png?nolink |}} ==== Микроконтроллер ATSAMD21G18 ==== Мозгом платформы Arduino MKR Wi-Fi 1010 является 32-разрядный микроконтроллер фирмы Microchip (Atmel) — {{ :products:arduino-mkr-wifi-1010:atsamd21g18_datasheet.pdf |ATSAMD21G18}} с вычислительном ядром ARM Cortex® M0. Благодаря использованию 32-разрядного ядра ARM, Arduino MKR Wi-Fi во многом превосходит типичные платы на базе 8-разрядных микроконтроллеров. Наиболее существенные отличия заключаются в следующем: * 32-битное ядро позволяет обрабатывать четырёх-байтовые данные всего за один такт. * Тактовая частота – 48 МГц. * Объем памяти программ Flash – 256 КБ. * Объем оперативной памяти SRAM – 32 КБ. * Наличие DMA-контроллера позволяет разгрузить центральный процессор, выполняя ресурсоёмкие операции с памятью. ==== Беспроводной модуль Ublox NINA W102 ==== За беспроводную связь отвечает модуль U-blox NINA-W102 со встроенным чипом ESP32 для обмена данными по воздуху в диапазоне 2,4 ГГц по Wi-Fi и Bluetooth. Регулировка выходной мощности обеспечивает оптимальное соотношение между дальностью связи, скоростью передачи данных и энергопотреблением. ==== Разъём micro-USB ==== Разъём micro-USB предназначен для прошивки платформы Arduino M0 с помощью компьютера. ==== Светодиодная индикация ==== ^ Имя светодиода ^ Назначение ^ | ON |Индикатор питания. При питании платформы от аккумулятора через {{:продукты:arduino-mkr-zero:jst-ph-connector.pdf|JST PH-разъём}} светодиод ''ON'' не горит для экономии питания. | | CHRG |Индикатор зарядки внешнего аккумулятора| | L | Пользовательский светодиод на ''32'' пине микроконтроллера, в отличии от ''13'' пина на других платформах Arduino. Используйте определение ''LED_BUILTINС'' для работы со светодиодом. При задании значения ''HIGH'' светодиод включается, при ''LOW'' – выключается.| ==== Разъём подключения аккумулятора ==== На плате расположен {{ :products:arduino-mkr-wifi-1010:jst-ph-connector.pdf |JST PH-разъём (2 pin)}} для подключения внешних Li-Pol и Li-Ion аккумуляторов. {{ :products:arduino-mkr-wifi-1010:jst-ph-connector.png?nolink |}} При одновременном питании платформы от USB и аккумулятора: * батарея заряжается через контролер заряда {{ :products:arduino-mkr-wifi-1010:bq24195l_datasheet.pdf |BQ24195L}} до 4,2 вольта. * светодиод ''ON'' горит об индикации питания * светодиод ''CHRG'' горит об индикации заряда батареи При питании платформы только от аккумулятора: * батарея не заряжается * светодиод ''ON'' горит об индикации питания ==== Разъём I²C интерфейса ==== На платформе предусмотрен {{ :products:arduino-mkr-wifi-1010:jst-sh-connector.pdf |JST SH-разъём (5 pin)}} для подключения дополнительных модулей по интерфейсу «I²C». Коннектор включает в себя: * пины питания — ''5V'' и ''GND'' * пины шины I²C — ''SDA'' и ''SCL'' * дополнительный цифровой пин ''7'' {{ :products:arduino-mkr-wifi-1010:jst-sh-connector.png?nolink |}} ==== Регулятор напряжения ==== Линейный понижающий регулятор напряжение {{ :products:arduino-mkr-wifi-1010:ap2112k-3.3_datasheet.pdf |AP7215-33}} с выходом 3,3 вольта обеспечивает питание микроконтроллера. Максимальный выходной ток составляет 600 мА. ==== Кнопка RESET ==== Служит для сброса микроконтроллера. Это аналог кнопки ''RESET'' обычного компьютера. ===== Распиновка ===== ==== Пины питания ==== * **VIN:** Пин для подключения внешнего источника напряжения в диапазоне от 5 до 6 вольт. * **5V:** На вывод поступает напряжение 5 В при подключении платы через USB. При питании платформы через пин ''VIN'' или разъём для внешнего аккумулятора — на пине может быть напряжение в диапазоне от нуля до входного. * **VCC:** Пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 600 мА. Регулятор обеспечивает питание микроконтроллера {{ :products:arduino-mkr-wifi-1010:atsamd21g18_datasheet.pdf |ATSAMD21G18}}. В любом варианте питания платформы на пине будет присутствовать 3,3 вольта. * **GND:** Выводы земли. * **AREF:** Пин для подключения внешнего опорного напряжения АЦП относительно которого происходят аналоговые измерения при использовании функции [[https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/|analogReference()]] с параметром «EXTERNAL». ==== Порты ввода/вывода ==== В отличии от большинство плат Arduino, родным напряжением Arduino MKR Wi-Fi 1010 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Большее напряжение может повредить микроконтроллер! Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений. * **Цифровые входы/выходы:** 22 пина; ''0''–''14'' и ''A0''–''A6''\\ Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 7 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно. * **ШИМ:** 12 пинов; ''0''–''8'', ''10'', ''A3'' и ''A4''\\ Позволяет выводить аналоговые значения в виде ШИМ-сигнала. По умолчанию разрядность «ШИМ» установлена в 8 бит. Изменить разрядность «ШИМ» можно с помощью функции [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/|analogWriteResolution()]]. * **АЦП:** 7 пинов; ''A0''–''A6''\\ Позволяет представить аналоговое напряжение в виде цифровом виде. По умолчанию разрядность «АЦП» установлена в 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:** пины ''(11)SDA'' и ''(12)SCL''\\ Для общения с периферией по интерфейсу «I²C». Для работы используйте библиотеку [[https://www.arduino.cc/en/Reference/Wire|Wire]]. * **SPI:** пины ''8(MOSI)'', ''10(MISO)'' и ''9(SCK)''\\ Для общения с периферией по интерфейсу «SPI». Для работы — используйте библиотеку [[https://www.arduino.cc/en/Reference/Spi|SPI]]. * **UART/Serial:** * **Serial:** пины ''D+'' и ''D−'' * **Serial1:** пины ''12(RX)'' и ''11(TX)'' \\ Используется для коммуникации платы Arduino с компьютером или другими устройствами по последовательному интерфейсу. Выводы шины ''Serial'' соединены с соответствующими контактами USB-порта для прошивки и мониторинга микроконтроллера. Для коммуникации платы Arduino с другими платами и модулями воспользуйтесь шиной ''Serial1''. Для работы с последовательным интерфейсом — используйте методы библиотеки [[https://www.arduino.cc/en/Reference/Serial|Serial]]. * **I²S:** пины ''2(SCK/BCLK)'', ''3(WS/LRCLK/FS)'' и ''A6(SD/SDATA/SDIN/SDOUT)''\\ Используется для передачи и приёма цифрового звука с другими аудио устройствами. Для работы используйте библиотеки [[https://www.arduino.cc/en/Reference/I2S|I²S]] и [[https://www.arduino.cc/en/Reference/ArduinoSound|Arduino Sound]] ===== Принципиальная схема ===== {{:products:arduino-mkr-wifi-1010:arduino-mkr-wifi-1010_schematic.1.png?direct&320 |}} {{:products:arduino-mkr-wifi-1010:arduino-mkr-wifi-1010_schematic.2.png?direct&320 |}} {{ :products:arduino-mkr-wifi-1010:arduino-mkr-wifi-1010_layout.png?direct&400 |}} ===== Характеристики ===== * Беспроводной модуль: NINA-W10 на чипе ESP32 с Wi-Fi и Bluetooth * Микроконтроллер: ATSAMD21G18 * Ядро: 32-битный ARM Cortex M0+ * Тактовая частота: 48 МГц * Flash-память: 256 КБ (8 КБ занимает загрузчик) * SRAM-память: 32 КБ * Пинов ввода-вывода всего: 22 * Пинов с АЦП: 7 * Разрядность АЦП: 8/10/12 бит (по умолчанию 10 бит) * Пинов, подключённых к ЦАП: 1 * Разрядность ЦАП: 10 бит * Пинов с ШИМ: 12 * Разрядность ШИМ: 8/10/12 бит (по умолчанию 8 бит) * Пинов с прерываниями: 12 * Аппаратных интерфейсов SPI: 1 * Аппаратных интерфейсов I2C / TWI: 1 * Аппаратных интерфейсов UART / Serial: 1 * Номинальное рабочее напряжение: 3,3 В * Максимальный выходной ток пина 3V3: 600 мA * Максимальный ток с пина или на пин: 7 мА * Входное напряжение через пин Vin: 5–6 В * Входное напряжение через разъём для аккумулятора: 3,7 В * Габариты: 62×25 мм ===== Ресурсы ===== * [[amp>product/arduino-mkr-wifi-1010?utm_source=man&utm_campaign=arduino-mkr-wifi-1010&utm_medium=wiki|Arduino MKR Wi-Fi 1010]] в магазине. * [[https://github.com/amperka/hardware-drawings/blob/master/arduino-mkr-wifi-1010.svg|Векторное изображение Arduino MKR Wi-Fi 1010]] * {{:products:arduino-mkr-wifi-1010:atsamd21g18_datasheet.pdf|Datasheet на микроконтроллер ATSAMD21G18}} * {{ :products:arduino-mkr-wifi-1010:nina-w102_datasheet.pdf |Datasheet на беспроводной модуль NINA-W102}} * {{ :products:arduino-mkr-wifi-1010:ap2112k-3.3_datasheet.pdf |Datasheet на понижающий регулятор напряжения AP2112K с выходом 3,3 вольта}} * {{ :products:arduino-mkr-wifi-1010:bq24195l_datasheet.pdf |Datasheet на контроллер BQ24195L заряда Li-Pol и Li-Ion аккумуляторов}} * [[https://www.arduino.cc/en/Reference/I2S|Библиотека I²S]] * [[https://www.arduino.cc/en/Reference/ArduinoSound|Библиотека Arduino Sound]]