Arduino MKR Vidor 4000 — это первая плата семейства Arduino на базе программируемой логической интегральной схемы (она же ПЛИС, она же FPGA).
Обычные процессоры весьма универсальны, но у них фиксированная архитектура, и для выполнения разных задач мы лишь меняем исполняемый программный код. В определённый момент всё упирается в возможности процессора, и нам уже не удастся заставить программу работать быстрее. В случае с ПЛИС (FPGA) у нас появляется возможность перестраивать архитектуру микросхемы на аппаратном уровне, словно конструктор, чтобы как можно лучше заточить её под определённый алгоритм — примерно как это делается в специализированных GPU и DSP-процессорах. Таким образом, в некоторых задачах ПЛИС в разы обгоняют типовые решения: например, при выполнении цифровой обработки сигнала или эмуляции работы другого устройства.
Arduino MKR Vidor 4000 открывает вашим проектам новые возможности: передавайте изображение с MIPI-камер на сенсоре OV5647 на HDMI-дисплей, накладывайте на него свою графику, прикручивайте распознавание QR-кодов или превратите сборку в инкрементальный энкодер — цифровой датчик угла поворота для оценки скорости вращения. Эти задачи нетривиальны для базовой Arduino MKR, но легко решаются на Vidor 4000 с помощью FPGA и готовых библиотек Arduino IDE.
При этом плата сохранила микроконтроллер ATSAMD21G18 и беспроводной модуль NINA-W102, что делает её подходящим выбором для создания проектов IoT и умного дома, где нужно опрашивать различные датчики и выводить изображение с камер видеонаблюдения.
На борту Arduino MKR Vidor 4000 содержатся следующие блоки:
Внимание! Родное напряжение пинов Arduino MKR Vidor 4000 с микроконтроллером SAMD21 — 3,3 В, а значит, выходы для логической единицы рассчитаны именно на 3,3 вольта. Более высокое напряжение повредит микроконтроллер. Будьте внимательны при подключении периферии.
С двух сторон платы распаяны колодки по 2×14 выводов, из них 22 пина ввода-вывода общего назначения:
Используйте внутренний ЦАП для аналогового аудиовыхода или отдайте обработку звука внешнему преобразователю через интерфейс I²S.
Управляйте вашим устройством через интернет или запускайте небольшой веб-сервер c помощью библиотеки WiFiNINA. В отличие от предшественников, Arduino MKR Vidor 4000 поддерживает шифрование SSL — теперь вам доступны HTTPS-соединения.
На плате доступны аппаратные интерфейсы SPI, TWI/I²C, UART/Serial и I²S.
Для программирования контроллера используется среда Arduino IDE, визуальная среда программирования XOD IDE или произвольный инструментарий C/C++. Для прошивки понадобится кабель Micro-USB.
Что касается ПЛИС, то штатными средствами Arduino IDE можно работать с готовыми библиотеками. Например, библиотека VidorPeripherals предназначена для реализации ввода-вывода данных UART, SPI, I²C, квадратурного энкодера, ШИМ или управления светодиодами NeoPixel. Библиотека VidorGraphics отвечает за графические функции, которые накладываются на HDMI-выход устройства. При использовании таких библиотек не понадобится специфических знаний — программирование ПЛИС происходит автоматически, и её функции вызываются напрямую из скетча.
Кроме того, для самых продвинутых пользователей Arduino поддерживает среду разработки Intel Quartus. Она позволяет самостоятельно заняться программированием FPGA и создать произвольный аппаратный узел. Например, аппаратных блоков Intel Cyclone достаточно, чтобы воссоздать на ПЛИС целое ядро ARM Cortex-M1. Таким образом, вы сможете превратить Arduino MKR Vidor 4000 в кастомизированную двухпроцессорную систему.
Для питания платформы используйте порт Micro-USB, контакт Vin или разъём для аккумуляторной батареи. Источник определится автоматически.
Все цепи питания проходят через линейный регулятор напряжения и приводятся к 3,3 В.
Arduino MKR Vidor 4000 снабжена предохранителем, защищающим USB-порты компьютера от перенапряжения и коротких замыканий. Хотя большинство компьютеров обладают собственными средствами защиты, предохранитель даёт дополнительную уверенность. Он разрывает соединение, если на USB-порт подаётся более 500 мА, и восстанавливает его после нормализации ситуации.