Wiren Board 7.2: Peripherals: различия между версиями
(Поправил заголовок, добавил метку о черновике) |
|||
Строка 3: | Строка 3: | ||
{{Wbincludes:Peripherals}} | {{Wbincludes:Peripherals}} | ||
== GPIO на клеммниках == | == GPIO на клеммниках == | ||
{| class="wikitable" | |||
!клеммник | |||
!функция | |||
!GPIO | |||
!GPIO number | |||
!вывод i.mx6UL | |||
!комментарии | |||
|- | |||
| colspan="6" style="text-align:center; vertical-align:middle;" | '''Выходы A1-A4''' | |||
|- | |||
|A1(out) | |||
|FET | |||
|GPIO3_IO15 | |||
|109 | |||
|LCD_DATA10 | |||
|Выход "открытый коллектор"; | |||
|- | |||
|A2(out) | |||
|FET | |||
|GPIO3_IO16 | |||
|108 | |||
|LCD_DATA11 | |||
|Выход "открытый коллектор"; | |||
|- | |||
|A3(out) | |||
|FET | |||
|GPIO3_IO17 | |||
|107 | |||
|LCD_DATA12 | |||
|Выход "открытый коллектор"; | |||
|- | |||
|D1(out) | |||
|FET | |||
|GPIO3_IO18 | |||
|106 | |||
|LCD_DATA13 | |||
|Выход "открытый коллектор"; | |||
|- | |||
| colspan="6" style="text-align:center; vertical-align:middle;" | '''Входы A1-A4''' (инвертированы; т.е. "1" на gpio появляется, когда на входе нет напряжения) | |||
|- | |||
|A1 (in) | |||
|DI | |||
|GPIO3_IO14 | |||
|231 | |||
|LCD_DATA09 | |||
| | |||
|- | |||
|A2 (in) | |||
|DI | |||
|GPIO3_IO13 | |||
|230 | |||
|LCD_DATA08 | |||
| | |||
|- | |||
|A3 (in) | |||
|DI | |||
|GPIO3_IO28 | |||
|227 | |||
|LCD_DATA23 | |||
| | |||
|- | |||
|D1 (in) | |||
|DI | |||
|GPIO3_IO27 | |||
|228 | |||
|LCD_DATA22 | |||
|- | |||
| colspan="6" style="text-align:center; vertical-align:middle;" | '''Onewire''' | |||
|- | |||
|W1 | |||
|'''1-wire'''/DI | |||
|GPIO3_IO4 | |||
|226 | |||
|LCD_RESET | |||
|по умолчанию используется драйвером w1-gpio | |||
|- | |||
|W2 | |||
|'''1-wire'''/DI | |||
|GPIO1_IO11 | |||
|271 | |||
|JTAG_TMS | |||
|по умолчанию используется драйвером w1-gpio | |||
|- | |||
|} | |||
== Реализация UART == | == Реализация UART == | ||
[[Файл:MOD12.png|300px|thumb|right| Распиновка разъемов Mod1, Mod2 и Mod3 на WB7 под модули расширения]] | [[Файл:MOD12.png|300px|thumb|right| Распиновка разъемов Mod1, Mod2 и Mod3 на WB7 под модули расширения]] |
Версия 16:03, 18 мая 2022
Это черновик страницы. Последняя правка сделана 18.05.2022 пользователем A.Degtyarev.
Введение
Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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 | GPIO number | вывод i.mx6UL | комментарии |
---|---|---|---|---|---|
Выходы A1-A4 | |||||
A1(out) | FET | GPIO3_IO15 | 109 | LCD_DATA10 | Выход "открытый коллектор"; |
A2(out) | FET | GPIO3_IO16 | 108 | LCD_DATA11 | Выход "открытый коллектор"; |
A3(out) | FET | GPIO3_IO17 | 107 | LCD_DATA12 | Выход "открытый коллектор"; |
D1(out) | FET | GPIO3_IO18 | 106 | LCD_DATA13 | Выход "открытый коллектор"; |
Входы A1-A4 (инвертированы; т.е. "1" на gpio появляется, когда на входе нет напряжения) | |||||
A1 (in) | DI | GPIO3_IO14 | 231 | LCD_DATA09 | |
A2 (in) | DI | GPIO3_IO13 | 230 | LCD_DATA08 | |
A3 (in) | DI | GPIO3_IO28 | 227 | LCD_DATA23 | |
D1 (in) | DI | GPIO3_IO27 | 228 | LCD_DATA22 | |
Onewire | |||||
W1 | 1-wire/DI | GPIO3_IO4 | 226 | LCD_RESET | по умолчанию используется драйвером w1-gpio |
W2 | 1-wire/DI | GPIO1_IO11 | 271 | JTAG_TMS | по умолчанию используется драйвером w1-gpio |