====== 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}}