Wiren Board 6.1: GPIO List
This is the approved revision of this page, as well as being the most recent.
Статья описывает подключение встроенной периферии к сигналам процессора для версии Wiren Board 6 (ревизии 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
, или в разделе ниже.
GPIO на клеммниках
клеммник | функция | GPIO | вывод i.mx6UL | комментарии | |
W1 (in) | 1-wire/DI | GPIO1_IO11 | 11 | P14 | по-умолчанию 1-wire |
W2 (in) | 1-wire/DI | GPIO4_IO12 | 108 | A3 |
GPIO для транзисторов (A1-A4)
клеммник | функция | GPIO | GPIO number | вывод i.mx6UL | комментарии |
A1 (out) | ADC/FET/DI | GPIO3_15 | 79 | Выход "открытый коллектор"; | |
A2 (out) | ADC/FET/DI | GPIO3_16 | 80 | Выход "открытый коллектор"; | |
A3 (out) | ADC/FET/DI | GPIO3_17 | 81 | Выход "открытый коллектор"; | |
A4 (out) | ADC/FET/DI | GPIO3_18 | 82 | Выход "открытый коллектор"; |
Каналы АЦП
клеммник | Канал АЦП | Делитель | Итоговая формула (без делителя) | V макс. измеряемое | комментарии |
---|---|---|---|---|---|
A1 | 4 | 88k7, 12k | |||
A2 | 2 | ||||
A3 | 1 | ||||
A4 | 3 | ||||
Vin | 8 | 88k7, 12k | |||
5Vout | 5 | 33k, 12k |
Ножки для внутреннего использования
вывод sodim | GPIO | GPIO number | вывод i.mx6UL | функция |
84 | GPIO1_IO13 | 13 | транзисторная подтяжка 1-wire к верху | |
77 | GPIO4_IO16 | 112 | транзисторная подтяжка 1-wire к верху (W2) | |
36 | GPIO1_IO27 | 27 | 5V out | |
176 | GPIO3_IO14 | 78 | LCD_DATA09 | RFM69H IRQ |
178 | GPIO3_IO13 | LCD_DATA08 | RFM69H _DIO2 | |
180 | GPIO3_IO28 | LCD_DATA23 | RFM69 MISO | |
182 | GPIO3_IO27 | LCD_DATA22 | RFM69 MOSI | |
186 | GPIO3_IO25 | LCD_DATA20 | RFM69 SCK | |
184 | GPIO3_IO26 | LCD_DATA21 | RFM69H chip select | |
102 | GPIO4_IO23 | 119 | SIM900R power FET (RESET) | |
164 | GPIO3_IO20 | 84 | SIM900R power KEY | |
166 | GPIO3_IO19 | 83 | SIM900R power status (input) | |
188 | GPIO3_IO24 | 88 | SIM slot select (low: 1, high: 2) | |
23 | GPIO2_IO19 | 51 | SD1_DATA1 | watchdog input |
162 | PWM1_OUT | Buzzer | ||
80 | Red LED | |||
82 | Green LED | |||
69 | 2nd ethernet LED | |||
65 | GPIO1_IO18 | 18 | STAT1 (BATTERY_CHARGING) | |
67 | GPIO1_IO19 | 19 | STAT2 (BATTERY_PRESENT) | |
152 | GPIO3_IO10 | питание Wi-Fi (active low) | ||
29 | GPIO2_IO16 | i2c для RTC, SDA | ||
31 | GPIO2_IO17 | i2c для RTC, SCL | ||
144 | GPIO3_IO12 | PAD_LCD_DATA07 | i2c для EEPROM1, SDA | |
142 | GPIO3_IO03 | PAD_LCD_VSYNC | i2c для EEPROM1, SCL | |
160 | GPIO3_IO06 | PAD_LCD_DATA01 | i2c для EEPROM2, SDA | |
158 | GPIO3_IO07 | PAD_LCD_DATA02 | i2c для EEPROM2, SCL | |
75 | GPIO4_IO11 | 107 | питание USB | |
154 | GPIO3_IO09 | 73 | V_OUT_ON | |
156 | GPIO3_IO08 | 72 | V_OUT_ST | |
102 | GPIO4_IO23 | 119 | PAD_CSI_DATA02 | RS-485-1 failsafe bias |
190 | GPIO3_IO23 | 87 | PAD_LCD_DATA18 | RS-485-2 failsafe bias |
40 | GPIO1_IO23 | 23 | PAD_UART2_RTS_B | CAN transciever power |
GPIO на разъёме расширения MOD1
вывод sodim | GPIO | GPIO number | вывод imx287 | pinmux pad name | пин | функция |
- | - | - | 3.3V | - | ||
30 | GPIO1_IO24 | H17 | UART3_TX_DATA | TX | uart tx | |
32 | GPIO1_IO25 | H16 | UART3_RX_DATA | RX | uart rx | |
- | 5V | - | ||||
34 | GPIO1_IO26 | H15 | UART3_CTS_B | DE | uart de | |
- | GND | - |
GPIO на разъёме расширения MOD2
вывод sodim | GPIO | GPIO number | вывод imx6ul | pinmux pad name | пин | функция | |
- | - | - | 3.3V | - | |||
98 | GPIO4_IO21 | E4 | CSI_DATA00 | TX | uart tx | MX6UL_PAD_CSI_DATA00__UART5_DCE_TX | |
49 | JTAG_MOD | TX (muxed через 3k, 12k PD) | spdif out | ||||
100 | GPIO4_IO22 | E3 | CSI_DATA01 | RX | MX6UL_PAD_CSI_DATA01__UART5_DCE_RX | ||
- | 5V | - | |||||
52 | GPIO1_IO09 | M15 | GPIO1_IO09 | DE | uart de, pwm, spdif in | ||
- | GND | - |
GPIO на разъёме расширения MOD3
вывод sodim | GPIO | GPIO number | вывод imx6ul | pinmux pad name | пин | функция | ||
- | 3.3V | - | ||||||
194 | GPIO3_IO21 | 85 | LCD_DATA16 | TX | uart tx | |||
192 | GPIO3_IO22 | 86 | LCD_DATA17 | RX | uart rx | |||
112 | GPIO4_IO28 | 124 | D1 | CSI_DATA07 | MISO | spi miso | MX6UL_PAD_CSI_DATA07__ECSPI1_MISO | |
106 | GPIO4_IO25 | 121 | D4D | CSI_DATA04 | SCK | spi sck | MX6UL_PAD_CSI_DATA04__ECSPI1_SCLK | |
- | 5V | - | ||||||
150 | GPIO3_IO11 | 75 | A10 | LCD_DATA06 | DE | uart de | ||
- | GND | - | ||||||
110 | GPIO4_IO27 | 123 | D2 | CSI_DATA06 | MOSI | spi mosi | MX6UL_PAD_CSI_DATA06__ECSPI1_MOSI | |
108 | GPIO4_IO26 | 122 | D3 | CSI_DATA05 | SS | spi ss | MX6UL_PAD_CSI_DATA05__ECSPI1_SS0 |