Wiren Board 4: GPIO List: различия между версиями

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


{| class="wikitable"
|'''Модель контроллера'''
|'''Название порта в Linux'''
|'''Разъём на контроллере'''
|'''Примечание'''
|-
| rowspan="2" |[[Wiren Board 4]]
|''/dev/ttyNSC0''
|Подписан ''RS-485-ISO''
|Изолированный порт, установлен терминатор
|-
|''/dev/ttyNSC1''
|
|Неизолированный порт, установлен терминатор
|-
|}
=== GPIO для транзисторов управления низковольтной нагрузкой  === <!--T:1-->
<!--T:2-->
{| border="1"
{| border="1"
| клеммник || функция|| GPIO  || вывод olinuxino || комментарии
| клеммник || функция|| GPIO  || вывод olinuxino || комментарии
|-
|-


| Клеммник ADC1  || FET/ADC ||  17 || 20 @ CON1  ||Выход "открытый коллектор"; ADC channel 3
<!--T:3-->
| Клеммник ADC1  || '''FET'''/ADC ||  17 || 20 @ CON1  ||Выход "открытый коллектор"; ADC channel 3
|-
|-


| Клеммник ADC2  || FET/ADC ||  7 || 18 @ CON1  ||Выход "открытый коллектор"; ADC channel 4
<!--T:4-->
| Клеммник ADC2  || '''FET'''/ADC ||  7 || 18 @ CON1  ||Выход "открытый коллектор"; ADC channel 4
|-
|-


| Клеммник ADC3  || FET/ADC ||  5 || 16 @ CON1  ||Выход "открытый коллектор"; ADC channel 6
<!--T:5-->
| Клеммник ADC3  || '''FET'''/ADC ||  5 || 16 @ CON1  ||Выход "открытый коллектор"; ADC channel 6
|-
|-




<!--T:6-->
| Клеммник ADC4 (out)  || '''FET'''/ADC/DI || 53  || 14 @ CON1  ||Выход "открытый коллектор"; ADC channel 0; цифровой вход
| Клеммник ADC4 (out)  || '''FET'''/ADC/DI || 53  || 14 @ CON1  ||Выход "открытый коллектор"; ADC channel 0; цифровой вход
|-
|-




| Клеммник ADC5 (out)  || '''FET'''/ADC/DI || 2  || 13 @ CON1  ||Выход "открытый коллектор"; ADC channel 1 ; цифровой вход
<!--T:7-->
| Клеммник ADC5 (out)  || '''FET'''/ADC/DI || 2  || 13 @ CON1  ||Выход "открытый коллектор"; ADC channel 1; цифровой вход
|-
|-


| Клеммник DR1 (out)  || FET/DI ||   ||  GPIO6@ [[LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:8-->
| Клеммник D1 (out)  || '''FET'''/DI || 248  ||  GPIO6@ [[Special:MyLanguage/LAN9514|LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-


| Клеммник DR2 (out)  || FET/DI ||   ||  GPIO5@ [[LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:9-->
| Клеммник D2 (out)  || '''FET'''/DI || 247 ||  GPIO5@ [[Special:MyLanguage/LAN9514|LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-




| Клеммник DR3 (out)  || FET/DI ||   ||  GPIO4@ [[LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:10-->
| Клеммник D3 (out)  || '''FET'''/DI || 246 ||  GPIO4@ [[Special:MyLanguage/LAN9514|LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-




| Клеммник DR4 (out)  || FET/DI ||   ||  GPIO3@ [[LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:11-->
| Клеммник D4 (out)  || '''FET'''/DI || 245  ||  GPIO3@ [[Special:MyLanguage/LAN9514|LAN9514]]  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-
|}
|}


=== GPIO на клеммниках  ===
=== GPIO на клеммниках  === <!--T:12-->


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


| Клеммник ADC4 (in)  || FET/ADC/'''DI'''  ||  123 || GPIO3 @ [[SC16IS752]]  ||Выход "открытый коллектор"; ADC channel 0; цифровой вход
<!--T:14-->
| Клеммник ADC4 (in)  || FET/ADC/'''DI'''  ||  123 || GPIO3 @ [[Special:MyLanguage/SC16IS752|SC16IS752]]  ||Выход "открытый коллектор"; ADC channel 0; цифровой вход
|-
|-


<!--T:15-->
| Клеммник ADC5 (in)  || FET/ADC/'''DI''' || 1  ||  12@CON1||Выход "открытый коллектор"; ADC channel 1; цифровой вход
| Клеммник ADC5 (in)  || FET/ADC/'''DI''' || 1  ||  12@CON1||Выход "открытый коллектор"; ADC channel 1; цифровой вход
|-
|-


| Клеммник R1  || GPIO, вход резистивных датчиков || ||  19 @ CON1 || ADC channel 7
<!--T:16-->
| Клеммник R1  || '''GPIO''', вход резистивных датчиков || 16 ||  19 @ CON1 || ADC channel 7
|-
|-
| Клеммник R2  || GPIO, вход резистивных датчиков ||  ||  17 @ CON1 || ADC channel 5
| Клеммник R2  || '''GPIO''', вход резистивных датчиков || 6 ||  17 @ CON1 || ADC channel 5 (подтянут к 3.3V (как?))
|-
|-






| Клеммник 1-WIRE1  || 1-wire/GPIO || 52 || 26 @ CON1 || встроенная подтяжка, 1-wire по-умолчанию
<!--T:17-->
| Клеммник 1-WIRE1  || '''1-wire/'''GPIO || 52 || 26 @ CON1 || встроенная подтяжка, 1-wire по-умолчанию
|-
|-
| Клеммник 1-WIRE1 || 1-wire/GPIO || 50 || 25 @ CON1 || встроенная подтяжка, 1-wire по-умолчанию
| Клеммник 1-WIRE2 || '''1-wire'''/GPIO || 50 || 25 @ CON1 || встроенная подтяжка, 1-wire по-умолчанию
|-
|-




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




=== GPIO для входов "сухой контакт"  === <!--T:19-->


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


| Клеммник DR1 (in)  || FET/DI ||   ||  7 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:21-->
| Клеммник D1 (in)  || FET/'''DI''' || 36  ||  7 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-


| Клеммник DR2 (in)  || FET/DI ||   ||  8 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:22-->
| Клеммник D2 (in)  || FET/'''DI''' || 37  ||  8 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-




| Клеммник DR3 (in)  || FET/DI ||   ||  9 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:23-->
| Клеммник D3 (in)  || FET/'''DI''' || 38 ||  9 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-




| Клеммник DR4 (in)  || FET/DI ||   ||  10 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
<!--T:24-->
| Клеммник D4 (in)  || FET/'''DI''' || 39  ||  10 @ CON1  ||Выход "открытый коллектор"; вход "сухой контакт"
|-
|-


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




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


<!--T:27-->
{| border="1"
{| border="1"
|Linux GPIO || ||  
|Linux GPIO ||вывод olinuxino || комментарии
|-
|-
|  33 || 4@CON1  ||  Relay 1
|  33 || 4@CON1  ||  Relay 2
|-
|-
|  34 || 5@CON1  ||  Relay 2
|  34 || 5@CON1  ||  Relay 1
|-
|-
|}
|}




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


=== GPIO для внутреннего использования ===
<!--T:29-->
 
{| border="1"
{| border="1"
|Linux GPIO || ||  
|Linux GPIO || ||  
Строка 115: Строка 161:




|   ||  ||  3.3V rail shutdown
<!--T:30-->
| 35  ||  6 @ CON1 ||  3.3V rail shutdown
|-
|-


<!--T:31-->
| 3  || 12@CON2 ||  sc16is752 chip select
| 3  || 12@CON2 ||  sc16is752 chip select
|-
|-
Строка 123: Строка 171:
|-
|-


| ||   ||  [[RFM69H]] IRQ
<!--T:32-->
| 92 || 24 @ CON2 ||  [[Special:MyLanguage/RFM69H|RFM69H]] IRQ
|-
|-
|   ||   ||  [[RFM69H]] chip select
| || 15 @ CON1 ||  [[Special:MyLanguage/RFM69H|RFM69H]] chip select
|-
|-
 
|  91 ||  25 @ CON2 ||  [[Special:MyLanguage/RFM69H|RFM69H]] _DIO2
|  ||  ||  [[NRF24L01]] chip select
|-
|  ||  ||  [[Special:MyLanguage/NRF24L01|NRF24L01]] chip select
|-
|-
|  ||  ||  [[NRF24L01]] enable
|  ||  ||  [[Special:MyLanguage/NRF24L01|NRF24L01]] enable
|-
|-




|  120 || GPIO0 @ [[SC16IS752]]  ||  RS-485 isolated supply enable
<!--T:33-->
|  120 || GPIO0 @ [[Special:MyLanguage/SC16IS752|SC16IS752]]  ||  RS-485 isolated supply enable
|-
|-




|  124 || GPIO4 @ [[SC16IS752]]  ||  SIM900R power FET
<!--T:34-->
|  124 || GPIO4 @ [[Special:MyLanguage/SC16IS752|SC16IS752]]  ||  SIM900R power FET
|-
|-
|  125 || GPIO5 @ [[SC16IS752]]  ||  SIM900R power KEY
|  125 || GPIO5 @ [[Special:MyLanguage/SC16IS752|SC16IS752]]  ||  SIM900R power KEY
|-
|-




|  249 || GPIO7 @ [[LAN951x]]  ||  SIM900R power status (input)
<!--T:35-->
|  249 || GPIO7 @ [[Special:MyLanguage/LAN951x|LAN951x]]  ||  SIM900R power status (input)
|-
|-






<!--T:36-->
| 32 || 3@CON1  || watchdog output
| 32 || 3@CON1  || watchdog output
|-
| 60 / PWM2  || 28@CON2  || Buzzer
|-
|-


<!--T:37-->
|  126  || GPIO6 @ SC16IS752  ||  Red LED
|-
|  127  || GPIO7 @ SC16IS752  ||  Green LED
|-
<!--T:38-->
|}
|}




=== GPIO на разъёме расширения === <!--T:39-->
<!--T:40-->
[[Файл:Shield2.png|300px|thumb|right|[[Wiren Board 4 |Wiren Board 4 ]]]]
<!--T:41-->
{| border="1"
|Linux GPIO || ||  ||
|-
|55  || 7  @ CON2 || CE || i2c scl, подтяжка к 3.3V
|-
|56  || 8  @ CON2 || CSN || i2c sda, подтяжка к 3.3V
|-
| 23 ||  26 @ CON2 || IRQ ||
|-
<!--T:42-->
|}


См. также [[Работа с GPIO]]
<!--T:43-->
См. также [[Special:MyLanguage/Работа с GPIO|Работа с GPIO]]
</translate>

Текущая версия на 10:35, 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 4 /dev/ttyNSC0 Подписан RS-485-ISO Изолированный порт, установлен терминатор
/dev/ttyNSC1 Неизолированный порт, установлен терминатор


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

клеммник функция GPIO вывод olinuxino комментарии
Клеммник ADC1 FET/ADC 17 20 @ CON1 Выход "открытый коллектор"; ADC channel 3
Клеммник ADC2 FET/ADC 7 18 @ CON1 Выход "открытый коллектор"; ADC channel 4
Клеммник ADC3 FET/ADC 5 16 @ CON1 Выход "открытый коллектор"; ADC channel 6
Клеммник ADC4 (out) FET/ADC/DI 53 14 @ CON1 Выход "открытый коллектор"; ADC channel 0; цифровой вход
Клеммник ADC5 (out) FET/ADC/DI 2 13 @ CON1 Выход "открытый коллектор"; ADC channel 1; цифровой вход
Клеммник D1 (out) FET/DI 248 GPIO6@ LAN9514 Выход "открытый коллектор"; вход "сухой контакт"
Клеммник D2 (out) FET/DI 247 GPIO5@ LAN9514 Выход "открытый коллектор"; вход "сухой контакт"
Клеммник D3 (out) FET/DI 246 GPIO4@ LAN9514 Выход "открытый коллектор"; вход "сухой контакт"
Клеммник D4 (out) FET/DI 245 GPIO3@ LAN9514 Выход "открытый коллектор"; вход "сухой контакт"

GPIO на клеммниках

клеммник функция GPIO вывод olinuxino комментарии
Клеммник ADC4 (in) FET/ADC/DI 123 GPIO3 @ SC16IS752 Выход "открытый коллектор"; ADC channel 0; цифровой вход
Клеммник ADC5 (in) FET/ADC/DI 1 12@CON1 Выход "открытый коллектор"; ADC channel 1; цифровой вход
Клеммник R1 GPIO, вход резистивных датчиков 16 19 @ CON1 ADC channel 7
Клеммник R2 GPIO, вход резистивных датчиков 6 17 @ CON1 ADC channel 5 (подтянут к 3.3V (как?))
Клеммник 1-WIRE1 1-wire/GPIO 52 26 @ CON1 встроенная подтяжка, 1-wire по-умолчанию
Клеммник 1-WIRE2 1-wire/GPIO 50 25 @ CON1 встроенная подтяжка, 1-wire по-умолчанию


GPIO для входов "сухой контакт"

клеммник функция GPIO вывод olinuxino комментарии
Клеммник D1 (in) FET/DI 36 7 @ CON1 Выход "открытый коллектор"; вход "сухой контакт"
Клеммник D2 (in) FET/DI 37 8 @ CON1 Выход "открытый коллектор"; вход "сухой контакт"
Клеммник D3 (in) FET/DI 38 9 @ CON1 Выход "открытый коллектор"; вход "сухой контакт"
Клеммник D4 (in) FET/DI 39 10 @ CON1 Выход "открытый коллектор"; вход "сухой контакт"


GPIO на реле

Linux GPIO вывод olinuxino комментарии
33 4@CON1 Relay 2
34 5@CON1 Relay 1


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

Linux GPIO
51 27 @ CON1 ADC MUX A
57 22 @ CON1 ADC MUX B
54 21 @ CON1 ADC MUX C
35 6 @ CON1 3.3V rail shutdown
3 12@CON2 sc16is752 chip select
25 27@CON2 IRQ sc16is752
92 24 @ CON2 RFM69H IRQ
4 15 @ CON1 RFM69H chip select
91 25 @ CON2 RFM69H _DIO2
NRF24L01 chip select
NRF24L01 enable
120 GPIO0 @ SC16IS752 RS-485 isolated supply enable
124 GPIO4 @ SC16IS752 SIM900R power FET
125 GPIO5 @ SC16IS752 SIM900R power KEY
249 GPIO7 @ LAN951x SIM900R power status (input)
32 3@CON1 watchdog output
60 / PWM2 28@CON2 Buzzer
126 GPIO6 @ SC16IS752 Red LED
127 GPIO7 @ SC16IS752 Green LED


GPIO на разъёме расширения

Linux GPIO
55 7 @ CON2 CE i2c scl, подтяжка к 3.3V
56 8 @ CON2 CSN i2c sda, подтяжка к 3.3V
23 26 @ CON2 IRQ

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