Wiren Board 7.4: Peripherals: различия между версиями
Строка 233: | Строка 233: | ||
| BUZZER || 35 || | | BUZZER || 35 || | ||
|- | |- | ||
| | | Red LED || 41 || rowspan="2"| [[Control_led_indicator_WB | Управление индикатором]] | ||
|- | |- | ||
| | | Green LED || 42 | ||
|- | |- | ||
| W1 UP || 256 || | | W1 UP || 256 || | ||
Строка 251: | Строка 251: | ||
| DEBUG UART RX || 55 || | | DEBUG UART RX || 55 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi ON || 67 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi CMD || 192 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi CLK || 193 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi D0 || 194 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi D1 || 195 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi D2 || 196 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi D3 || 197 || | ||
|- | |- | ||
| SoM | | SoM Wi-Fi HOST_WAKE || 80 || | ||
|- | |- | ||
| SoM BT ON || 68 || | | SoM BT ON || 68 || | ||
Строка 277: | Строка 277: | ||
| SoM BT HOST_WAKE || 82 || | | SoM BT HOST_WAKE || 82 || | ||
|- | |- | ||
| SoM BT | | SoM BT reserved || 200 || | ||
|- | |- | ||
| SoM BT | | SoM BT reserved || 201 || | ||
|- | |- | ||
| SoM | | SoM eMMC CMD || 70 || | ||
|- | |- | ||
| SoM | | SoM eMMC CLK || 71 || | ||
|- | |- | ||
| SoM | | SoM eMMC D0 || 72 || | ||
|- | |- | ||
| SoM | | SoM eMMC D1 || 73 || | ||
|- | |- | ||
| SoM | | SoM eMMC D2 || 74 || | ||
|- | |- | ||
| SoM | | SoM eMMC D3 || 75 || | ||
|- | |- | ||
| SoM | | SoM eMMC D4 || 76 || | ||
|- | |- | ||
| SoM | | SoM eMMC D5 || 77 || | ||
|- | |- | ||
| SoM | | SoM eMMC D6 || 78 || | ||
|- | |- | ||
| SoM | | SoM eMMC D7 || 79 || | ||
|- | |- | ||
| SoM | | SoM eMMC RST || 88 || | ||
|- | |- | ||
| LVDS D0 P || 96 || | | LVDS D0 P || 96 || | ||
Строка 323: | Строка 323: | ||
| LVDS D3 N || 105 || | | LVDS D3 N || 105 || | ||
|- | |- | ||
| | | Pushbutton || 110 || | ||
|- | |- | ||
| EC WBMZ | | EC WBMZ Status || 389 || | ||
|- | |- | ||
| USB0 ID || 116 || | | USB0 ID || 116 || | ||
Строка 331: | Строка 331: | ||
| USB0 ON || 128 || | | USB0 ON || 128 || | ||
|- | |- | ||
| | | Wi-Fi ON || 120 || | ||
|- | |- | ||
| | | 5VOut ON || 129 || | ||
|- | |- | ||
| | | VOut ON || 388 || | ||
|- | |- | ||
| RS-485-1 RTS || 83 || | | RS-485-1 RTS || 83 || | ||
|- | |- | ||
| RS-485-1 | | RS-485-1 Termination || 137 || | ||
|- | |- | ||
| RS-485-1 | | RS-485-1 Failsafe || 139 || | ||
|- | |- | ||
| RS-485-1 TX || 274 || | | RS-485-1 TX || 274 || | ||
Строка 349: | Строка 349: | ||
| RS-485-2 RTS || 85 || | | RS-485-2 RTS || 85 || | ||
|- | |- | ||
| RS-485-2 | | RS-485-2 Termination || 132 || | ||
|- | |- | ||
| RS-485-2 | | RS-485-2 Failsafe || 138 || | ||
|- | |- | ||
| RS-485-2 TX || 202 || | | RS-485-2 TX || 202 || | ||
Строка 357: | Строка 357: | ||
| RS-485-2 RX || 203 || | | RS-485-2 RX || 203 || | ||
|- | |- | ||
| | | microSD D1 || 160 || | ||
|- | |- | ||
| | | microSD D0 || 161 || | ||
|- | |- | ||
| | | microSD CLK || 162 || | ||
|- | |- | ||
| | | microSD CMD || 163 || | ||
|- | |- | ||
| | | microSD D3 || 164 || | ||
|- | |- | ||
| | | microSD D2 || 165 || | ||
|- | |- | ||
| | | microSD CD || 69 || | ||
|- | |- | ||
| SoM Eth0 RXD3 || 232 || | | SoM Eth0 RXD3 || 232 || | ||
Строка 407: | Строка 407: | ||
| SoM Eth0 COL || 250 || | | SoM Eth0 COL || 250 || | ||
|- | |- | ||
| SoM LCD | | SoM LCD Backlight ON || 251 || | ||
|- | |- | ||
| EC CS || 46 || | | EC CS || 46 || | ||
Строка 417: | Строка 417: | ||
| EC MISO || 49 || | | EC MISO || 49 || | ||
|- | |- | ||
| SWCLK/BOOT0 || 114 || | | EC SWCLK/BOOT0 || 114 || | ||
|- | |- | ||
| EC RESET || 115 || | | EC RESET || 115 || | ||
Строка 427: | Строка 427: | ||
| CR_RTC SDA || 259 || | | CR_RTC SDA || 259 || | ||
|- | |- | ||
| ON | | ON periph voltage || 45 || | ||
|- | |- | ||
|} | |} |
Версия 11:05, 30 июня 2023
Это черновик страницы. Последняя правка сделана 30.06.2023 пользователем Boris Marochkin.
Введение
Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров Wiren Board.
Самый простой и удобный способ работы с железом контроллера — через MQTT, связываясь с сервисами wb: wb-mqtt-gpio, wb-mqtt-adc, wb-mqtt-gpio и т.п. Сервисы wb- позволяют работать с железом через унифицированный интерфейс MQTT и скрывают аппаратные различия между аппаратными ревизиями контроллеров.
Работа в обход стандартных сервисов wb- обычно используется, когда программное обеспечение выполняется на разных Linux-контроллерах разных вендоров, и работа через соответсвующие интерфейсы ядра уже реализована в ПО. Данная статья содержит описание периферии, нужное для работы с ней через стандартные интерфейсы ядра. При работе с ядерными интерфейсами не забудьте отключить соответствующий сервис wb-.
Большая часть периферии, описанной в этой статье, описана также в ноде /wirenboard в Devicee Tree контроллера. Сервисы wb-mqtt-gpio, wb-mqtt-adc и т.д. берут описание периферии именно оттуда, считывая описание каждый раз при старте контроллера. Этот способ является предпочтительным и для стороннего ПО, чтобы сохранить совместимость с прошлыми и будущими аппаратными ревизиями оборудования.
Работа с GPIO в Linux
GPIO (General-purpose input/output — ввод/вывод общего назначения) — контакт электрической схемы, который может принимать одно из двух логических состояний — единицу или ноль. Пользователь может устанавливать и считывать состояние GPIO.
В разных устройствах высокий логический уровень может представляться разным напряжением — следите за этим. В контроллерах Wiren Board логическая единица — это 3.3 В.
ВНИМАНИЕ: не подключайте напрямую к GPIO контроллера сигналы с напряжением больше 3.3 В! Если нужно подключить устройство, которое выдает сигнал с более высоким напряжением — используйте схемы согласования. В некоторых случаях, если напряжение сигнала не больше 5 В, то можно согласовать сигналы через резистор на 20 кОм.
Подробно про работу с GPIO читайте в статье Работа с GPIO. Также рекомендуем прочитать соответствующий раздел документации к ядру Linux.
Для других версий контроллера смотрите Таблицы GPIO разных версий контроллера.
Посмотреть таблицу GPIO можно командой cat /sys/kernel/debug/gpio
, или в разделе ниже.
GPIO на клеммниках
Функция | GPIO number | Примечание | |
---|---|---|---|
Выходы A1-A3, D1 | |||
A1 OUT | 109 | Выход «открытый коллектор» | |
A2 OUT | 108 | Выход «открытый коллектор» | |
A3 OUT | 107 | Выход «открытый коллектор» | |
D1 OUT | 106 | Выход «открытый коллектор» | |
Входы A1-A3, D1 (1 — нет сигнала) | |||
A1 IN | 231 | ||
A2 IN | 230 | ||
A3 IN | 227 | ||
D1 IN | 228 | ||
Onewire | |||
W1 | 226 | 1-wire/DI | |
W2 | 271 | 1-wire/DI |
Реализация UART
Название порта в Linux | Альтернативное имя порта в Linux | Разъём на контроллере | Примечание |
/dev/ttyS0 | /dev/ttyCONSOLE | Debug-uart контроллера (micro-usb) | Настройки по умолчанию: 115200-8-N-1 |
/dev/ttyS2 | /dev/ttyRS485-1 | Подписан RS-485, клеммники A и B | Неизолированный порт, установлен терминатор |
/dev/ttyS4 | /dev/ttyRS485-2 | Подписан RS-485, клеммники A/L и B/H (этот порт может использоваться и как CAN) | Неизолированный порт, установлен терминатор, мультиплексирован с CAN |
/dev/ttyS7 | /dev/ttyMOD1 | UART на модуле расширения MOD1 | |
/dev/ttyS6 | /dev/ttyMOD2 | UART на модуле расширения MOD2 | |
/dev/ttyS5 | /dev/ttyMOD3 | UART на модуле расширения MOD3 | |
/dev/ttyS3 | /dev/ttyMOD4 | UART на модуле расширения MOD4 |
Сигналы на модулях расширения
Функция | GPIO number | Примечание |
---|---|---|
MOD1 | ||
MOD1 RTS | 36 | |
MOD1 TX | 226 | |
MOD1 RX | 227 | |
MOD2 | ||
MOD2 RTS | 84 | |
MOD2 TX | 268 | |
MOD2 RX | 269 | |
MOD3 | ||
MOD3 RTS | 138 | |
MOD3 TX | 266 | |
MOD3 RX | 267 | |
MOD4 | ||
MOD4 RTS | 270 | |
MOD4 TX | 224 | |
MOD4 RX | 225 | |
MOD4 SPI MOSI | 64 | |
MOD4 SPI MISO | 65 | |
MOD4 SPI CLK | 66 | |
MOD4 SPI CS | 87 | |
GSM (WBC) | ||
GSM Status | 121 | Modem power status (input) |
GSM PWRKEY | 122 | Modem PWRKEY (output) |
GSM ON | 123 | On/OFF 5 V |
SIM_SELECT | 34 | SIM slot select (low: 1, high: 2) |
Аналоговые входы
Аналоговые входы в Wiren Board 7 доступны через стандартный ядерный интерфейс IIO. Конвертация сигналов с учётом внешний по отношению к процессору делителей происходит внутри ядра.
Каждому аналоговому входу соответствует своё устройство в подсистеме IIO. Приложения должны считывать текущие значения из файлов с суффиксом raw, текущий масштаб и сдвиг из файлов scale и offset.
В Wiren Board 7 scale аналоговых входов постоянный, а offset всегда равен нулю.
Пример чтения напряжения Vin на контроллере:
root@wirenboard-AHIN3TB:~# cat /sys/bus/iio/devices/iio\:device4/name vin-volt root@wirenboard-AHIN3TB:~# cat /sys/bus/iio/devices/iio\:device4/in_voltage0_raw 1779 root@wirenboard-AHIN3TB:~# cat /sys/bus/iio/devices/iio\:device4/in_voltage0_scale 13.481987847 # 1779 * 13.481987847 mV = 23 984 mV
Приложения должны искать IIO устройства по именам, номера не являются стабильными.
Клеммник | Имя IIO устройства |
---|---|
A1 | a1-volt |
A2 | a2-volt |
A3 | a3-volt |
Vin | vin-volt |
Ножки для внутреннего использования
Функция (label) | GPIO number | Примечание |
---|---|---|
SoM Eth1 RXD3 | 0 | |
SoM Eth1 RXD2 | 1 | |
SoM Eth1 RXD1 | 2 | |
SoM Eth1 RXD0 | 3 | |
SoM Eth1 TXD3 | 4 | |
SoM Eth1 TXD2 | 5 | |
SoM Eth1 TXD1 | 6 | |
SoM Eth1 TXD0 | 7 | |
SoM Eth1 RXCK | 8 | |
SoM Eth1 RXERR | 9 | |
SoM Eth1 RXDV | 10 | |
SoM Eth1 MDC | 11 | |
SoM Eth1 MDIO | 12 | |
SoM Eth1 TXEN | 13 | |
SoM Eth1 TXCK | 14 | |
SoM Eth1 CRS | 15 | |
SoM Eth1 RST | 237 | |
CAN TX | 16 | |
CAN RX | 17 | |
CAN TXRX ON | 53 | |
CAN/UART RX ALT | 229 | |
SoM PMIC SCL | 32 | |
SoM PMIC SDA | 33 | |
BUZZER | 35 | |
Red LED | 41 | Управление индикатором |
Green LED | 42 | |
W1 UP | 256 | |
W2 UP | 257 | |
WBIO SCL | 50 | |
WBIO SDA | 51 | |
WBIO INT | 272 | |
DEBUG UART TX | 54 | |
DEBUG UART RX | 55 | |
SoM Wi-Fi ON | 67 | |
SoM Wi-Fi CMD | 192 | |
SoM Wi-Fi CLK | 193 | |
SoM Wi-Fi D0 | 194 | |
SoM Wi-Fi D1 | 195 | |
SoM Wi-Fi D2 | 196 | |
SoM Wi-Fi D3 | 197 | |
SoM Wi-Fi HOST_WAKE | 80 | |
SoM BT ON | 68 | |
SoM BT TX | 198 | |
SoM BT RX | 199 | |
SoM BT WAKE | 81 | |
SoM BT HOST_WAKE | 82 | |
SoM BT reserved | 200 | |
SoM BT reserved | 201 | |
SoM eMMC CMD | 70 | |
SoM eMMC CLK | 71 | |
SoM eMMC D0 | 72 | |
SoM eMMC D1 | 73 | |
SoM eMMC D2 | 74 | |
SoM eMMC D3 | 75 | |
SoM eMMC D4 | 76 | |
SoM eMMC D5 | 77 | |
SoM eMMC D6 | 78 | |
SoM eMMC D7 | 79 | |
SoM eMMC RST | 88 | |
LVDS D0 P | 96 | |
LVDS D0 N | 97 | |
LVDS D1 P | 98 | |
LVDS D1 N | 99 | |
LVDS D2 P | 100 | |
LVDS D2 N | 101 | |
LVDS DCK P | 102 | |
LVDS DCK N | 103 | |
LVDS D3 P | 104 | |
LVDS D3 N | 105 | |
Pushbutton | 110 | |
EC WBMZ Status | 389 | |
USB0 ID | 116 | |
USB0 ON | 128 | |
Wi-Fi ON | 120 | |
5VOut ON | 129 | |
VOut ON | 388 | |
RS-485-1 RTS | 83 | |
RS-485-1 Termination | 137 | |
RS-485-1 Failsafe | 139 | |
RS-485-1 TX | 274 | |
RS-485-1 RX | 275 | |
RS-485-2 RTS | 85 | |
RS-485-2 Termination | 132 | |
RS-485-2 Failsafe | 138 | |
RS-485-2 TX | 202 | |
RS-485-2 RX | 203 | |
microSD D1 | 160 | |
microSD D0 | 161 | |
microSD CLK | 162 | |
microSD CMD | 163 | |
microSD D3 | 164 | |
microSD D2 | 165 | |
microSD CD | 69 | |
SoM Eth0 RXD3 | 232 | |
SoM Eth0 RXD2 | 233 | |
SoM Eth0 RXD1 | 234 | |
SoM Eth0 RXD0 | 235 | |
SoM Eth0 TXD3 | 238 | |
SoM Eth0 TXD2 | 239 | |
SoM Eth0 TXD1 | 240 | |
SoM Eth0 TXD0 | 241 | |
SoM Eth0 RXCK | 242 | |
SoM Eth0 RXERR | 243 | |
SoM Eth0 RXDV | 244 | |
SoM Eth0 MDC | 245 | |
SoM Eth0 MDIO | 246 | |
SoM Eth0 TXEN | 247 | |
SoM Eth0 TXCK | 248 | |
SoM Eth0 CRS | 249 | |
SoM Eth0 RST | 236 | |
SoM Eth0 COL | 250 | |
SoM LCD Backlight ON | 251 | |
EC CS | 46 | |
EC CLK | 47 | |
EC MOSI | 48 | |
EC MISO | 49 | |
EC SWCLK/BOOT0 | 114 | |
EC RESET | 115 | |
EC INT | 271 | |
CR_RTC SCL | 258 | |
CR_RTC SDA | 259 | |
ON periph voltage | 45 |
Расположение данных на внутреннем накопителе
Offset (in bytes) | ||
---|---|---|
0x00000000 | MBR | Device-specific factory data |
0x000000D9 | ||
0x000001BE | Partition table | |
0x000001FE | ||
0x000001FF | ||
0x00002000 | Bootloader | |
0x00087fff | ||
0x00088000 | Bootloader environment | |
0x000a7fff | ||
0x000fc000 | Device-specific factory data Factory DT overlay with revision, batch, adc and crystal calibration data and so on |
|
0x000fffff | ||
0x00100000 | /dev/mmcblk0p1 Device-specific factory data |
|
0x00500000 | hiddenfs Ext3 filesystem, currently holding device-specific cryptographic certificates | |
0x005fffff | ||
0x010fffff | ||
0x01100000 | /dev/mmcblk0p2 Rootfs partition |
|
0x410fffff | ||
0x41100000 | /dev/mmcblk0p3 Rootfs partition |
|
0x810fffff | ||
0x81200000 | /dev/mmcblk0p5 Swap partition |
|
0x911fffff | ||
0x91300000 | /dev/mmcblk0p6 /mnt/data partition |
|
end |