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

Материал из Wiren Board
Строка 89: Строка 89:


== Реализация UART ==
== Реализация UART ==
[[Файл:MOD12.png|300px|thumb|right| Распиновка разъемов Mod1, Mod2 и Mod3 на WB7 под модули расширения]]
{| class="wikitable"
[[Файл:MOD3.png|300px|thumb|right| Распиновка разъема Mod4 на WB7 под модули расширения]]
|'''Название порта в Linux'''
[[Файл:wbc_mod.png|300px|thumb|right| Распиновка разъема WBC на WB7 под модули 2g/3g/4g модемов]]
|'''Альтернативное имя порта в 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
|Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
|-
|/dev/ttymxc4
|/dev/ttyMOD2
|UART на модуле расширения MOD2
|Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
|-
|/dev/ttymxc5
|/dev/ttyMOD3
|UART на модуле расширения MOD3
|Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
|-
|/dev/ttymxc6
|/dev/ttyMOD4
|UART на модуле расширения MOD4
|Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
|-
|/dev/ttymxc7
|/dev/ttyGSM
|UART на модуле расширения WBC (разъём GSM/3G/4G-модема)
|Для появления нужно выставить какой-либо из модемов в wb-hardware.conf
|-
|}
 
<gallery>
Файл:MOD12.png|Распиновка разъемов Mod1, Mod2 и Mod3 на WB7 под модули расширения
Файл:MOD3.png|Распиновка разъема Mod4 на WB7 под модули расширения
Файл:wbc_mod.png| Распиновка разъема WBC на WB7 под модули 2g/3g/4g модемов
</gallery>


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

Версия 16:05, 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

Реализация 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 Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
/dev/ttymxc4 /dev/ttyMOD2 UART на модуле расширения MOD2 Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
/dev/ttymxc5 /dev/ttyMOD3 UART на модуле расширения MOD3 Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
/dev/ttymxc6 /dev/ttyMOD4 UART на модуле расширения MOD4 Для появления нужно выставить в wb-hardware.conf "Expose UART Pins (DIY)"
/dev/ttymxc7 /dev/ttyGSM UART на модуле расширения WBC (разъём GSM/3G/4G-модема) Для появления нужно выставить какой-либо из модемов в wb-hardware.conf

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

Каналы АЦП

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