Wiren Board 7.2: Peripherals: различия между версиями
Matveevrj (обсуждение | вклад) |
|||
(не показаны 23 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Wiren Board 7.2 | {{DISPLAYTITLE:Wiren Board 7.2: Низкоуровневая работа с железом}} | ||
{{Draft}} | |||
{{Wbincludes:Peripherals}} | {{Wbincludes:Peripherals}} | ||
== GPIO на клеммниках == | == GPIO на клеммниках == | ||
{| border="1" class="wikitable" | {| border="1" class="wikitable" | ||
! | ! Функция ||GPIO number || Примечание | ||
|- | |- | ||
! colspan=" | ! colspan="3" | Выходы A1-A3, D1 | ||
|- | |- | ||
| A1 OUT || Выход «открытый коллектор» | | A1 OUT || 109 || Выход «открытый коллектор» | ||
|- | |- | ||
| A2 OUT || Выход «открытый коллектор» | | A2 OUT || 108 || Выход «открытый коллектор» | ||
|- | |- | ||
| A3 OUT || Выход «открытый коллектор» | | A3 OUT || 107 || Выход «открытый коллектор» | ||
|- | |- | ||
| D1 OUT || Выход «открытый коллектор» | | D1 OUT || 106 || Выход «открытый коллектор» | ||
|- | |- | ||
! colspan=" | ! colspan="4" | Входы A1-A3, D1 (1 — нет сигнала) | ||
|- | |- | ||
| A1 IN || | | A1 IN ||231 || | ||
|- | |- | ||
| A2 IN || | | A2 IN ||230 || | ||
|- | |- | ||
| A3 IN || | | A3 IN ||227 || | ||
|- | |- | ||
| D1 IN || | | D1 IN ||228 || | ||
|- | |- | ||
! colspan=" | ! colspan="3" | Onewire | ||
|- | |- | ||
| W1 || 1-wire/DI | | W1 || 226 || 1-wire/DI | ||
|- | |- | ||
| W2 || 1-wire/DI | | W2 || 271 || 1-wire/DI | ||
|- | |- | ||
|} | |} | ||
== Реализация UART == | == Реализация UART == | ||
Строка 43: | Строка 41: | ||
|'''Примечание''' | |'''Примечание''' | ||
|- | |- | ||
|/dev/ | |/dev/ttymxc0 | ||
|/dev/ttyCONSOLE | |/dev/ttyCONSOLE | ||
|Debug-uart контроллера (micro-usb) | |Debug-uart контроллера (micro-usb) | ||
|Настройки по умолчанию: 115200-8-N-1 | |Настройки по умолчанию: 115200-8-N-1 | ||
|- | |- | ||
|/dev/ | |/dev/ttymxc1 | ||
|/dev/ttyRS485-1 | |/dev/ttyRS485-1 | ||
|Подписан ''RS-485'', клеммники A и B | |Подписан ''RS-485'', клеммники A и B | ||
|Неизолированный порт, установлен терминатор | |Неизолированный порт, установлен терминатор | ||
|- | |- | ||
|/dev/ | |/dev/ttymxc3 | ||
|/dev/ttyRS485-2 | |/dev/ttyRS485-2 | ||
|Подписан ''RS-485'', клеммники A/L и B/H (этот порт может использоваться и как CAN) | |Подписан ''RS-485'', клеммники A/L и B/H (этот порт может использоваться и как CAN) | ||
|Неизолированный порт, установлен терминатор, мультиплексирован с CAN | |Неизолированный порт, установлен терминатор, мультиплексирован с CAN | ||
|- | |- | ||
|/dev/ | |/dev/ttymxc2 | ||
|/dev/ttyMOD1 | |/dev/ttyMOD1 | ||
|UART на модуле расширения MOD1 | |UART на модуле расширения MOD1 | ||
| | | | ||
|- | |- | ||
|/dev/ | |/dev/ttymxc4 | ||
|/dev/ttyMOD2 | |/dev/ttyMOD2 | ||
|UART на модуле расширения MOD2 | |UART на модуле расширения MOD2 | ||
| | | | ||
|- | |- | ||
|/dev/ | |/dev/ttymxc5 | ||
|/dev/ttyMOD3 | |/dev/ttyMOD3 | ||
|UART на модуле расширения MOD3 | |UART на модуле расширения MOD3 | ||
| | | | ||
|- | |- | ||
|/dev/ | |/dev/ttymxc6 | ||
|/dev/ttyMOD4 | |/dev/ttyMOD4 | ||
|UART на модуле расширения MOD4 | |UART на модуле расширения MOD4 | ||
| | | | ||
|- | |||
|/dev/ttymxc7 | |||
|/dev/ttyGSM | |||
|UART на модуле расширения WBC (разъём GSM/3G/4G-модема) | |||
|Для появления нужно выставить какой-либо из модемов в wb-hardware.conf | |||
|- | |- | ||
|} | |} | ||
Строка 83: | Строка 86: | ||
Файл:MOD12.png|Распиновка разъемов Mod1, Mod2 и Mod3 на WB7 под модули расширения | Файл:MOD12.png|Распиновка разъемов Mod1, Mod2 и Mod3 на WB7 под модули расширения | ||
Файл:MOD3.png|Распиновка разъема Mod4 на WB7 под модули расширения | Файл:MOD3.png|Распиновка разъема Mod4 на WB7 под модули расширения | ||
Файл:wbc_mod.png| Распиновка разъема WBC на WB7 под модули 4g модемов | Файл:wbc_mod.png| Распиновка разъема WBC на WB7 под модули 2g/3g/4g модемов | ||
</gallery> | </gallery> | ||
== Сигналы на модулях расширения == | == Сигналы на модулях расширения == | ||
{| border="1" class="wikitable" | {| border="1" class="wikitable" | ||
! Функция || Примечание | ! Функция ||GPIO number || Примечание | ||
|- | |- | ||
! colspan=" | ! colspan="3" | MOD1 | ||
|- | |- | ||
| MOD1 RTS || | | MOD1 RTS || 36 || | ||
|- | |- | ||
| MOD1 TX || | | MOD1 TX || 226 || | ||
|- | |- | ||
| MOD1 RX || | | MOD1 RX || 227 || | ||
|- | |- | ||
! colspan=" | ! colspan="3" | MOD2 | ||
|- | |- | ||
| MOD2 RTS || | | MOD2 RTS || 84 || | ||
|- | |- | ||
| MOD2 TX || | | MOD2 TX || 268 || | ||
|- | |- | ||
| MOD2 RX || | | MOD2 RX || 269 || | ||
|- | |- | ||
! colspan=" | ! colspan="3" | MOD3 | ||
|- | |- | ||
| MOD3 RTS || | | MOD3 RTS || 138 || | ||
|- | |- | ||
| MOD3 TX || | | MOD3 TX || 266 || | ||
|- | |- | ||
| MOD3 RX || | | MOD3 RX || 267 || | ||
|- | |- | ||
! colspan=" | ! colspan="3" | MOD4 | ||
|- | |- | ||
| MOD4 RTS || | | MOD4 RTS || 270 || | ||
|- | |- | ||
| MOD4 TX || | | MOD4 TX || 224 || | ||
|- | |- | ||
| MOD4 RX || | | MOD4 RX || 225 || | ||
|- | |- | ||
| MOD4 SPI MOSI || | | MOD4 SPI MOSI || 64 || | ||
|- | |- | ||
| MOD4 SPI MISO || | | MOD4 SPI MISO || 65 || | ||
|- | |- | ||
| MOD4 SPI CLK || | | MOD4 SPI CLK || 66 || | ||
|- | |- | ||
| MOD4 SPI CS || | | MOD4 SPI CS || 87 || | ||
|- | |- | ||
! colspan=" | ! colspan="3" | GSM (WBC) | ||
|- | |- | ||
| GSM Status || Modem power status (input) | | GSM Status || 121 || Modem power status (input) | ||
|- | |- | ||
| GSM PWRKEY || Modem PWRKEY (output) | | GSM PWRKEY || 122 || Modem PWRKEY (output) | ||
|- | |- | ||
| GSM ON || On/OFF 5 V | | GSM ON || 123 || On/OFF 5 V | ||
|- | |- | ||
| SIM_SELECT || SIM slot select (low: 1, high: 2) | | SIM_SELECT || 34 || SIM slot select (low: 1, high: 2) | ||
|- | |- | ||
|} | |} | ||
== | == Каналы АЦП == | ||
{| class="wikitable" | {| class="wikitable" | ||
! | !клеммник | ||
! | !Канал АЦП | ||
!Делитель | |||
|- | |- | ||
|A1 | |A1 | ||
| | | | ||
| rowspan="3" |88k7, 10k | |||
|- | |- | ||
|A2 | |A2 | ||
| | | | ||
|- | |- | ||
|A3 | |A3 | ||
| | | | ||
|- | |- | ||
|Vin | |Vin | ||
| | | | ||
|200k, 12k | |||
|- | |- | ||
|5Vout | |||
| | |||
|33k, 12k | |||
|} | |} | ||
== Ножки для внутреннего использования == | == Ножки для внутреннего использования == | ||
{| border="1" class="wikitable" | {| border="1" class="wikitable" | ||
! | ! Функция ||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 || | ||
|- | |- | ||
| | | CAN_TX || 16 || | ||
|- | |- | ||
| | | CAN_RX || 17 || | ||
|- | |- | ||
| | | SoM PMIC_SCK || 32 || | ||
|- | |- | ||
| | | SoM PMIC_SDA || 33 || | ||
|- | |- | ||
| | | BUZZER || 35 || | ||
|- | |- | ||
| | | Red LED || 41 || [[Control_led_indicator_WB | Управление индикатором]] | ||
|- | |- | ||
| | | Green LED || 42 || | ||
|- | |- | ||
| | | W1-UP || 45 || | ||
|- | |- | ||
| | | W2-UP || 131 || | ||
|- | |- | ||
| | | EEPROM-2 SDA || 46 || | ||
|- | |- | ||
| | | EEPROM-2 SCL || 47 || | ||
|- | |- | ||
| | | EEPROM-1 SDA || 48 || | ||
|- | |- | ||
| | | EEPROM-1 SCL || 49 || | ||
|- | |||
| WBIO SCL || 50 || | |||
|- | |||
|- | | WBIO SDA || 51 || | ||
|- | |||
| DEBUG UART TX || 54 || | |||
|- | |||
| DEBUG UART RX || 55 || | |||
|- | |||
| SoM Wi-Fi ON || 67 || | |||
|- | |||
| SoM BT ON || 68 || | |||
|- | |||
| microSD CD || 69 || | |||
|- | |||
| 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 || | |||
|- | |||
| SoM Wi-Fi HOST_WAKE || 80 || | |||
|- | |- | ||
| | | SoM BT WAKE || 81 || | ||
| | |||
| | |||
|- | |- | ||
| | | SoM BT HOST_WAKE || 82 || | ||
|- | |- | ||
| | | RS-485-1 RTS || 83 || | ||
| | |||
|- | |- | ||
| | | RS-485-2 RTS || 85 || | ||
|- | |- | ||
| | | 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 || | ||
| | |||
|- | |- | ||
| | | WBMZ Status || 115 || vin | ||
| | |||
| | |||
|- | |- | ||
| | | USB0 ID || 116 || usb0_id_det | ||
| | |||
|- | |- | ||
| | | USB0 ON || 128 || | ||
| | |||
| | |||
|- | |- | ||
| | | Watchdog out || 117 || | ||
| | |||
|- | |- | ||
| | | Wi-Fi ON || 120 || | ||
| | |||
| | |||
|- | |- | ||
| | | 5Vout ON || 129 || | ||
| | |||
|- | |- | ||
| | | V_OUT ON || 130 || | ||
| | |||
|- | |- | ||
|} | |} |
Версия 13:12, 21 мая 2022
Это черновик страницы. Последняя правка сделана 21.05.2022 пользователем A.Degtyarev.
Введение
Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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/ttymxc0 | /dev/ttyCONSOLE | Debug-uart контроллера (micro-usb) | Настройки по умолчанию: 115200-8-N-1 |
/dev/ttymxc1 | /dev/ttyRS485-1 | Подписан RS-485, клеммники A и B | Неизолированный порт, установлен терминатор |
/dev/ttymxc3 | /dev/ttyRS485-2 | Подписан RS-485, клеммники A/L и B/H (этот порт может использоваться и как CAN) | Неизолированный порт, установлен терминатор, мультиплексирован с CAN |
/dev/ttymxc2 | /dev/ttyMOD1 | UART на модуле расширения MOD1 | |
/dev/ttymxc4 | /dev/ttyMOD2 | UART на модуле расширения MOD2 | |
/dev/ttymxc5 | /dev/ttyMOD3 | UART на модуле расширения MOD3 | |
/dev/ttymxc6 | /dev/ttyMOD4 | UART на модуле расширения MOD4 | |
/dev/ttymxc7 | /dev/ttyGSM | UART на модуле расширения WBC (разъём GSM/3G/4G-модема) | Для появления нужно выставить какой-либо из модемов в wb-hardware.conf |
Сигналы на модулях расширения
Функция | 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) |
Каналы АЦП
клеммник | Канал АЦП | Делитель |
---|---|---|
A1 | 88k7, 10k | |
A2 | ||
A3 | ||
Vin | 200k, 12k | |
5Vout | 33k, 12k |
Ножки для внутреннего использования
Функция | 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 | |
CAN_TX | 16 | |
CAN_RX | 17 | |
SoM PMIC_SCK | 32 | |
SoM PMIC_SDA | 33 | |
BUZZER | 35 | |
Red LED | 41 | Управление индикатором |
Green LED | 42 | |
W1-UP | 45 | |
W2-UP | 131 | |
EEPROM-2 SDA | 46 | |
EEPROM-2 SCL | 47 | |
EEPROM-1 SDA | 48 | |
EEPROM-1 SCL | 49 | |
WBIO SCL | 50 | |
WBIO SDA | 51 | |
DEBUG UART TX | 54 | |
DEBUG UART RX | 55 | |
SoM Wi-Fi ON | 67 | |
SoM BT ON | 68 | |
microSD CD | 69 | |
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 | |
SoM Wi-Fi HOST_WAKE | 80 | |
SoM BT WAKE | 81 | |
SoM BT HOST_WAKE | 82 | |
RS-485-1 RTS | 83 | |
RS-485-2 RTS | 85 | |
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 | |
WBMZ Status | 115 | vin |
USB0 ID | 116 | usb0_id_det |
USB0 ON | 128 | |
Watchdog out | 117 | |
Wi-Fi ON | 120 | |
5Vout ON | 129 | |
V_OUT ON | 130 |