Wiren Board 5.5: GPIO List: различия между версиями
м (A.Degtyarev переименовал страницу Wiren Board 5.5:Список GPIO в Wiren Board 5.5: GPIO List без оставления перенаправления: Часть переводимой страницы Wiren Board 5.5:Список GPIO.) |
|||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
<!--T:30--> | |||
Статья описывает подключение встроенной периферии к сигналам процессора для '''версии Wiren Board 5 (ревизии 5.5, 5.6, 5.6.1)'''. | Статья описывает подключение встроенной периферии к сигналам процессора для '''версии Wiren Board 5 (ревизии 5.5, 5.6, 5.6.1)'''. | ||
{{Wbincludes: GPIO}} | |||
== Изменения по сравнению с версией 5. | == Изменения по сравнению с версией 5.3: == <!--T:31--> | ||
<!--T:32--> | |||
1. Поменяны местами WATCHDOG_IN (37) и MOD1_SCL (35) | 1. Поменяны местами WATCHDOG_IN (37) и MOD1_SCL (35) | ||
<!--T:33--> | |||
2. SDA на MOD1 перекочевала на 11 ножку. | 2. SDA на MOD1 перекочевала на 11 ножку. | ||
<!--T:34--> | |||
3. SPI теперь общий на всех трех разъемах (SSP2), chip selectы разные. | 3. SPI теперь общий на всех трех разъемах (SSP2), chip selectы разные. | ||
<!--T:35--> | |||
4. CS (MOD1) поменялся с 11 на 12 ножку. | 4. CS (MOD1) поменялся с 11 на 12 ножку. | ||
<!--T:36--> | |||
5. CS (MOD2) поменялся с 12 на 23 ножку. | 5. CS (MOD2) поменялся с 12 на 23 ножку. | ||
<!--T:37--> | |||
6. CS (MOD3) - 21 ножка. | 6. CS (MOD3) - 21 ножка. | ||
<!--T:38--> | |||
7. Управление питанием MOD3 - 15 ножка | 7. Управление питанием MOD3 - 15 ножка | ||
<!--T:39--> | |||
8. Порт GSM получил RTS (ножка 57) и CTS (ножка 59). | 8. Порт GSM получил RTS (ножка 57) и CTS (ножка 59). | ||
<!--T:40--> | |||
9. /dev/ttyAPP4 порт RS-485 на клеммниках RS-485/CAN перешел на ножки 9 (TX) и 13 (RX), RTS остался на 78. | 9. /dev/ttyAPP4 порт RS-485 на клеммниках RS-485/CAN перешел на ножки 9 (TX) и 13 (RX), RTS остался на 78. | ||
=== АЦП === | === АЦП === <!--T:41--> | ||
<!--T:42--> | |||
{| border="1" | {| border="1" | ||
| клеммник || функция|| вывод sodim || GPIO ||вывод imx287 || комментарии | | клеммник || функция|| вывод sodim || GPIO ||вывод imx287 || комментарии | ||
Строка 46: | Строка 61: | ||
|} | |} | ||
=== GPIO на клеммниках === | === GPIO на клеммниках === <!--T:43--> | ||
<!--T:44--> | |||
{| border="1" | {| border="1" | ||
| клеммник || функция|| вывод sodim || GPIO ||вывод imx287 || комментарии | | клеммник || функция|| вывод sodim || GPIO ||вывод imx287 || комментарии | ||
|- | |- | ||
<!--T:45--> | |||
| A1 (in) || FET/ADC/'''DI''' || 126 || 0-6 || U6 || | | A1 (in) || FET/ADC/'''DI''' || 126 || 0-6 || U6 || | ||
|- | |- | ||
<!--T:46--> | |||
| A2 (in) || R/ADC/'''DI''' || 124 || 0-7 || T6 || | | A2 (in) || R/ADC/'''DI''' || 124 || 0-7 || T6 || | ||
|- | |- | ||
<!--T:47--> | |||
| A3 (in) || FET/ADC/'''DI''' || 122 || 0-28 || L9 || | | A3 (in) || FET/ADC/'''DI''' || 122 || 0-28 || L9 || | ||
|- | |- | ||
<!--T:48--> | |||
| A4 (in) || R/ADC/'''DI''' || 106 || 0-27 || P7 || | | A4 (in) || R/ADC/'''DI''' || 106 || 0-27 || P7 || | ||
|- | |- | ||
<!--T:49--> | |||
| R2 (in) || FET/ADC/'''DI''' || 130 || 0-4 || T7 || | | R2 (in) || FET/ADC/'''DI''' || 130 || 0-4 || T7 || | ||
|- | |- | ||
<!--T:50--> | |||
| R1 (in) || FET/ADC/'''DI''' || 128 || 0-5 || R7 || | | R1 (in) || FET/ADC/'''DI''' || 128 || 0-5 || R7 || | ||
|- | |- | ||
<!--T:51--> | |||
|} | |} | ||
=== GPIO для транзисторов === | === GPIO для транзисторов === <!--T:52--> | ||
<!--T:53--> | |||
{| border="1" | {| border="1" | ||
| клеммник || функция|| вывод sodim || GPIO ||вывод imx287 || комментарии | | клеммник || функция|| вывод sodim || GPIO ||вывод imx287 || комментарии | ||
|- | |- | ||
<!--T:54--> | |||
| A1 (out) || ADC/'''FET'''/DI || 104 || 0-26 || P6 ||Выход "открытый коллектор"; | | A1 (out) || ADC/'''FET'''/DI || 104 || 0-26 || P6 ||Выход "открытый коллектор"; | ||
|- | |- | ||
<!--T:55--> | |||
| A2 (out) || ADC/'''FET'''/DI || 102 || 0-16 || N7 ||Выход "открытый коллектор"; | | A2 (out) || ADC/'''FET'''/DI || 102 || 0-16 || N7 ||Выход "открытый коллектор"; | ||
|- | |- | ||
<!--T:56--> | |||
| A3 (out) || ADC/'''FET'''/DI || 100 || 0-24 || R6 ||Выход "открытый коллектор"; | | A3 (out) || ADC/'''FET'''/DI || 100 || 0-24 || R6 ||Выход "открытый коллектор"; | ||
|- | |- | ||
<!--T:57--> | |||
| A4 (out) || ADC/'''FET'''/DI || 98 || 0-20 || N6 ||Выход "открытый коллектор"; | | A4 (out) || ADC/'''FET'''/DI || 98 || 0-20 || N6 ||Выход "открытый коллектор"; | ||
|- | |- | ||
<!--T:58--> | |||
|} | |} | ||
Строка 102: | Строка 131: | ||
<!--T:59--> | |||
| 86 || 3-20 | | 86 || 3-20 | ||
||| G7 || 1-wire | ||| G7 || 1-wire | ||
Строка 151: | Строка 181: | ||
|- | |- | ||
| 197 || 3-6 | | 197 || 3-6 | ||
||| K5|| STAT1 ( | ||| K5|| STAT1 (BATTERY_CHARGING) | ||
|- | |- | ||
| 198 || 1-30 | | 198 || 1-30 | ||
||| N1 || STAT2 ( | ||| N1 || STAT2 (BATTERY_PRESENT) | ||
|- | |- | ||
| 77 || 1-27 | | 77 || 1-27 | ||
Строка 164: | Строка 194: | ||
|} | |} | ||
=== GPIO на разъёме расширения MOD1 === | === GPIO на разъёме расширения MOD1 === <!--T:60--> | ||
<!--T:61--> | |||
[[Файл:Shild.png|300px|thumb|right| Распиновка разъема под модули расширения]] | [[Файл:Shild.png|300px|thumb|right| Распиновка разъема под модули расширения]] | ||
<!--T:62--> | |||
{| border="1" | {| border="1" | ||
| вывод sodim || GPIO | | вывод sodim || GPIO | ||
Строка 174: | Строка 206: | ||
|- | |- | ||
<!--T:63--> | |||
| - || - | | - || - | ||
||| - | ||| - | ||
Строка 179: | Строка 212: | ||
|- | |- | ||
<!--T:64--> | |||
|11 || 2-27 | |11 || 2-27 | ||
|91|| D2 | |91|| D2 | ||
Строка 188: | Строка 222: | ||
|- | |- | ||
<!--T:65--> | |||
|14 || 2-17 | |14 || 2-17 | ||
|81|| C3 | |81|| C3 | ||
Строка 201: | Строка 236: | ||
|- | |- | ||
<!--T:66--> | |||
| - || - | | - || - | ||
||| - | ||| - | ||
Строка 214: | Строка 250: | ||
|- | |- | ||
<!--T:67--> | |||
| 30 ||3-9 | | 30 ||3-9 | ||
|105|| F5 | |105|| F5 | ||
Строка 229: | Строка 266: | ||
<!--T:68--> | |||
|} | |} | ||
=== GPIO на разъёме расширения MOD2 === | === GPIO на разъёме расширения MOD2 === <!--T:69--> | ||
<!--T:70--> | |||
{| border="1" | {| border="1" | ||
| вывод sodim || GPIO | | вывод sodim || GPIO | ||
Строка 240: | Строка 279: | ||
|- | |- | ||
<!--T:71--> | |||
| - || - | | - || - | ||
||| - | ||| - | ||
Строка 289: | Строка 329: | ||
|- | |- | ||
<!--T:72--> | |||
|} | |} | ||
=== GPIO на разъёме расширения MOD3 === | === GPIO на разъёме расширения MOD3 === <!--T:73--> | ||
<!--T:74--> | |||
{| border="1" | {| border="1" | ||
| вывод sodim || GPIO | | вывод sodim || GPIO | ||
Строка 299: | Строка 341: | ||
|- | |- | ||
<!--T:75--> | |||
| - || - | | - || - | ||
||| -|| 3.3V || +3.3V | ||| -|| 3.3V || +3.3V | ||
Строка 312: | Строка 355: | ||
|- | |- | ||
<!--T:76--> | |||
|21 || 2-21 | |21 || 2-21 | ||
|85|| D4 || CS || GPIO, SPI Slave Select (SSP2) | |85|| D4 || CS || GPIO, SPI Slave Select (SSP2) | ||
|- | |- | ||
<!--T:77--> | |||
|} | |} | ||
=== GPIO на разъёме расширения ввода-вывода === | === GPIO на разъёме расширения ввода-вывода === <!--T:78--> | ||
<!--T:79--> | |||
{| border="1" | {| border="1" | ||
| вывод sodim || GPIO ||вывод imx287 || пин || функция | | вывод sodim || GPIO ||вывод imx287 || пин || функция | ||
Строка 332: | Строка 378: | ||
|} | |} | ||
<!--T:80--> | |||
См. также [[Special:MyLanguage/Работа с GPIO|Работа с GPIO]] | См. также [[Special:MyLanguage/Работа с GPIO|Работа с GPIO]] | ||
=== Радио модуль === | === Радио модуль === <!--T:81--> | ||
<!--T:82--> | |||
Подключен по SPI1. | Подключен по SPI1. | ||
<!--T:83--> | |||
{| border="1" | {| border="1" | ||
| вывод sodim || GPIO ||вывод imx287 || пин || функция | | вывод sodim || GPIO ||вывод imx287 || пин || функция | ||
Строка 357: | Строка 406: | ||
=== FFC-разъём расширения === | === FFC-разъём расширения === <!--T:84--> | ||
<!--T:85--> | |||
'''Разъём не напаян на устройствах в стандартной комплектации''' | '''Разъём не напаян на устройствах в стандартной комплектации''' | ||
<!--T:86--> | |||
{| border="1" | {| border="1" | ||
| вывод sodim || GPIO ||вывод imx287 || пин || функция | | вывод sodim || GPIO ||вывод imx287 || пин || функция | ||
|- | |- | ||
<!--T:87--> | |||
|- || - || - || 1 || +3.3V | |- || - || - || 1 || +3.3V | ||
|- | |- | ||
Строка 398: | Строка 450: | ||
|- | |- | ||
<!--T:88--> | |||
|} | |} | ||
=== Последовательные порты === | === Последовательные порты === <!--T:89--> | ||
{| class="wikitable" | {| class="wikitable" | ||
!Порт | !Порт | ||
Строка 421: | Строка 474: | ||
|} | |} | ||
<!--T:90--> | |||
Справочная информация по тестовым ревизиям: | Справочная информация по тестовым ревизиям: | ||
* [[Wiren Board 5: Список GPIO (rev 5.1)]] | * [[Wiren Board 5: Список GPIO (rev 5.1)]] | ||
</translate> |
Текущая версия на 11:07, 6 сентября 2022
Статья описывает подключение встроенной периферии к сигналам процессора для версии Wiren Board 5 (ревизии 5.5, 5.6, 5.6.1).
Введение
Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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
, или в разделе ниже.
Изменения по сравнению с версией 5.3:
1. Поменяны местами WATCHDOG_IN (37) и MOD1_SCL (35)
2. SDA на MOD1 перекочевала на 11 ножку.
3. SPI теперь общий на всех трех разъемах (SSP2), chip selectы разные.
4. CS (MOD1) поменялся с 11 на 12 ножку.
5. CS (MOD2) поменялся с 12 на 23 ножку.
6. CS (MOD3) - 21 ножка.
7. Управление питанием MOD3 - 15 ножка
8. Порт GSM получил RTS (ножка 57) и CTS (ножка 59).
9. /dev/ttyAPP4 порт RS-485 на клеммниках RS-485/CAN перешел на ножки 9 (TX) и 13 (RX), RTS остался на 78.
АЦП
клеммник | функция | вывод sodim | GPIO | вывод imx287 | комментарии |
A1 | FET/ADC/DI | 111 | LRADC1 | C9 | |
A2 | FET/ADC/DI | 109 | LRADC2 | C8 | |
A3 | FET/ADC/DI | 107 | LRADC3 | D9 | |
A4 | FET/ADC/DI | 105 | LRADC4 | D13 | |
R1 | R/ADC/DI | 101 | LRADC6 | C14 | |
R2 | R/ADC/DI | 103 | LRADC0 | D15 |
GPIO на клеммниках
клеммник | функция | вывод sodim | GPIO | вывод imx287 | комментарии |
A1 (in) | FET/ADC/DI | 126 | 0-6 | U6 | |
A2 (in) | R/ADC/DI | 124 | 0-7 | T6 | |
A3 (in) | FET/ADC/DI | 122 | 0-28 | L9 | |
A4 (in) | R/ADC/DI | 106 | 0-27 | P7 | |
R2 (in) | FET/ADC/DI | 130 | 0-4 | T7 | |
R1 (in) | FET/ADC/DI | 128 | 0-5 | R7 |
GPIO для транзисторов
клеммник | функция | вывод sodim | GPIO | вывод imx287 | комментарии |
A1 (out) | ADC/FET/DI | 104 | 0-26 | P6 | Выход "открытый коллектор"; |
A2 (out) | ADC/FET/DI | 102 | 0-16 | N7 | Выход "открытый коллектор"; |
A3 (out) | ADC/FET/DI | 100 | 0-24 | R6 | Выход "открытый коллектор"; |
A4 (out) | ADC/FET/DI | 98 | 0-20 | N6 | Выход "открытый коллектор"; |
GPIO для внутреннего использования
вывод sodim | GPIO | GPIO number | вывод imx287 | функция |
86 | 3-20 | G7 | 1-wire | |
84 | 3-22 | F7 | транзисторная подтяжка 1-wire к верху | |
52 | 3-29 (PWM4) | 125 | E10 | irda out |
61 | 3-14 | L6 | 3.3V rail shutdown irda in | |
39 | 2-14 | 78 | D1 | 5V out |
45 | 2-15 | 79 | E1 | irda in |
150 | 1-6 | N2 | RFM69H IRQ | |
132 | 0-3 | U7 | RFM69H chip select | |
152 | 1-5 | M3 | RFM69H _DIO2 | |
92 | 0-17 | N9 | SIM900R power FET (RESET) | |
134 | 0-2 | R8 | SIM900R power KEY | |
148 | 1-7 | 39 | P1 | SIM900R power status (input) |
35 | 2-12 | B1 | watchdog input | |
50 | PWM3 | E9 | Buzzer | |
80 | 3-26 | E8 | Red LED | |
82 | 3-23 | E7 | Green LED | |
197 | 3-6 | K5 | STAT1 (BATTERY_CHARGING) | |
198 | 1-30 | N1 | STAT2 (BATTERY_PRESENT) | |
77 | 1-27 | P5 | питание Wi-Fi (active low) | |
15 | 2-26 | B2 | питание на MOD3 (active low) |
GPIO на разъёме расширения MOD1
вывод sodim | GPIO | GPIO number | вывод imx287 | pinmux pad name | пин | функция |
- | - | - | 3.3V | +3.3V | ||
11 | 2-27 | 91 | D2 | MX28_PAD_SSP3_SS0 | SDA | GPIO, I2C (soft) |
37 | 2-13 | 77 | С1 | MX28_PAD_SSP1_CMD | SCL | GPIO, I2C (soft) |
14 | 2-17 | 81 | C3 | MX28_PAD_SSP2_MOSI | MOSI | GPIO, SPI MOSI (SSP2) |
16 | 2-18 | 82 | B3 | MX28_PAD_SSP2_MISO | MISO | GPIO, SPI MISO (SSP2) |
10 | 2-16 | 80 | A3 | MX28_PAD_SSP2_SCK | SCK | GPIO, SPI SCK (SSP2) |
- | - | - | 5V | +5V | ||
42 | 3-11 | 107 | H7 | MX28_PAD_AUART2_RTS | RTS | AUART2_RTS, GPIO, I2C1_SDA, SAIF1_LRCLK |
- | - | - | GND | GND | ||
30 | 3-9 | 105 | F5 | MX28_PAD_AUART2_TX | TX | AUART2_TX, GPIO |
32 | 3-8 | 104 | F6 | MX28_PAD_AUART2_RX | RX | AUART2_RX, GPIO |
12 | 2-19 | 83 | C4 | MX28_PAD_SSP2_SS0 | CS | GPIO, SPI Slave Select (SSP2) |
GPIO на разъёме расширения MOD2
вывод sodim | GPIO | GPIO number | вывод imx287 | pinmux pad name | пин | функция |
- | - | - | 3.3V | +3.3V | ||
34 | 0-22 | 22 | M8 | MX28_PAD_GPMI_RDY2 | SDA | GPIO, I2C SDA(soft), CAN0 TX |
36 | 0-23 | 23 | L8 | MX28_PAD_GPMI_RDY3 | SCL | GPIO, I2C SCL(soft), CAN0 RX |
14 | 2-17 | 81 | C3 | MX28_PAD_SSP2_MOSI | MOSI | GPIO, SPI MOSI (SSP2) |
16 | 2-18 | 82 | B3 | MX28_PAD_SSP2_MISO | MISO | GPIO, SPI MISO (SSP2) |
10 | 2-16 | 80 | A3 | MX28_PAD_SSP2_SCK | SCK | GPIO, SPI SCK (SSP2) |
- | - | - | 5V | +5V | ||
63 | 3-15 | 111 | K6 | MX28_PAD_AUART3_RTS | RTS | AUART3_RTS, GPIO, CAN1_RX |
- | - | - | GND | GND | ||
53 | 3-13 | 109 | L5 | MX28_PAD_AUART3_TX | TX | AUART3_TX, GPIO, CAN0_RX |
55 | 3-12 | 108 | M5 | MX28_PAD_AUART3_RX | RX | AUART3_RX, GPIO, CAN0_TX |
23 | 2-20 | 84 | D3 | MX28_PAD_SSP2_SS1 | CS | GPIO, SPI Slave Select (SSP2) |
GPIO на разъёме расширения MOD3
вывод sodim | GPIO | GPIO number | вывод imx287 | пин | функция |
- | - | - | 3.3V | +3.3V | |
14 | 2-17 | 81 | C3 | MOSI | GPIO, SPI MOSI (SSP2) |
16 | 2-18 | 82 | B3 | MISO | GPIO, SPI MISO (SSP2) |
10 | 2-16 | 80 | A3 | SCK | GPIO, SPI SCK (SSP2) |
21 | 2-21 | 85 | D4 | CS | GPIO, SPI Slave Select (SSP2) |
GPIO на разъёме расширения ввода-вывода
вывод sodim | GPIO | вывод imx287 | пин | функция |
44 | 3-10 | H6 | INT | Прерывание |
46 | 3-25 | D8 | I2C0_SDA | I2C0 аппаратный |
48 | 3-24 | C7 | I2C0_SCL | I2C0 аппаратный |
См. также Работа с GPIO
Радио модуль
Подключен по SPI1.
вывод sodim | GPIO | вывод imx287 | пин | функция |
94 | 0-21 | N8 | RFM69_MOSI | MOSI |
138 | 0-0 | U8 | RFM69_MISO | MISO |
96 | 0-25 | P8 | RFM69_SCK | SCK |
132 | 0-3 | U7 | RFM69_CS | CS |
150 | 1-6 | N2 | IRQ_RFM69 | Прерывание |
152 | 1-5 | M3 | RFM69_DIO2 |
FFC-разъём расширения
Разъём не напаян на устройствах в стандартной комплектации
вывод sodim | GPIO | вывод imx287 | пин | функция |
76 | 4-11 | G1 | 4 | GPIO, ENET0_TXD2 |
74 | 4-12 | G2 | 5 | GPIO, ENET0_TXD3 |
72 | 4-10 | J2 | 6 | GPIO, ENET0_RXD3 |
70 | 4-9 | J1 | 7 | GPIO, ENET0_RXD2 |
68 | 4-15 | J3 | 8 | GPIO, ENET0_CRS |
66 | 4-14 | J4 | 9 | GPIO, ENET0_COL |
64 | 4-16 | E2 | 10 | GPIO, ENET_CLK |
62 | 4-13 | F3 | 11 | GPIO, ENET0_RX_CLK |
60 | 4-5 | E3 | 12 | GPIO, ENET0_TX_CLK |
58 | 4-0 | G4 | 13 | GPIO, ENET0_MDC |
56 | 4-1 | H4 | 14 | GPIO, ENET0_MDIO |
Последовательные порты
Порт | |
---|---|
/dev/ttyAPP0 | GSM/EDGE |
/dev/ttyAPP1 | порт RS-485 на клеммниках "RS-485" |
/dev/ttyAPP2 | порт UART на первом модуле расширения |
/dev/ttyAPP3 | порт UART на втором модуле расширения |
/dev/ttyAPP4 | порт RS-485 на клеммниках RS-485/CAN |
Справочная информация по тестовым ревизиям: