Wiren Board 7.2: Peripherals: различия между версиями

Материал из Wiren Board
 
(не показано 19 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE:Wiren Board 7.2: Низкоуровневая работа с железом}}
{{DISPLAYTITLE:Wiren Board 7.2 и 7.3.x: Низкоуровневая работа с железом}}
{{Wbincludes:Peripherals}}
{{Wbincludes:Peripherals}}
== GPIO на клеммниках ==
== GPIO на клеммниках ==
{|  border="1" class="wikitable"  
{|  border="1" class="wikitable"  
! Функция ||GPIO number ||  Примечание
! Метка (label) ||Примечание
|-
|-
! colspan="3" | Выходы A1-A3, D1
! colspan="2" | Выходы A1-A3, D1
|-
|-
| A1 OUT || 109 || Выход «открытый коллектор»
| A1 OUT || Выход «открытый коллектор»
|-
|-
| A2 OUT || 108 || Выход «открытый коллектор»
| A2 OUT || Выход «открытый коллектор»
|-
|-
| A3 OUT || 107 || Выход «открытый коллектор»
| A3 OUT || Выход «открытый коллектор»
|-
|-
| D1 OUT || 106 || Выход «открытый коллектор»
| D1 OUT || Выход «открытый коллектор»
|-
|-
! colspan="4" | Входы A1-A3, D1 (1 — нет сигнала)
! colspan="3" | Входы A1-A3, D1 (1 — нет сигнала)
|-
|-
| A1 IN ||231 ||  
| A1 IN ||  
|-
|-
| A2 IN ||230 ||  
| A2 IN ||  
|-
|-
| A3 IN ||227 ||  
| A3 IN ||  
|-
|-
| D1 IN ||228 ||  
| D1 IN ||
|-
|-
! colspan="3" | Onewire
! colspan="2" | Onewire
|-
|-
| W1 || 226 || 1-wire/DI  
| W1 || 1-wire/DI  
|-
|-
| W2 || 271 || 1-wire/DI  
| W2 || 1-wire/DI  
|-
|-
|}
|}
== Имена GPIO боковых модулей WBIO ==
{{Wbincludes:WBIO GPIO Names}}


== Реализация UART ==
== Реализация UART ==
Строка 40: Строка 43:
|'''Примечание'''
|'''Примечание'''
|-
|-
|/dev/ttymxc0
|/dev/ttyS0
|/dev/ttyCONSOLE
|/dev/ttyCONSOLE
|Debug-uart контроллера (micro-usb)
|Debug-uart контроллера (micro-usb)
|Настройки по умолчанию: 115200-8-N-1
|Настройки по умолчанию: 115200-8-N-1
|-
|-
|/dev/ttymxc1
|/dev/ttyS2
|/dev/ttyRS485-1
|/dev/ttyRS485-1
|Подписан ''RS-485'', клеммники A и B
|Подписан ''RS-485'', клеммники A и B
|Неизолированный порт, установлен терминатор
|Неизолированный порт, установлен терминатор
|-
|-
|/dev/ttymxc3
|/dev/ttyS4
|/dev/ttyRS485-2
|/dev/ttyRS485-2
|Подписан ''RS-485'', клеммники A/L и B/H (этот порт может использоваться и как CAN)
|Подписан ''RS-485'', клеммники A/L и B/H (этот порт может использоваться и как CAN)
|Неизолированный порт, установлен терминатор, мультиплексирован с CAN
|Неизолированный порт, установлен терминатор, мультиплексирован с CAN
|-
|-
|/dev/ttymxc2
|/dev/ttyS7
|/dev/ttyMOD1
|/dev/ttyMOD1
|UART на модуле расширения MOD1
|UART на модуле расширения MOD1
|
|
|-
|-
|/dev/ttymxc4
|/dev/ttyS6
|/dev/ttyMOD2
|/dev/ttyMOD2
|UART на модуле расширения MOD2
|UART на модуле расширения MOD2
|
|
|-
|-
|/dev/ttymxc5
|/dev/ttyS5
|/dev/ttyMOD3
|/dev/ttyMOD3
|UART на модуле расширения MOD3
|UART на модуле расширения MOD3
|
|
|-
|-
|/dev/ttymxc6
|/dev/ttyS3
|/dev/ttyMOD4
|/dev/ttyMOD4
|UART на модуле расширения MOD4
|UART на модуле расширения MOD4
|
|
|-
|/dev/ttymxc7
|/dev/ttyGSM
|UART на модуле расширения WBC (разъём GSM/3G/4G-модема)
|Для появления нужно выставить какой-либо из модемов в wb-hardware.conf
|-
|-
|}
|}
Строка 85: Строка 83:
Файл: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 под модули 2g/3g/4g модемов
Файл:wbc_mod.png| Распиновка разъема WBC на WB7 под модули 4g модемов (сигналы RX и TX не подключены)
</gallery>
</gallery>


== Сигналы на модулях расширения ==
== Сигналы на модулях расширения ==
{|  border="1" class="wikitable"  
{|  border="1" class="wikitable"  
! Функция ||GPIO number ||  Примечание
! Функция || Примечание
|-
|-
! colspan="3" | MOD1
! colspan="2" | MOD1
|-
|-
| MOD1 RTS || 36 ||
| MOD1 RTS ||
|-
|-
| MOD1 TX || 226 ||  
| MOD1 TX ||  
|-
|-
| MOD1 RX || 227 ||  
| MOD1 RX ||  
|-
|-
! colspan="3" | MOD2
! colspan="2" | MOD2
|-
|-
| MOD2 RTS || 84 ||  
| MOD2 RTS ||
|-
|-
| MOD2 TX || 268 ||  
| MOD2 TX ||
|-
|-
| MOD2 RX || 269 ||  
| MOD2 RX ||
|-
|-
! colspan="3" | MOD3
! colspan="2" | MOD3
|-
|-
| MOD3 RTS || 138 ||  
| MOD3 RTS ||  
|-
|-
| MOD3 TX || 266 ||  
| MOD3 TX ||
|-
|-
| MOD3 RX || 267 ||  
| MOD3 RX ||
|-
|-
! colspan="3" | MOD4
! colspan="2" | MOD4
|-
|-
| MOD4 RTS || 270 ||  
| MOD4 RTS ||
|-
|-
| MOD4 TX || 224 ||  
| MOD4 TX ||
|-
|-
| MOD4 RX || 225 ||  
| MOD4 RX ||
|-
|-
| MOD4 SPI MOSI || 64 ||  
| MOD4 SPI MOSI ||
|-
|-
| MOD4 SPI MISO || 65 ||  
| MOD4 SPI MISO ||
|-
|-
| MOD4 SPI CLK || 66 ||  
| MOD4 SPI CLK ||
|-
|-
| MOD4 SPI CS || 87 ||  
| MOD4 SPI CS ||
|-
|-
! colspan="3" | GSM (WBC)
! colspan="2" | GSM (WBC)
|-
|-
| GSM Status  || 121 || Modem power status (input)  
| GSM Status  || Modem power status (input)  
|-
|-
| GSM PWRKEY  || 122 || Modem PWRKEY (output)  
| GSM PWRKEY  || Modem PWRKEY (output)  
|-
|-
| GSM ON  || 123 || On/OFF 5 V
| GSM ON  || On/OFF 5 V
|-
|-
| SIM_SELECT  || 34 || SIM slot select (low: 1, high: 2)  
| SIM_SELECT  || SIM slot select (low: 1, high: 2)  
|-
|-
|}
|}


== Каналы АЦП ==
== Аналоговые входы ==
Аналоговые входы в Wiren Board 7 доступны через стандартный ядерный интерфейс IIO.
Конвертация сигналов с учётом внешний по отношению к процессору делителей происходит внутри ядра.
 
Каждому аналоговому входу соответствует своё устройство в подсистеме IIO. Приложения должны считывать текущие значения из файлов с суффиксом raw, текущий масштаб и сдвиг из файлов scale и offset.
 
В Wiren Board 7 scale аналоговых входов постоянный, а offset всегда равен нулю.
 
Пример чтения напряжения Vin на контроллере:
 
<pre>
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
</pre>
 
Приложения должны искать IIO устройства по именам, номера не являются стабильными.
 
{| class="wikitable"
{| class="wikitable"
!клеммник
!Клеммник
!Канал АЦП
!Имя IIO устройства
!Делитель
|-
|-
|A1
|A1
|
|a1-volt
| rowspan="3" |88k7, 10k
|-
|-
|A2
|A2
|
|a2-volt
|-
|-
|A3
|A3
|
|a3-volt
|-
|-
|Vin
|Vin
|
|vin-volt
|200k, 12k
|-
|-
|5Vout
|
|33k, 12k
|}
|}


== Ножки для внутреннего использования ==
== Ножки для внутреннего использования ==
{|  border="1" class="wikitable"  
{|  border="1" class="wikitable"  
! Функция ||GPIO number ||  Примечание
! Метка (label)|| Примечание
|-
|-
| SoM Eth1 RXD3  || 0 ||
| BUZZER ||
|-
|-
| SoM Eth1 RXD2  || 1 ||
| Red LED || rowspan="2" | [[Control_led_indicator_WB | Управление индикатором]]
|-
|-
| SoM Eth1 RXD1  || 2 ||
| Green LED
|-
|-
| SoM Eth1 RXD0  || 3 ||
| W1 UP ||  
|-
|-
| SoM Eth1 TXD3 || 4 ||
| W2 UP ||  
|-
|-
| SoM Eth1 TXD2 || 5 ||
| Pushbutton ||  
|-
|-
| SoM Eth1 TXD1  || 6 ||
| USB0 ON ||  
|-
|-
| SoM Eth1 TXD0 || 7 ||
| Wi-Fi ON ||  
|-
|-
| SoM Eth1 RXCK || 8 ||
| 5VOut ON ||  
|-
|-
| SoM Eth1 RXERR  || 9 ||
| VOut ON ||  
|-
|-
| SoM Eth1 RXDV || 10 ||
| RS-485-1 Termination ||  
|-
|-
| SoM Eth1 MDC || 11 ||
| RS-485-1 Failsafe ||  
|-
|-
| SoM Eth1 MDIO || 12 ||
| RS-485-2 Termination ||  
|-
|-
| SoM Eth1 TXEN || 13 ||
| RS-485-2 Failsafe ||  
|-
|-
| SoM Eth1 TXCK || 14 ||
|}
|-
 
| SoM Eth1 CRS || 15 ||
== Расположение данных на внутреннем накопителе ==
|-
{| class="wikitable"  
| Eth1 RST  || 237 ||
|- style="font-weight:bold; text-align:center;"
|-
! style="font-family:'Courier New', Courier, monospace !important;" | Offset (in bytes)
| CAN_TX || 16 ||
!
|-
!
| CAN_RX || 17 ||
|-
| CAN TXRX ON  || 139 ||
|-
| CAN/UART RX ALT || 229 ||
|-
| SoM PMIC_SCK || 32 ||
|-
| SoM PMIC_SDA || 33 ||
|-
| BUZZER || 35 ||
|-
| Red LED || 41 || rowspan="2"| [[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 ||
|-
| 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 BT ON || 68 ||
|-
| SoM BT TX || 198 ||
|-
| SoM BT RX || 199 ||
|-
| 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 ||
|-
| SoM Wi-Fi HOST_WAKE || 80 ||
|-
| SoM BT WAKE  || 81 ||
|-
| SoM BT HOST_WAKE  || 82 ||
|-
| 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 ||
|-
| RS-485-1 RTS || 83 ||
|-
| RS-485-1 Termination || 134 ||
|-
| RS-485-1 Failsafe || 136 ||
|-
| RS-485-1 TX  || 274 ||
|-
| RS-485-1 TX  || 275 ||
|-
| RS-485-2 RTS || 85 ||
|-
| RS-485-2 Termination || 133 ||
|-
| RS-485-2 Failsafe || 135 ||
|-
| 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 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x00000000
| rowspan="5" style="text-align:center;" | MBR
| rowspan="2" style="background-color:#fd6864;" | Device-specific factory data
|-
|-
| microSD CD  || 69 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x000000D9
|-
|-
| SoM Eth0 RXD3  || 232 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x000001BE
| rowspan="2" | Partition table
|-
|-
| SoM Eth0 RXD2  || 233 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x000001FE
|-
|-
| SoM Eth0 RXD1  || 234 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x000001FF
|  
|-
|-
| SoM Eth0 RXD0  || 235 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x00002000
| rowspan="2" | Bootloader
|  
|-
|-
| SoM Eth0 TXD3 || 238 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x00087fff
|  
|-
|-
| SoM Eth0 TXD2 || 239 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x00088000
| rowspan="2" | Bootloader environment
|  
|-
|-
| SoM Eth0 TXD1  || 240 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x000a7fff
|  
|-
|-
| SoM Eth0 TXD0 || 241 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x000fc000
| rowspan="2" style="background-color:#fd6864;" | Device-specific factory data<br /><br />Factory DT overlay with revision,<br />batch, adc and crystal calibration data<br />and so on
|  
|-
|-
| SoM Eth0 RXCK || 242 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x000fffff
|  
|-
|-
| SoM Eth0 RXERR  || 243 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x00100000
| rowspan="4" style="background-color:#fd6864;" | /dev/mmcblk0p1<br />Device-specific factory data
|  
|-
|-
| SoM Eth0 RXDV || 244 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x00500000
| rowspan="2" style="background-color:#fd6864;" | hiddenfs<br /><br />Ext3 filesystem, currently holding device-specific<br />cryptographic certificates
|-
|-
| SoM Eth0 MDC || 245 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x005fffff
|-
|-
| SoM Eth0 MDIO || 246 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x010fffff
|  
|-
|-
| SoM Eth0 TXEN || 247 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x01100000
| rowspan="2" | /dev/mmcblk0p2<br />Rootfs partition
|  
|-
|-
| SoM Eth0 TXCK || 248 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x410fffff
|  
|-
|-
| SoM Eth0 CRS || 249 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x41100000
| rowspan="2" | /dev/mmcblk0p3<br />Rootfs partition
|  
|-
|-
| SoM LCD Backlight ON || 251 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x810fffff
|  
|-
|-
| RTC SCK || 226 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x81200000
| rowspan="2" | /dev/mmcblk0p5<br />Swap partition
|  
|-
|-
| RTC SDA  || 257 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x911fffff
|  
|-
|-
| RTC OUT  || 273 ||
| style="font-family:'Courier New', Courier, monospace !important;" | 0x91300000
| rowspan="2" | /dev/mmcblk0p6<br />/mnt/data partition
|  
|-
|-
| style="font-family:'Courier New', Courier, monospace !important;" | end
|
|}
|}

Текущая версия на 16:38, 3 ноября 2023

Введение

Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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 на клеммниках

Метка (label) Примечание
Выходы A1-A3, D1
A1 OUT Выход «открытый коллектор»
A2 OUT Выход «открытый коллектор»
A3 OUT Выход «открытый коллектор»
D1 OUT Выход «открытый коллектор»
Входы A1-A3, D1 (1 — нет сигнала)
A1 IN
A2 IN
A3 IN
D1 IN
Onewire
W1 1-wire/DI
W2 1-wire/DI

Имена GPIO боковых модулей WBIO

Для обращения к боковым модулям WBIO лучше использовать не номера GPIO, а так называемые «имена» или «метки».

При обращении нужно указать порядковый номер модуля. Нумерация начинается с единицы: EXT1_IN1 — первый дискретный вход первого модуля, EXT2_IN1 — первый дискретный вход второго модуля, EXT3_K4 — четвертый дискретный выход третьего модуля и так далее.

Как работать с GPIO и преобразовывать имена в номера, читайте в статье Работа с GPIO.

Таблица имён GPIO боковых модулей WBIO
Модуль Номера входов/выходов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
WBIO-DI-DR-14 DR1 DR2 DR3 DR4 DR5 DR6 DR7 DR8 DR9 DR10 DR11 DR12 DR13 DR14
WBIO-DI-DR-16 DR1 DR2 DR3 DR4 DR5 DR6 DR7 DR8 DR9 DR10 DR11 DR12 DR13 DR14 DR15 DR16
WBIO-DI-DR-8 DR1 DR2 DR3 DR4 DR5 DR6 DR7 DR8
WBIO-DI-HVD-16 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 IN9 IN10 IN11 IN12 IN13 IN14 IN15 IN16
WBIO-DI-HVD-8 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8
WBIO-DI-LVD-16 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 IN9 IN10 IN11 IN12 IN13 IN14 IN15 IN16
WBIO-DI-LVD-8 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8
WBIO-DI-WD-14 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 IN9 IN10 IN11 IN12 IN13 IN14
WBIO-DIO-TTL-8 TTL1 TTL2 TTL3 TTL4 TTL5 TTL6 TTL7 TTL8
WBIO-DO-HS-8 HS1 HS2 HS3 HS4 HS5 HS6 HS7 HS8
WBIO-DO-R10R-4 DIR1 ON1 DIR2 ON2 DIR3 ON3 DIR4 ON4
WBIO-DO-R1G-16 K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15 K16
WBIO-DO-R3A-4 R3A1 R3A2 R3A3 R3A4
WBIO-DO-RxA-8 R3A1 R3A2 R3A3 R3A4 R3A5 R3A6 R3A7 R3A8
WBIO-DO-SSR-8 K1 K2 K3 K4 K5 K6 K7 K8

Реализация 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

Сигналы на модулях расширения

Функция Примечание
MOD1
MOD1 RTS
MOD1 TX
MOD1 RX
MOD2
MOD2 RTS
MOD2 TX
MOD2 RX
MOD3
MOD3 RTS
MOD3 TX
MOD3 RX
MOD4
MOD4 RTS
MOD4 TX
MOD4 RX
MOD4 SPI MOSI
MOD4 SPI MISO
MOD4 SPI CLK
MOD4 SPI CS
GSM (WBC)
GSM Status Modem power status (input)
GSM PWRKEY Modem PWRKEY (output)
GSM ON On/OFF 5 V
SIM_SELECT 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) Примечание
BUZZER
Red LED Управление индикатором
Green LED
W1 UP
W2 UP
Pushbutton
USB0 ON
Wi-Fi ON
5VOut ON
VOut ON
RS-485-1 Termination
RS-485-1 Failsafe
RS-485-2 Termination
RS-485-2 Failsafe

Расположение данных на внутреннем накопителе

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