WB SH 3.5: GPIO List: различия между версиями
м (A.Degtyarev переименовал страницу WB SH 3.5: Список GPIO в WB SH 3.5: GPIO List без оставления перенаправления: Часть переводимой страницы WB SH 3.5: Список GPIO.) |
|||
(не показаны 24 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
=== | {{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 | |||
|- | |||
<!--T:6--> | |||
| Клеммник ADC2 || FET/ADC || 50 || 25 @ CON1 ||Выход "открытый коллектор"; ADC channel 1 | |||
|- | |||
<!--T:7--> | |||
| Клеммник ADC3 || FET/ADC || 57 || 22 @ CON1 ||Выход "открытый коллектор"; ADC channel 2 | |||
|- | |- | ||
| Клеммник | <!--T:8--> | ||
| Клеммник ADC4 || FET/ADC || 54 || 21 @ CON1 ||Выход "открытый коллектор"; ADC channel 3 | |||
|- | |- | ||
| | <!--T:9--> | ||
|} | |||
=== GPIO выведенные на клеммники === <!--T:10--> | |||
<!--T:11--> | |||
{| border="1" | |||
| клеммник || функция|| GPIO || вывод olinuxino || комментарии | |||
|- | |- | ||
| Клеммник | <!--T:12--> | ||
| Клеммник R1 || GPIO, вход резистивных датчиков || 16 || 19 @ CON1 || ADC channel 4 | |||
|- | |||
| Клеммник R2 || GPIO, вход резистивных датчиков || 7 || 18 @ CON1 || ADC channel 6, [[Pin_pull-up|можно активировать подтяжку]] | |||
|- | |||
| Клеммник R3 || GPIO, вход резистивных датчиков || 6 || 17 @ CON1 || ADC channel 7, [[Pin_pull-up|можно активировать подтяжку]] | |||
|- | |||
| Клеммник R4 || GPIO, вход резистивных датчиков || 5 || 16 @ CON1 || ADC channel 5, [[Pin_pull-up|можно активировать подтяжку]] | |||
|- | |- | ||
| Клеммник | |||
<!--T:13--> | |||
| Клеммник W1 || GPIO/1-wire || 4 || 15 @ CON1 || встроенная аппаратная подтяжка | |||
|- | |||
| Клеммник W2 || GPIO/1-wire || 2 || 13 @ CON1 || встроенная аппаратная подтяжка | |||
|- | |||
| Клеммник W3 || GPIO/1-wire || 1 || 12 @ CON1 || встроенная аппаратная подтяжка | |||
|- | |- | ||
<!--T:14--> | |||
|} | |} | ||
=== GPIO выведенные на разъемы === <!--T:15--> | |||
==== UEXT1 ==== | |||
{| border="1" | |||
|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 | |||
|- | |||
<!--T:16--> | |||
|} | |||
==== UEXT2 ==== <!--T:17--> | |||
{| border="1" | {| border="1" | ||
| | |Linux GPIO || || [[UEXT]] pin|| | ||
|- | |- | ||
| | <!--T:18--> | ||
| 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 | ||
|- | |- | ||
| | <!--T:19--> | ||
|} | |||
=== GPIO на реле === <!--T:20--> | |||
<!--T:21--> | |||
{| border="1" | |||
|Linux GPIO || || | |||
|- | |- | ||
| | | 246 || GPIO4 @ [[LAN951x]] || Relay 2 | ||
|- | |- | ||
| | | 247 || GPIO5 @ [[LAN951x]] || Relay 1 | ||
|- | |- | ||
|} | |} | ||
=== GPIO для внутреннего использования === | === GPIO для внутреннего использования === <!--T:22--> | ||
<!--T:23--> | |||
{| border="1" | {| border="1" | ||
|Linux GPIO || || | |Linux GPIO || || | ||
|- | |- | ||
| | | 34 || 3 @ CON1 || ADC MUX A | ||
|- | |- | ||
| 33 || 4 @ CON1 || ADC MUX B | | 33 || 4 @ CON1 || ADC MUX B | ||
|- | |- | ||
| | | 32 || 5 @ CON1 || ADC MUX C | ||
|- | |- | ||
<!--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 | ||
|- | |- | ||
Строка 70: | Строка 147: | ||
|- | |- | ||
| | <!--T:26--> | ||
| 36 || 7@ CON1 || [https://hasnet.supplies/static/RFM69H-V1.3.pdf RFM69H] IRQ | |||
|- | |- | ||
| 51 || 27@ CON1 || | | 51 || 27@ CON1 || RFM69H chip select | ||
|- | |- | ||
| | <!--T:27--> | ||
| 53 || 14@ CON1 || RFM69H DIO2 (raw i/o) | |||
|- | |||
<!--T:28--> | |||
| 35 || 6@ CON1 || [[NRF24L01]] chip select | |||
|- | |- | ||
| 37 || 8@ CON1 || [[NRF24L01]] enable | | 37 || 8@ CON1 || [[NRF24L01]] enable | ||
Строка 81: | Строка 165: | ||
<!--T:29--> | |||
| 92 || 24@ CON2 || [[MCP2515]] IRQ | | 92 || 24@ CON2 || [[MCP2515]] IRQ | ||
|- | |- | ||
Строка 87: | Строка 172: | ||
<!--T:30--> | |||
| 23 || 26@ CON2 || RTC I2C SCL | | 23 || 26@ CON2 || RTC I2C SCL | ||
|- | |- | ||
Строка 93: | Строка 179: | ||
| | <!--T:31--> | ||
| 245 || GPIO3 @ [[LAN951x]] || SIM900R power FET | |||
|- | |- | ||
| | | 248 || GPIO6 @ [[LAN951x]] || SIM900R power KEY | ||
|- | |- | ||
| | | 249 || GPIO7 @ [[LAN951x]] || SIM900R power status (input) | ||
|- | |- | ||
<!--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 | Зелёная пара клеммников | Полудуплексные порты. Трансиверы подключен к чипу 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