Wiren Board 7.2: Peripherals: различия между версиями
Matveevrj (обсуждение | вклад) |
|||
(не показано 26 промежуточных версий 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="3" | MOD1 | ||
|- | |- | ||
| | | MOD1 RTS || 36 || | ||
|- | |- | ||
| | | MOD1 TX || 226 || | ||
|- | |- | ||
| MOD1 RX || 227 || | |||
|- | |- | ||
| | ! colspan="3" | MOD2 | ||
|- | |- | ||
| | | MOD2 RTS || 84 || | ||
|- | |- | ||
| | | MOD2 TX || 268 || | ||
|- | |- | ||
| MOD2 RX || 269 || | |||
|- | |- | ||
| | ! colspan="3" | MOD3 | ||
|- | |- | ||
| | | MOD3 RTS || 138 || | ||
|- | |- | ||
| | | MOD3 TX || 266 || | ||
|- | |- | ||
| | | MOD3 RX || 267 || | ||
|- | |- | ||
| MOD4 | ! colspan="3" | MOD4 | ||
|- | |- | ||
| MOD4 | | MOD4 RTS || 270 || | ||
|- | |- | ||
| MOD4 | | MOD4 TX || 224 || | ||
|- | |- | ||
| MOD4 RX || 225 || | |||
|- | |- | ||
| | | MOD4 SPI MOSI || 64 || | ||
|- | |- | ||
| | | MOD4 SPI MISO || 65 || | ||
|- | |- | ||
| | | MOD4 SPI CLK || 66 || | ||
|- | |- | ||
| | | MOD4 SPI CS || 87 || | ||
|- | |- | ||
! colspan="3" | 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) | ||
| | |||
|- | |- | ||
|} | |} | ||
== Каналы АЦП == | |||
== Ножки для внутреннего использования == | == Ножки для внутреннего использования == | ||
Версия 12:31, 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) |