====== Arduino MKR Vidor 4000: распиновка, схема подключения и программирование ====== Используйте платформу [[amp>product/arduino-mkr-vidor-4000?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Arduino MKR Vidor 4000]] для создания проектов IoT и умного дома. Плата может одновременно опрашивать различные датчики, передавать данные по беспроводным технологиям и выводить изображение с камер видеонаблюдения. {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000.1.jpg?nolink |}} На управляющей плате стучит сразу три сердца: * [[#микроконтроллер_atsamd21g18|Микроконтроллер ATSAMD21G18]] * [[#плис_fpga_cyclone_10lp|ПЛИС/FPGA Cyclone 10CL016]] * [[#беспроводной_модуль_nina-w102|Модуль беспроводной связи NINA-W102]] ===== Подключение и настройка ===== - Подключите плату к компьютеру по USB. Для коммуникации используйте [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|кабель USB (A — Micro USB)]].{{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-setup-hardware.1.png?nolink |}} - [[:articles:arduino-ide-install|Скачайте и установите Arduino IDE.]] - По умолчанию среда программирования настроена только на AVR-платы. Для работы с платформой MKR Vidor 4000 добавьте в менеджере плат [[articles:arduino-boards-manager#платформы_arduino_samd_boards|поддержку платформ SAMD Boards]]. - Выберите плату MKR Vidor 4000 в IDE: Инструменты Плата Arduino SAMD Boards Arduino MKR Vidor 4000{{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-setup-software.1.png?nolink |}} - Выберите COM-порт в IDE: Инструменты Порт COMx, где x — номер текущего порта.{{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-setup-software.2.png?nolink |}} - Установите дополнительные библиотеки через [[https://www.arduino.cc/en/guide/libraries|менеджер библиотек]]: - [[https://github.com/vidor-libraries/VidorPeripherals|VidorPeripherals]] - [[https://github.com/vidor-libraries/VidorGraphics|VidorGraphics]] - [[https://github.com/arduino-libraries/WiFiNINA|WiFiNINA]] (Не старше версии 1.8.5) - [[https://www.arduino.cc/en/Tutorial/WiFiNINAFirmwareUpdater|Обновите версию прошивки на чипе NINA-W102]] - По завершении можно смело переходить к [[#примеры_работы|примерам работы]]. [[https://docs.arduino.cc/hardware/mkr-vidor-4000|Документация на плату MKR Vidor 4000.]] ===== Примеры работы ===== Рассмотрим несколько примеров программирования MKR Vidor 4000 на C++ через Arduino IDE. ==== Маячок ==== Для начала мигнём встроенным светодиодом на 32 пине микроконтроллера ATSAMD21G18. В текущем примере задействуем только один чип платы MKR Vidor 4000 — [[#микроконтроллер_atsamd21g18|микроконтроллер ATSAMD21G18]]. === Код для Arduino === // Даём имя встроенному светодиоду на 32 пине constexpr uint8_t LED_ARDUINO_PIN = 32; void setup() { // Настраиваем пин со светодиодом в режим выхода pinMode(LED_ARDUINO_PIN, OUTPUT); } void loop() { // Зажигаем светодиод digitalWrite(LED_ARDUINO_PIN, HIGH); // Ждём пол секунды delay(500); // Гасим светодиод digitalWrite(LED_ARDUINO_PIN, LOW); // Ждём пол секунды delay(500); } После прошивки скетча светодиод начнёт мигать раз в секунду. {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-example-blink.gif?nolink |}} ==== Маячок RGB ==== Встроенный светодиод имеет три кристалла: * Red на 32 пине микроконтроллера ATSAMD21G18. * Green на 26 пине модуля NINA-W102. * Blue на 25 пине модуля NINA-W102. В продолжении будем по очереди мигать каждым цветом. В текущем примере уже задействуем второй чип платы MKR Vidor 4000 — [[#беспроводной_модуль_nina-w102|NINA-W102]]. === Код для Arduino === // Подключаем библиотеки для доступа к NINA-W102 #include #include // Даём имя встроенному светодиоду на 32 пине МК ATSAMD21G18 constexpr uint8_t LEDR_ATSAMD21G18_PIN = 32; // Даём имена встроенным светодиодам на 25 и 26 пинах модуля NINA-W102 constexpr uint8_t LEDG_NINAW102_PIN = 26; constexpr uint8_t LEDB_NINAW102_PIN = 25; void setup() { // Настраиваем пины со светодиодом в режим выхода pinMode(LEDR_ATSAMD21G18_PIN, OUTPUT); WiFiDrv::pinMode(LEDG_NINAW102_PIN, OUTPUT); WiFiDrv::pinMode(LEDB_NINAW102_PIN, OUTPUT); // Гасим все светодиоды digitalWrite(LEDR_ATSAMD21G18_PIN, HIGH); WiFiDrv::digitalWrite(LEDG_NINAW102_PIN, HIGH); WiFiDrv::digitalWrite(LEDB_NINAW102_PIN, HIGH); } void loop() { // Зажигаем красный светодиод digitalWrite(LEDR_ATSAMD21G18_PIN, LOW); // Ждём пол секунды delay(500); // Гасим красный светодиод digitalWrite(LEDR_ATSAMD21G18_PIN, HIGH); // Ждём пол секунды delay(500); // Зажигаем зелёный светодиод WiFiDrv::digitalWrite(LEDG_NINAW102_PIN, LOW); // Ждём пол секунды delay(500); // Гасим зелёный светодиод WiFiDrv::digitalWrite(LEDG_NINAW102_PIN, HIGH); // Ждём пол секунды delay(500); // Зажигаем синий светодиод WiFiDrv::digitalWrite(LEDB_NINAW102_PIN, LOW); // Ждём пол секунды delay(500); // Гасим синий светодиод WiFiDrv::digitalWrite(LEDB_NINAW102_PIN, HIGH); // Ждём пол секунды delay(500); } После прошивки скетча светодиод начнёт мигать по очереди красным, зелёным и синим цветом. {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-example-blink-rgb.gif?nolink |}} ==== Вывод лого на HDMI-дисплей ==== Пришло время опробовать изюминку данной платформы, третий чип MKR Vidor 4000 — [[#плис_fpga_cyclone_10lp|ПЛИС (FPGA) Intel Cyclone 10CL016]]. На самом деле чип уже прошит официальной прошивкой производителя, а нам даются готовые функции для демонстрации работы. В качестве примера выведем лого на HDMI-дисплей. === Что понадобится === * 1× [[amp>product/arduino-mkr-vidor-4000?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Arduino MKR Vidor 4000]] * 1× [[amp>product/display-raspberry-pi-7in-hdmi-with-case?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|HDMI-дисплей 1024×600 / 7” в корпусе]] * 2× [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Кабель USB (A — Micro USB)]] для питания * 1× [[amp>product/cable-hdmi-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Rабель HDMI — Micro-HDMI]] === Схема устройства === {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-example-draw-logo.1.png?nolink |}} === Код для Arduino === // Библиотеки для работы с графикой и вывода данных на HDMI #include "VidorGraphics.h" #include "Vidor_GFX.h" // Создаём буфер для вывода данных Vidor_GFX vdgfx; void setup() { // Открываем Serial-порт для мониторинга данных в консоли Serial.begin(9600); // Ожидаем открытия Serial-порта // Закомментируйте строку ниже, если не нужна отладка while (!Serial) {} // Инициализируем FPGA if (!FPGA.begin()) { Serial.println("Initialization failed!"); while (1) {} } else { Serial.println("Initialization successfully!"); } // Ждём пару секунд delay(2000); // Закрашиваем всю область буфера белым фоном vdgfx.fillRect(0,0,640,480,vdgfx.White()); // Рисуем лого Arduino vdgfx.fillCircle(225,225,100 ,vdgfx.lightBlue()); vdgfx.fillCircle(415,225,100 ,vdgfx.lightBlue()); vdgfx.fillCircle(225,225,90 ,vdgfx.White()); vdgfx.fillCircle(415,225,90 ,vdgfx.White()); vdgfx.fillRect(175,220,100,10 ,vdgfx.lightBlue()); vdgfx.fillRect(365,220,100,10 ,vdgfx.lightBlue()); vdgfx.fillRect(410,175,10,100 ,vdgfx.lightBlue()); // Пишем текстовую строку vdgfx.text.setCursor(150,375); vdgfx.text.setAlpha(255); vdgfx.text.setSize(3); vdgfx.text.setColor(vdgfx.lightBlue()); vdgfx.println("ARDUINO"); vdgfx.text.setCursor(480,145); vdgfx.text.setSize(1); vdgfx.println("TM"); } void loop() { } После прошивки на HDMI-мониторе отобразится приветственное лого. {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-example-draw-logo.2.png?nolink |}} ==== Захват изображения с камеры на HDMI-дисплей ==== === Что понадобится === * 1× [[amp>product/arduino-mkr-vidor-4000?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Arduino MKR Vidor 4000]] * 1× [[amp>product/display-raspberry-pi-7in-hdmi-with-case?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|HDMI-дисплей 1024×600 / 7” в корпусе]] * 1× [[amp>product/camera-raspberry-pi-model-d?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Камера MIPI «Модель D»]] * 2× [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Кабель USB (A — Micro USB)]] для питания * 1× [[amp>product/cable-hdmi-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Rабель HDMI — Micro-HDMI]] === Схема устройства === {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-example-camera-capture-video.1.png?nolink |}} === Код для Arduino === // Библиотеки для работы с графикой и вывода данных на HDMI #include "VidorGraphics.h" #include "VidorCamera.h" // Создаём объект для работы с камерой VidorCamera vcam; void setup() { // Открываем Serial-порт для мониторинга данных в консоли Serial.begin(9600); // Ожидаем открытия Serial-порта // Закомментируйте строку ниже, если не нужна отладка while (!Serial) {} // Инициализируем FPGA if (!FPGA.begin()) { Serial.println("Initialization failed!"); while (1) {} } else { Serial.println("Initialization successfully!"); } // Инициализируем камеру if (!vcam.begin()) { Serial.println("Camera failed"); while (1) {} } else { Serial.println("Camera successfully!"); } // Ожидаем пару секунд delay(2000); Serial.println("Power On"); } void loop() { // Если в консоли пришла команда STOP, // то останавливаем захват изображения String res = Serial.readStringUntil('\n'); if (res.indexOf("STOP") > 0) { vcam.end(); } } После прошивки изображение с камеры начнёт транслироваться на HDMI-монитор.{{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-example-camera-capture-video.2.png?nolink |}} ==== Бегущая строка WS2812 ==== === Что понадобится === * 1× [[amp>product/arduino-mkr-vidor-4000?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Arduino MKR Vidor 4000]] * 1× [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Кабель USB (A — Micro USB)]] * 1× [[amp>product/ws2812-led-matrix-8x8?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Светодиодная WS2812 матрица 8×8]] * 1× [[amp>product/wire-mm?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Соединительные провода «папа-папа»]] === Схема устройства === {{ :products:arduino-mkr-vidor-4000:vidor-example-ws2812-print-text.1.png?nolink |}} === Код для Arduino === // Библиотека для работы с графикой #include "VidorGraphics.h" // Библиотека для светодиодов WS2812 #include "Vidor_NeoPixel.h" // Создаём объект np класса Vidor_NeoPixel для работы с матрицей WS2812 Vidor_NeoPixel np(8*8, A6); // Создаём объект vdgfx класса Vidor_GFX для работы с матрицей WS2812 Vidor_GFX vdgfx(np); // Создаём объект matrix класса Vidor_GFXbuffer для работы с матрицей WS2812 Vidor_GFXbuffer matrix(np, vdgfx, 64, 8, true); void setup() { // Открываем Serial-порт для мониторинга данных в консоли Serial.begin(9600); // Ожидаем открытия Serial-порта // Закомментируйте строку ниже, если не нужна отладка while (!Serial) {} // Инициализируем FPGA if (!FPGA.begin()) { Serial.println("Initialization failed!"); while (1) {} } else { Serial.println("Initialization successfully!"); } // Инициализируем матрицу np.begin(); matrix.begin(); // Очищаем матрицу for (int i = 0; i < 64; i++) { // Clear matrix np.setPixelColor(i, 0, 0, 0, 0); } np.show(); // Печатаем в буфер слово «Амперка» vdgfx.text.setColor(vdgfx.Red()); vdgfx.text.setCursor(0, 6); vdgfx.setFont(0); vdgfx.text.setSize(1); vdgfx.print("A"); np.show(); vdgfx.text.setColor(vdgfx.Blue()); vdgfx.print("m"); np.show(); matrix.scroll(100); vdgfx.text.setColor(vdgfx.Green()); vdgfx.print("p"); np.show(); matrix.scroll(100); vdgfx.text.setColor(vdgfx.Yellow()); vdgfx.print("e"); np.show(); matrix.scroll(100); vdgfx.text.setColor(vdgfx.Purple()); vdgfx.print("r"); np.show(); matrix.scroll(100); vdgfx.text.setColor(vdgfx.Brown()); vdgfx.print("k"); np.show(); matrix.scroll(100); vdgfx.text.setColor(vdgfx.White()); vdgfx.print("a"); // Выводим изображение из буфера на матрицу np.show(); // Скроллим изображение в виде бегущей строки // Если строка «бежит» в неверном направлении, // необходимо сделать фикс в библиотеке Vidor_GFX. Подробности: // http://wiki.amperka.ru/products:arduino-mkr-vidor-4000 matrix.scroll(100); } void loop() { } После прошивки на матрице WS2812 побежит радужная строка с надписью «Амперка». {{ :products:arduino-mkr-vidor-4000:vidor-example-ws2812-print-text.2.gif?nolink |}} Если строка «бежит» в неверном направлении, необходимо сделать фикс в библиотеке [[https://github.com/vidor-libraries/VidorGraphics/blob/master/src/Vidor_GFX.cpp|Vidor_GFX.]] === Смена направления бегущей строки === - Откройте текстовым редактором файл библиотеки: C: Users Name User Documents Arduino libraries VidorGraphics src Vidor_GFX.cpp - Найдите функцию:void Vidor_GFXbuffer::scroll(int delay) { privateScroll(NP_SEQ_FLG_START | NP_SEQ_FLG_BUF_LOOP | NP_SEQ_FLG_INV_LOOP, delay); } - Замените строку:privateScroll(NP_SEQ_FLG_START | NP_SEQ_FLG_BUF_LOOP | NP_SEQ_FLG_INV_LOOP, delay);На строку:privateScroll(NP_SEQ_FLG_START | NP_SEQ_FLG_BUF_LOOP, delay); - Сохраните изменения. ===== Элементы платы ===== {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-annotation.png?nolink |}} ==== Микроконтроллер ATSAMD21G18 ==== На плате MKR Vidor 4000 расположен микроконтроллер {{ :products:arduino-mkr-vidor-4000:atsamd21g18-datasheet.pdf |ATSAMD21G18}} c вычислительном ядром ARM Cortex® M0 с тактовой частотой 48 МГц. Контроллер обладает двумя видами памяти: * 256 КБ Flash-памяти, которая предназначена для хранение программ и сопутствующих статичных ресурсов. Flash-память энергонезависимая: при выключении питания, данные не сотрутся. * 32 КБ RAM-памяти, которая предназначена для хранения временных данных, например переменных программы. RAM-память энергозависимая: при выключении питания, все данные сотрутся. ==== ПЛИС (FPGA) Cyclone 10LP ==== Изюминкой на плате выступает ПЛИС/FPGA (программируемая логическая интегральная схема) — {{ :products:arduino-mkr-vidor-4000:cyclone10lp_datasheet.pdf |Intel Cyclone 10CL016}} с тактовой частотой до 200 МГц. Чип содержит: * 15408 логических элементов * 56 аппаратных умножителей * 504 КБ RAM-памяти. Для штатной работы ПЛИС на плате распаяны дополнительный чипы памяти: * {{ :products:arduino-mkr-vidor-4000:w25q16dv-datasheet.pdf |W25Q16DV}}: Flash-память на 2 МБ. * {{ :products:arduino-mkr-vidor-4000:as4c4m16sa-datasheet.pdf |AS4CM16SA}}: RAM-память на 8 МБ. ПЛИС используются там, где софтверных возможностей микроконтроллера недостаточно. Например, для реализации аппаратных интерфейсов UART, QSPI, I²C, I²S, захвата с MIPI-камеры и транслирования видео через HDMI. По умолчанию на плате MKR Vidor 4000 чип Cyclone 10LP прошит штатной прошивкой, функции которой доступны через микроконтроллер [[#микроконтроллер_atsamd21g18|микроконтроллер ATSAMD21G18]] и библиотеки [[https://github.com/vidor-libraries|Vidor Libraries]]. MKR Vidor 4000 задумывался как удобная отправная точка для вашего первого путешествия в мир программируемых логических интегральных схем. Однако если вы уже общались с ПЛИС и не боитесь трудностей, можете воспользоваться программой [[https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/overview.html|Intel Quartus]] для создания своих произвольные аппаратных блоков. ==== Беспроводной модуль NINA-W102 ==== За беспроводную передачу данных отвечает чип {{ :products:arduino-mkr-vidor-4000:nina-w102-datasheet.pdf |U-blox NINA-W102}} со встроенным чипом ESP32 для обмена данными по воздуху в диапазоне 2,4 ГГц по Wi-Fi и Bluetooth. Для работы с модулем используйте библиотеку [[https://www.arduino.cc/en/Reference/WiFiNINA|WiFiNINA]]. Библиотека WiFiNINA работает с платой MKR Vidor 4000 до версии 1.8.5 включительно. Более поздние релизы пока не поддерживаются платформой. Будьте внимательны при установке библиотеки. ==== Крипточип ATECC508A ==== Криптографический сопроцессор Microchip {{ :products:arduino-mkr-vidor-4000:atecc508a-datasheet.pdf |ATECC508A}} интегрирует протокол безопасности ECDH (Elliptic Curve Diffie Hellman) в сверхзащищённый метод, обеспечивающий согласование ключей для шифрования / дешифрования, наряду с ECDSA (алгоритм цифровой подписи эллиптической кривой) для проверки подлинности с подписью для Интернета вещей (IoT), включая домашнюю автоматизацию, промышленные сети, медицинские услуги, аутентификацию аксессуаров и расходных материалов. ==== Порт micro-USB ==== Разъём USB Micro предназначен для прошивки и питания платформы. Для подключения к ПК понадобится [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|кабель USB (A — Micro USB)]]. ==== Кнопка сброса ==== Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера. ==== Светодиодная индикация ==== ^ Имя светодиода ^ Назначение ^ | ON |Индикатор питания платформы. При питании платформы от аккумулятора через не горит для экономии ёмкости батареи.| | RGB | Пользовательский RGB-светодиод с общим анодом.\\ Катод красного цвета выведен на 32 пин [[#микроконтроллер_atsamd21g18|микроконтроллера ATSAMD21G18]].\\ Катод зелёного цвета выведен на пин 26 [[#беспроводной_модуль_nina-w102|беспроводного модуля NINA-W102]].\\ Катод синего цвета выведен на пин 25 [[#беспроводной_модуль_nina-w102|беспроводного модуля NINA-W102]].\\ При задании значения низкого уровня светодиоды включаются, при высоком — выключаются. Для управления зелёным и синим цветом в Arduino IDE используйте библиотеку [[https://www.arduino.cc/en/Reference/WiFiNINA|WiFiNINA]].| ==== Порт micro-HDMI ==== Порт micro-HDMI предназначен для подключения [[amp>collection/hdmi-displays?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|HDMI-дисплеев]] к плате Vidor 4000. Для коммуникации понадобится [[amp>product/cable-hdmi-micro?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|кабель HDMI — Micro-HDMI]]. ==== Разъём MIPI-камеры ==== Разъём MIPI предназначен для подключения MIPI-камер на сенсоре OmniVision OV5647 к плате Vidor 4000, например [[amp>product/camera-raspberry-pi-model-d?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Raspberry Pi Camera (Model D)]]. ==== Понижающий преобразователь EZ6301QI ==== Комбинированный понижающий преобразователь напряжения {{ :products:arduino-mkr-vidor-4000:ez6301qi-datasheet.pdf |EZ6301QI}} содержит в себе три отдельных модуля: - Импульсный DC-DC-преобразователь с настроенным выходом 3,3 В. Максимальный выходной ток 1,5 А. - Линейный LDO-преобразователь с настроенным выходом 2,5 В. Максимальный выходной ток 300 мА. - Линейный LDO-преобразователь с настроенным выходом 1,2 В. Максимальный выходной ток 300 мА. В итоге одного преобразователя EZ6301QI достаточно для питания всей логики MKR Vidor 4000. ==== Разъём аккумулятора ==== На плате расположен {{ :products:arduino-mkr-vidor-4000:jst-ph-connector-datasheet.pdf |JST PH-разъём (2 pin)}} для подключения внешних литий-полимерных (Li-Pol) и литий-ионных (Li-Ion) аккумуляторов. При питании через разъём для аккумулятора светодиодный индикатор Power не горит для экономии расхода энергии.{{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-jst-ph-connector.png?nolink |}} ==== Контроллер заряда BQ24195L ==== За состояние батареи отвечает умный контроллер {{ :products:arduino-mkr-vidor-4000:bq24195l-datasheet.pdf |BQ24195L}}, который: * Отслеживает напряжение и ток батареи в режиме источника энергии. * Контролирует напряжение и ток батареи в режиме зарядки. ==== Разъём I²C интерфейса ==== На плате предусмотрен {{ :products:arduino-mkr-vidor-4000:jst-sh-connector-datasheet.pdf |JST SH-разъём (5 pin)}} для подключения дополнительных модулей по интерфейсу I²C с распиновкой: ^ Имя контакта ^ Назначение ^ | 5V | Питание модуля (+) | | GND | Питание модуля (−) | | SDA | Пин данных шины I²C | | SCL | Пин тактирования шины I²C | | 7 | Пин ввода-вывода | {{ :products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-jst-sh-connector.png?nolink |}} ===== Распиновка ===== [[this>_media/products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-pinout.pdf|{{:products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-pinout.png}}]] ==== Пины питания ==== * **5V:** Выходной пин. На вывод поступает напряжение 5 В при подключении платы [[#порт_micro-usb|через USB-порт]]. При питании платформы через пин VIN или разъём для внешнего аккумулятора на пине может быть напряжение в диапазоне от нуля до входного. * **VIN:** Входной пин для подключения внешнего источника напряжения в диапазоне от 5 до 6 вольт. * **VCC:** Выходной пин от [[#понижающий_преобразователь_ez6301qi|преобразователя напряжения]] с выходом 3,3 вольта и максимальных током 1,5 А. В любом варианте питания платформы на пине будет присутствовать 3,3 вольта. * **GND:** Вывод земли. * **AREF:** Входной пин для подключения внешнего опорного напряжения АЦП, относительно которого происходят аналоговые измерения при использовании функции [[https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/|analogReference()]] с параметром EXTERNAL. ==== Пина ввода/вывода ==== В отличие от большинства плат Arduino, родным напряжением MKR Vidor 4000 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер! * **Пины общего назначения:** 22 пина: ''0''–''14'' и ''A0''–''A6''\\ Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 7 мА. * **ШИМ:** 12 пинов: ''0''–''8'', ''10'', ''A3'' и ''A4''\\ Позволяет выводить аналоговые значения в виде ШИМ-сигнала из цифровых значений. По умолчанию разрядность ШИМ установлена в 10 бит, которую можно изменить на 8, 10 и 12 бит с помощью функции [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/|analogWriteResolution()]]. * **АЦП:** 7 пинов; ''A0''–''A6''\\ Позволяет представить аналоговое напряжение в виде цифровом виде. По умолчанию разрядность АЦП установлена в 10 бит, которую можно изменить на 8, 10 и 12 бит с помощью функции [[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogreadresolution/|analogReadResolution()]]. Диапазон входного напряжения от 0 до 3,3 В, при подаче большего напряжения микроконтроллер может выйти из строя. * **ЦАП:** пин ''DAC/A0''\\ Позволяет выводить аналоговое напряжение из цифровых значений. Вывод может использоваться для [[https://www.arduino.cc/en/Tutorial/SimpleAudioPlayer|создания аудио-выхода]] — для этого используйте библиотеку [[https://www.arduino.cc/en/Reference/AudioZero|AudioZero]]. * **I²C:** пины ''SDA/11'' и ''SCL/12''\\ Для общения платформы c [[amp>collection/boards?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|сенсорами]] по интерфейсу I²C. * **SPI**: пины ''MOSI/8'', ''MISO/10'' и ''SCK/9''\\ Для общения платформы c [[amp>collection/boards?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|сенсорами]] по интерфейсу SPI. * **Serial/UART**: пины ''TX/11'' и ''RX/12''\\ Для общения платформы c [[amp>collection/boards?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|сенсорами]] по интерфейсу UART. * **I²S**: пины ''2/SCK/BCLK'', ''3/WS/LRCLK/FS'' и ''A6/SD/SDATA/SDIN/SDOUT''\\ Для общения платформы c [[amp>collection/boards?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|сенсорами]] по интерфейсу I²S. ===== Принципиальная схема ===== [[this>_media/products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-schematic.pdf|{{:products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-schematic.png}}]] ===== Габаритный чертёж ===== [[this>_media/products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-dimensions.pdf|{{:products:arduino-mkr-vidor-4000:arduino-mkr-vidor-4000-dimensions.png}}]] ===== Характеристики ===== * Модель: Arduino MKR Vidor 40000 (SKU ABX00022) * Чипы и периферийные устройства: * Микроконтроллер ATSAMD21G18 * ПЛИС/FPGA Cyclone 10CL016 * Беспроводной модуль NINA-W102 * Крипто чип ATECC508A * RGB-светодиод * Входное напряжение питания: * Через USB: 5 В * Через пин Vin: 5 В * Через JST-разъём: 3,7–4,2 В * Напряжение логических уровней: 3,3 В * Контакты ввода-вывода: 22 * Контакты с АЦП: 7 * Разрядность АЦП: 8/10/12 бит (по умолчанию 10 бит) * Контакты с ЦАП: 1 * Разрядность ЦАП: 10 бит * Контакты с ШИМ: 12 * Разрядность ШИМ: 8/10/12 бит (по умолчанию 8 бит) * Аппаратные интерфейсы: * 1× UART * 1× I²C * 1× SPI * 1× I²S * Дополнительные интерфейсы: MIPI, micro-HDMI, MiniPCI-E * Габариты: 83×25 мм ==== ПЛИС/FPGA Cyclone 10CL016 ==== * Модуль: Intel Cyclone 10CL016 * Логических элементов: 15408 * Аппаратных умножителей: 56 * SDRAM-память: 504 КБ * Тактовая частота: 48–200 МГц * Внешняя Flash-память: W25Q16DV на 2 МБ * Внешняя SDRAM-память: AS4C4M16SA на 8 МБ ==== Микроконтроллер ATSAMD21G18 ==== * Модель: Microchip ATSAMD21G18 * Ядро: 32-битный ARM Cortex M0+ * Тактовая частота: 48 МГц * Flash-память: 256 КБ * RAM-память: 32 КБ ==== Беспроводной модуль NINA-W102 ==== * Модель: U-blox NINA-W102 * Процессор: 2× Tensilica Xtensa LX6 (ESP32) * Тактовая частота: до 240 МГц * Flash-память: 2 МБ * ROM-память: 448 КБ * SRAM-память: 520 КБ * Частотный диапазон связи: 2,4 ГГц * Стандарт Wi-Fi: 802.11b/g/n * Стандарт Bluetooth: BLE v4.2 BR/EDR * Встроенная антенна: планарная F-образная (PIFA) ===== Ресурсы ===== * [[amp>product/arduino-mkr-vidor-4000?utm_source=man&utm_campaign=arduino-mkr-vidor-4000&utm_medium=wiki|Arduino MKR Vidor 4000]] в магазине. * [[https://github.com/amperka/hardware-drawings/blob/master/arduino-mkr-vidor-4000.svg|Векторное изображение MKR Vidor 4000]] ==== Полезные статьи ==== * [[articles:arduino-ide-install|Подключение и настройка Arduino IDE]] * [[articles:arduino-boards-manager|Как добавить MKR Vidor 4000 в Arduino IDE]] ==== Библиотеки ==== * [[https://www.arduino.cc/en/Reference/WiFiNINA|Библиотека для беспроводного модуля NINA-W102]] * [[https://github.com/vidor-libraries|Библиотеки Vidor для доступа к методом стандартной прошивки FPGA]] ==== Документация ==== * [[https://docs.arduino.cc/hardware/mkr-vidor-4000|Документация на плату Arduino MKR Vidor 4000]] * {{ :products:arduino-mkr-vidor-4000:atsamd21g18-datasheet.pdf |Datasheet на микроконтроллер ATSAMD21G18}} * {{ :products:arduino-mkr-vidor-4000:cyclone10lp-datasheet.pdf |Datasheet на интегральную схему Intel Cyclone 10L016}} * {{ :products:arduino-mkr-vidor-4000:nina-w102-datasheet.pdf |Datasheet на беспроводной модуль NINA-W102}} * {{ :products:arduino-mkr-vidor-4000:ez6301qi-datasheet.pdf |Datasheet на понижающий регулятор напряжения EZ6301QI}} * {{ :products:arduino-mkr-vidor-4000:bq24195l-datasheet.pdf |Datasheet на контроллер BQ24195L заряда Li-Pol и Li-Ion аккумуляторов}} * {{ :products:arduino-mkr-vidor-4000:atecc508a-datasheet.pdf |Datasheet на крипточип ATECC508A}}