Wiren Board 7.2: Peripherals: различия между версиями
(Новая страница: «{{DISPLAYTITLE:Wiren Board 6.7: Низкоуровневая работа с железом}} {{Wbincludes:Peripherals}} == GPIO на клеммниках == ==...») |
|||
Строка 3: | Строка 3: | ||
== GPIO на клеммниках == | == GPIO на клеммниках == | ||
== Реализация UART == | == Реализация UART == | ||
[[Файл:MOD12.png|300px|thumb|right| Распиновка разъемов Mod1, Mod2 и Mod3 на | [[Файл:MOD12.png|300px|thumb|right| Распиновка разъемов Mod1, Mod2 и Mod3 на WB7 под модули расширения]] | ||
[[Файл:MOD3.png|300px|thumb|right| Распиновка разъема Mod4 на | [[Файл:MOD3.png|300px|thumb|right| Распиновка разъема Mod4 на WB7 под модули расширения]] | ||
[[Файл:wbc_mod.png|300px|thumb|right| Распиновка разъема WBC на | [[Файл:wbc_mod.png|300px|thumb|right| Распиновка разъема WBC на WB7 под модули 2g/3g/4g модемов]] | ||
== Сигналы на модулях расширения == | == Сигналы на модулях расширения == |
Версия 04:03, 11 ноября 2021
Введение
Эта статья предназначена, в первую очередь, для разработчиков стороннего ПО для контроллеров 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
, или в разделе ниже.