Плата на NAPI-C своими руками. Часть 1. Прототип.
Во второй части мы описываем как работать со всеми интерфейсами из Linux.
Почему мы делаем плату на NAPI-C
Когда мы задумали одноплатный компьютер Napi с штырьками c шагом 2.54мм, основная идея была в том, что на нем легко будет делать прототипы и проверять теории. Имея уже на борту сеть и USB, можно с ножек (GPIO) "забирать" интерфейсы и строить свои устройства.

Доказывать теорию будем живым примером демонстрационной платы, которая будет сделана на монтажной плате, несложной навесной пайкой.
Притом, имея опыт прототипирования для микроконтроллеров, некоторые интерфейсы сделаем взаимозаменяемыми, в формате популярных плат расширения для МK wemos d1 mini.
Интерфейсы для тестирования
Какие интерфейсы позволяет подключить NAPI?

- UART: консоль вывода, RS485/RS232, LoRa/ZigBee модемы
- I2C: цифровые датчики, ЦАП-ы, часы реального времени
- SPI: цифровые датчики, накопители, дисплеи, микроконтроллеры
Через цифровые GPIO можно управлять реле, светодиодами, кнопками и другими "кастомными" устройствами.
Выберем устройства для подключения
-
На UART0 (GPIO2_A0, GPIO2_A1) у нас стандартная консоль Linux. Но мы можем сразу на плате установить преобразователь на USB-C для удобства работы.
-
На UART3 (GPIO3_B5, GPIO3_B4) мы "подвесим" готовый модуль преобразования в RS485 порт для работы с датчиками по протоколу Modbus
-
На I2C3 (GPIO0_C0 (SCL), GPI0_B7 (SDA)) мы присоединим цифровой датчик bmp280, который покажет нам температуру, давление, влажность. Но сделаем мы присоединение не напрямую а через сменяемую платку в формате расширений Wemos D1 mini. Это позволит нам менять такие модули и присоединять в будущем другие устройства i2c.
-
На SPI2 (GPIO1_D0 (CLK), GPIO1_C6 (MISO), GPIO1_C7 (MOSI), GPIO1_D1 (CS)) мы "подвесим" готовый модуль термопары MAX6675K, которая опрашивается по интерфейсу SPI.
-
Для демонстрации работы модуля Реле, возьмем готовый модуль реле для Wemos D1, на который надо подать TTL 3.3 для механического замыкания контактов. Для этого используем GPIO2_B5
-
Дальше для собственных фантазий можно вывести кроватки для произвольной платы расширения в формате ножек NAPI. Мы не стали слишком фантазировать и сделали платку расширения с 3-мя лампочками (GPIO2_B6, GPIO2_B7, GPIO2_C0) и кнопкой с фиксацией (GPIO2_B3).
-
Не забудем саму NAPI-C (не стали ее впаивать намертво, а поместили в кроватки, сделав вырез в монтажке под ETH\USB)