WB SH 3.5: GPIO List: различия между версиями

Материал из Wiren Board
м (A.Degtyarev переименовал страницу WB SH 3.5: Список GPIO в WB SH 3.5: GPIO List без оставления перенаправления: Часть переводимой страницы WB SH 3.5: Список GPIO.)
 
(не показано 9 промежуточных версий 3 участников)
Строка 1: Строка 1:
=== GPIO для транзисторов управления низковольтной нагрузкой ===
{{Wbincludes: GPIO}}
=== Реализация портов RS-485 === <!--T:1-->


<!--T:2-->
{| class="wikitable"
|'''Модель контроллера'''
|'''Название порта в Linux'''
|'''Разъём на контроллере'''
|'''Примечание'''
|-
| rowspan="2" |[[Wiren Board Smart Home 3.5]]
|''/dev/ttyNSC0''
|Зелёная пара клеммников
| rowspan="2" |[[Файл:Перемычки.png|thumb|200px|Перемычки терминаторов в Wiren Board Smart Home 3.5]] Полудуплексные порты. Трансиверы подключен к чипу [[SC16IS752]]. <br> На плате установлены терминаторы между линиями A и В, их можно отклчить, распаяв перемычки (по умолчанию запаяны) - смотрите фото
|-
|''/dev/ttyNSC1''
|Синяя пара клеммников
|-
|}
=== GPIO для транзисторов управления низковольтной нагрузкой === <!--T:3-->
<!--T:4-->
{| border="1"
{| border="1"
| клеммник || функция|| GPIO  || вывод olinuxino || комментарии
| клеммник || функция|| GPIO  || вывод olinuxino || комментарии
|-
|-


<!--T:5-->
| Клеммник ADC1 || FET/ADC ||  52 || 26 @ CON1  ||Выход "открытый коллектор"; ADC channel 0
| Клеммник ADC1 || FET/ADC ||  52 || 26 @ CON1  ||Выход "открытый коллектор"; ADC channel 0
|-
|-


<!--T:6-->
| Клеммник ADC2 || FET/ADC ||  50 || 25 @ CON1  ||Выход "открытый коллектор"; ADC channel 1
| Клеммник ADC2 || FET/ADC ||  50 || 25 @ CON1  ||Выход "открытый коллектор"; ADC channel 1
|-
|-


<!--T:7-->
| Клеммник ADC3 || FET/ADC ||  57 || 22 @ CON1  ||Выход "открытый коллектор"; ADC channel 2
| Клеммник ADC3 || FET/ADC ||  57 || 22 @ CON1  ||Выход "открытый коллектор"; ADC channel 2
|-
|-


<!--T:8-->
| Клеммник ADC4 || FET/ADC ||  54 || 21 @ CON1  ||Выход "открытый коллектор"; ADC channel 3
| Клеммник ADC4 || FET/ADC ||  54 || 21 @ CON1  ||Выход "открытый коллектор"; ADC channel 3
|-
|-


<!--T:9-->
|}
|}


=== GPIO выведенные на клеммники ===
=== GPIO выведенные на клеммники === <!--T:10-->


<!--T:11-->
{| border="1"
{| border="1"
| клеммник  || функция|| GPIO  || вывод olinuxino || комментарии
| клеммник  || функция|| GPIO  || вывод olinuxino || комментарии
|-
|-


<!--T:12-->
| Клеммник R1  || GPIO, вход резистивных датчиков || 16 ||  19 @ CON1 || ADC channel 4
| Клеммник R1  || GPIO, вход резистивных датчиков || 16 ||  19 @ CON1 || ADC channel 4
|-
|-
Строка 35: Строка 63:




<!--T:13-->
| Клеммник W1  || GPIO/1-wire || 4 || 15 @ CON1 || встроенная аппаратная подтяжка
| Клеммник W1  || GPIO/1-wire || 4 || 15 @ CON1 || встроенная аппаратная подтяжка
|-
|-
Строка 42: Строка 71:
|-
|-


<!--T:14-->
|}
|}


=== GPIO выведенные на разъемы ===
=== GPIO выведенные на разъемы === <!--T:15-->
==== UEXT1 ====
==== UEXT1 ====
{| border="1"
{| border="1"
Строка 57: Строка 87:




<!--T:16-->
|}
|}


==== UEXT2 ====
==== UEXT2 ==== <!--T:17-->
{| border="1"
{| border="1"
|Linux GPIO || || [[UEXT]] pin||
|Linux GPIO || || [[UEXT]] pin||
|-
|-


<!--T:18-->
|  122 ||  CDB@[[SC16IS752]] || UEXT I2C SCL  || 5  
|  122 ||  CDB@[[SC16IS752]] || UEXT I2C SCL  || 5  
|-
|-
Строка 74: Строка 106:




<!--T:19-->
|}
|}


=== GPIO на реле ===
=== GPIO на реле === <!--T:20-->


<!--T:21-->
{| border="1"
{| border="1"
|Linux GPIO || ||  
|Linux GPIO || ||  
Строка 89: Строка 123:




=== GPIO для внутреннего использования ===
=== GPIO для внутреннего использования === <!--T:22-->


<!--T:23-->
{| border="1"
{| border="1"
|Linux GPIO || ||  
|Linux GPIO || ||  
Строка 102: Строка 137:




<!--T:24-->
|  39 ||  10@ CON1 ||  3.3V rail shutdown
|  39 ||  10@ CON1 ||  3.3V rail shutdown
|-
|-


<!--T:25-->
| 3 || 12 @ CON2 ||  sc16is752 chip select
| 3 || 12 @ CON2 ||  sc16is752 chip select
|-
|-
Строка 110: Строка 147:
|-
|-


| 36 ||  7@ CON1 ||  [[RFM69H]] IRQ
<!--T:26-->
| 36 ||  7@ CON1 ||  [https://hasnet.supplies/static/RFM69H-V1.3.pdf RFM69H] IRQ
|-
|-
| 51  ||  27@ CON1 ||  [[RFM69H]] chip select
| 51  ||  27@ CON1 ||  RFM69H chip select
|-
|-


<!--T:27-->
| 53  ||  14@ CON1 ||  RFM69H DIO2 (raw i/o)
|-
<!--T:28-->
| 35  ||  6@ CON1 ||  [[NRF24L01]] chip select
| 35  ||  6@ CON1 ||  [[NRF24L01]] chip select
|-
|-
Строка 121: Строка 165:




<!--T:29-->
| 92 ||  24@ CON2 ||  [[MCP2515]] IRQ
| 92 ||  24@ CON2 ||  [[MCP2515]] IRQ
|-
|-
Строка 127: Строка 172:




<!--T:30-->
|  23 ||  26@ CON2 ||  RTC I2C SCL
|  23 ||  26@ CON2 ||  RTC I2C SCL
|-
|-
Строка 133: Строка 179:




<!--T:31-->
|  245 || GPIO3 @ [[LAN951x]]  ||  SIM900R power FET
|  245 || GPIO3 @ [[LAN951x]]  ||  SIM900R power FET
|-
|-
Строка 141: Строка 188:




<!--T:32-->
|}
|}


 
<!--T:33-->
 
См. также [[Работа с GPIO]]
См. также [[Работа с 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 Зелёная пара клеммников
Перемычки терминаторов в 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