WB SH 3.5: Список GPIO

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Введение

Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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 в Linux читайте в документации к ядру. Также можно почитать устаревшую инструкцию в нашей Wiki — Работа с GPIO.

Для других версий контроллера смотрите Таблицы GPIO разных версий контроллера.

Реализация портов RS-485

Модель контроллера Название порта в Linux Разъём на контроллере Примечание
Wiren Board Smart Home 3.5 /dev/ttyNSC0 Зелёная пара клеммников
Перемычки терминаторов в Wiren Board Smart Home 3.5
Полудуплексные порты. Трансиверы подключен к чипу SC16IS752.
На плате установлены терминаторы между линиями A и В, их можно отклчить, распаяв перемычки (по умолчанию запаяны) - смотрите фото
/dev/ttyNSC1 Синяя пара клеммников

GPIO для транзисторов управления низковольтной нагрузкой

клеммник функция GPIO вывод olinuxino комментарии
Клеммник ADC1 FET/ADC 52 26 @ CON1 Выход "открытый коллектор"; ADC channel 0
Клеммник ADC2 FET/ADC 50 25 @ CON1 Выход "открытый коллектор"; ADC channel 1
Клеммник ADC3 FET/ADC 57 22 @ CON1 Выход "открытый коллектор"; ADC channel 2
Клеммник ADC4 FET/ADC 54 21 @ CON1 Выход "открытый коллектор"; ADC channel 3

GPIO выведенные на клеммники

клеммник функция GPIO вывод olinuxino комментарии
Клеммник R1 GPIO, вход резистивных датчиков 16 19 @ CON1 ADC channel 4
Клеммник R2 GPIO, вход резистивных датчиков 7 18 @ CON1 ADC channel 6, можно активировать подтяжку
Клеммник R3 GPIO, вход резистивных датчиков 6 17 @ CON1 ADC channel 7, можно активировать подтяжку
Клеммник R4 GPIO, вход резистивных датчиков 5 16 @ CON1 ADC channel 5, можно активировать подтяжку
Клеммник W1 GPIO/1-wire 4 15 @ CON1 встроенная аппаратная подтяжка
Клеммник W2 GPIO/1-wire 2 13 @ CON1 встроенная аппаратная подтяжка
Клеммник W3 GPIO/1-wire 1 12 @ CON1 встроенная аппаратная подтяжка

GPIO выведенные на разъемы

UEXT1

Linux GPIO UEXT pin
38 9 @ CON1 UEXT SPI CS 10
55 7 @ CON2 UEXT I2C SCL 5
56 8 @ CON2 UEXT I2C SDA 6

UEXT2

Linux GPIO UEXT pin
122 CDB@SC16IS752 UEXT I2C SCL 5
123 RIB@SC16IS752 UEXT I2C SDA 6
120 DSRB@SC16IS752 UEXT SPI MISO 7
121 DTRB@SC16IS752 UEXT SPI MOSI 8

GPIO на реле

Linux GPIO
246 GPIO4 @ LAN951x Relay 2
247 GPIO5 @ LAN951x Relay 1


GPIO для внутреннего использования

Linux GPIO
34 3 @ CON1 ADC MUX A
33 4 @ CON1 ADC MUX B
32 5 @ CON1 ADC MUX C
39 10@ CON1 3.3V rail shutdown
3 12 @ CON2 sc16is752 chip select
17 20 @ CON1 IRQ sc16is752
36 7@ CON1 RFM69H IRQ
51 27@ CON1 RFM69H chip select
53 14@ CON1 RFM69H DIO2 (raw i/o)
35 6@ CON1 NRF24L01 chip select
37 8@ CON1 NRF24L01 enable
92 24@ CON2 MCP2515 IRQ
91 25@ CON2 MCP2515 chip select
23 26@ CON2 RTC I2C SCL
25 27@ CON2 RTC I2C SDA
245 GPIO3 @ LAN951x SIM900R power FET
248 GPIO6 @ LAN951x SIM900R power KEY
249 GPIO7 @ LAN951x SIM900R power status (input)

См. также Работа с GPIO