WB SH 3.5: GPIO List: различия между версиями
м (A.Degtyarev переименовал страницу WB SH 3.5: Список GPIO в WB SH 3.5: GPIO List без оставления перенаправления: Часть переводимой страницы WB SH 3.5: Список GPIO.) |
м (A.Degtyarev переименовал страницу WB SH 3.5: Список GPIO в WB SH 3.5: GPIO List без оставления перенаправления: Часть переводимой страницы WB SH 3.5: Список GPIO.) |
(нет различий)
|
Текущая версия на 10:30, 6 сентября 2022
Введение
Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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
, или в разделе ниже.
Реализация портов RS-485
Модель контроллера | Название порта в Linux | Разъём на контроллере | Примечание |
Wiren Board Smart Home 3.5 | /dev/ttyNSC0 | Зелёная пара клеммников | Полудуплексные порты. Трансиверы подключен к чипу 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