Wiren Board 5: GPIO List

Материал из Wiren Board
Это утверждённая версия страницы. Она же — наиболее свежая версия.
Другие языки:

Статья описывает подключение встроенной периферии к сигналам процессора для версии Wiren Board 5 (rev 5.3).

Введение

Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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, или в разделе ниже.

Последовательные порты

Порт
/dev/ttyAPP0 GSM/EDGE
/dev/ttyAPP1 порт RS-485 на клеммниках "RS-485"
/dev/ttyAPP2 порт UART на первом модуле расширения
/dev/ttyAPP3 порт UART на втором модуле расширения
/dev/ttyAPP4 порт RS-485 на клеммниках RS-485/CAN

АЦП

клеммник функция вывод 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)
37 2-13 C1 watchdog input
50 PWM3 E9 Buzzer
80 3-26 E8 Red LED
82 3-23 E7 Green LED
197 3-6 K5 STAT1 (зарядка)
198 1-30 N1 STAT2 (зарядка)
77 1-27 P5 питание Wi-Fi (active low)

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

Распиновка разъема под модули расширения
вывод sodim GPIO GPIO number вывод imx287 пин функция
- - - 3.3V +3.3V
21 2-21 85 K7 SDA GPIO, I2C (soft)
35 2-12 76 B1 SCL GPIO, I2C (soft)
13 2-25 89 C2 MOSI GPIO, SPI3 MOSI, AUART4_RX
15 2-26 90 B2 MISO GPIO, SPI3 MISO, AUART4_RTS
9 2-24 88 A2 SCK GPIO, SPI3 SCK, AUART4_TX
- - - 5V +5V
42 3-11 107 H7 RTS AUART2_RTS, GPIO, I2C1_SDA, SAIF1_LRCLK
- - - GND GND
30 3-9 105 F5 TX AUART2_TX, GPIO
32 3-8 104 F6 RX AUART2_RX, GPIO
11 2-27 91 D2 CS GPIO, SPI3 Slave Select 0

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

вывод sodim GPIO GPIO number вывод imx287 пин функция
- - - 3.3V +3.3V
34 0-22 22 M8 SDA GPIO, I2C SDA(soft), CAN0 TX
36 0-23 23 L8 SCL GPIO, I2C SCL(soft), CAN0 RX
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)
- - - 5V +5V
63 3-15 111 K6 RTS AUART3_RTS, GPIO, CAN1_RX
- - - GND GND
53 3-13 109 L5 TX AUART3_TX, GPIO, CAN0_RX
55 3-12 108 M5 RX AUART3_RX, GPIO, CAN0_TX
12 2-19 83 C4 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

Справочная информация по тестовым ревизиям: