Wiren Board 7.2: Peripherals: различия между версиями

Материал из Wiren Board
Строка 3: Строка 3:
{{Wbincludes:Peripherals}}
{{Wbincludes:Peripherals}}
== GPIO на клеммниках ==
== GPIO на клеммниках ==
{| class="wikitable"
{| border="1" class="wikitable"  
!клеммник
! Функция ||GPIO number ||  Примечание
!функция
!GPIO
!GPIO number
!вывод i.mx6UL
!комментарии
|-
|-
| colspan="6" style="text-align:center; vertical-align:middle;" | '''Выходы A1-A4'''
! colspan="3" | Выходы A1-A3, D1
|-
|-
|A1(out)
| A1 OUT || 109 || Выход «открытый коллектор»
|FET
|GPIO3_IO15
|109
|LCD_DATA10
|Выход "открытый коллектор";
|-
|-
|A2(out)
| A2 OUT || 108 || Выход «открытый коллектор»
|FET
|GPIO3_IO16
|108
|LCD_DATA11
|Выход "открытый коллектор";
|-
|-
|A3(out)
| A3 OUT || 107 || Выход «открытый коллектор»
|FET
|GPIO3_IO17
|107
|LCD_DATA12
|Выход "открытый коллектор";
|-
|-
|D1(out)
| D1 OUT || 106 || Выход «открытый коллектор»
|FET
|GPIO3_IO18
|106
|LCD_DATA13
|Выход "открытый коллектор";
|-
|-
| colspan="6" style="text-align:center; vertical-align:middle;" | '''Входы A1-A4''' (инвертированы; т.е. "1" на gpio появляется, когда на входе нет напряжения)
! colspan="4" | Входы A1-A3, D1 (инвертированные, при отсутствии сигнала будет 1)
|-
|-
|A1 (in)
| A1 IN ||231 ||  
|DI
|GPIO3_IO14
|231
|LCD_DATA09
|
|-
|-
|A2 (in)
| A2 IN ||230 ||  
|DI
|GPIO3_IO13
|230
|LCD_DATA08
|
|-
|-
|A3 (in)
| A3 IN ||227 ||  
|DI
|GPIO3_IO28
|227
|LCD_DATA23
|
|-
|-
|D1 (in)
| D1 IN ||228 ||  
|DI
|GPIO3_IO27
|228
|LCD_DATA22
|-
|-
| colspan="6" style="text-align:center; vertical-align:middle;" | '''Onewire'''
! colspan="3" | Onewire
|-
|-
|W1
| W1 || 226 || 1-wire/DI  
|'''1-wire'''/DI
|GPIO3_IO4
|226
|LCD_RESET
|по умолчанию используется драйвером w1-gpio
|-
|-
|W2
| W2 || 271 || 1-wire/DI  
|'''1-wire'''/DI
|GPIO1_IO11
|271
|JTAG_TMS
|по умолчанию используется драйвером w1-gpio
|-
|-
|}
|}

Версия 12:14, 21 мая 2022

Это черновик страницы. Последняя правка сделана 21.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 number Примечание
Выходы A1-A3, D1
A1 OUT 109 Выход «открытый коллектор»
A2 OUT 108 Выход «открытый коллектор»
A3 OUT 107 Выход «открытый коллектор»
D1 OUT 106 Выход «открытый коллектор»
Входы A1-A3, D1 (инвертированные, при отсутствии сигнала будет 1)
A1 IN 231
A2 IN 230
A3 IN 227
D1 IN 228
Onewire
W1 226 1-wire/DI
W2 271 1-wire/DI

Реализация UART

Название порта в Linux Альтернативное имя порта в Linux Разъём на контроллере Примечание
/dev/ttymxc0 /dev/ttyCONSOLE Debug-uart контроллера (micro-usb) Настройки по умолчанию: 115200-8-N-1
/dev/ttymxc1 /dev/ttyRS485-1 Подписан RS-485, клеммники A и B Неизолированный порт, установлен терминатор
/dev/ttymxc3 /dev/ttyRS485-2 Подписан RS-485, клеммники A/L и B/H (этот порт может использоваться и как CAN) Неизолированный порт, установлен терминатор, мультиплексирован с CAN
/dev/ttymxc2 /dev/ttyMOD1 UART на модуле расширения MOD1
/dev/ttymxc4 /dev/ttyMOD2 UART на модуле расширения MOD2
/dev/ttymxc5 /dev/ttyMOD3 UART на модуле расширения MOD3
/dev/ttymxc6 /dev/ttyMOD4 UART на модуле расширения MOD4
/dev/ttymxc7 /dev/ttyGSM UART на модуле расширения WBC (разъём GSM/3G/4G-модема) Для появления нужно выставить какой-либо из модемов в wb-hardware.conf

Сигналы на модулях расширения

Каналы АЦП

Ножки для внутреннего использования