Подключение модуля WBE-DI-DR-3 к WB5

Здравствуйте!

Для контроллера WB5 ищу модуль расширения WBE-DI-DR-3, может у кого-то завалялся?

Также рассматриваю возможность “прикрутить” модуль WBE2-DI-DR-3 через самодельный переходник к пятой модели контроллера. Совместимы ли эти модули на аппаратном уровне? На внешний вид схемотехники модулей практически не отличаюся.

да, совместимы

По-моему у нас остались ещё на складе. Позвоните пожалуйста в рабочее время по телефону или напишите запрос на почту. Контакты - решения для автоматизации

Я сначала так и сделал, утверждают что на складе таких модулей нет.

Прикрутил модуль для WB6 к WB5. Вот что получилось

модуль WBE2-DI-DR-3 с самопальным переходником

вот так всё это безобразие располагается в корпусе контроллера


из-за габаритов такая конструкция помещается только во втором слоте, в первом в кнопку питания упирается

но вот проблема все равно осталась, теперь программная

  • указал в /etc/wb-hardware.conf для слота соответсвующий модуль, сохранил, топики /devices/wb-gpio/controls/MOD2_INx появились в MQTT, но вот не меняются они при заземлении входов модуля.
  • чтобы исключить аппаратную часть отключил от модуля выводы RX, TX, RTS, заземляя входы модуля получаю на отключеных выходах модуля 3.3v
  • пробежался по напряжениям на пинах слота контроллера, ситуация следующая RX = 0v, TX=3.3v, RTS=0v, такое чувство что пины не сконфигурированны как gpio, а работают в режиме uart.
  • попробовал модуль воткнуть в первый слот и настроить его - ситуация такая же.
  • перезагрузка контроллера не помогает

Коллеги, отреагируйте плиз на мою проблему, что не так с настройкой модуля, куда дальше копать? Может отдельную тему мне создать по этому вопросу?

Покажите версии

dpkg -s wb-hwconf-manager

Package: wb-hwconf-manager
Status: install ok installed
Priority: extra
Section: misc
Installed-Size: 365
Maintainer: Evgeny Boger boger@contactless.ru
Architecture: all
Version: 1.38.3
Depends: ucf, wb-utils (>= 2.1.2), wb-configs (>= 1.63), perl, jq, tcc, device-tree-compiler (>= 1.6.0-1), linux-image-wb6 (>= 4.9+wb20201021233713) | linux-image-wb2 (>= 4.9+wb20200925234629), mqtt-tools (>= 1.1.1), wb-mqtt-dac (>= 1.1), wb-rules-system (>= 1.6.8)
Breaks: wb-homa-adc (<< 1.14.2), wb-mqtt-confed (<< 1.0.2), wb-mqtt-homeui (<< 1.6.1)
Conffiles:
/etc/init.d/wb-hwconf-manager 5d64ded12deba13b2aa7843f4a6986d0
/etc/wb-configs.d/02wb-hwconf-manager 57b22000bd3e5e02eefaec1705662f8f
Description: Provides infrastructure for hardware re-configuration via Device Tree overlays

Давайте проверим аппаратно:
https://wirenboard.com/wiki/Работа_с_GPIO
То есть можно прочитать состояния именно GPIO.

root@wirenboard-AIAMG5BX:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-31, parent: platform/80018000.pinctrl:gpio@0, 80018000.pinctrl:gpio@0:
...
 gpio-22  (                    |sysfs               ) in  lo IRQ
 gpio-23  (                    |sysfs               ) in  lo IRQ
...

gpiochip2: GPIOs 64-95, parent: platform/80018000.pinctrl:gpio@2, 80018000.pinctrl:gpio@2:
...
 gpio-84  (                    |sysfs               ) in  lo IRQ
...

направление

root@wirenboard-AIAMG5BX:~# cat /sys/class/gpio/gpio22/direction
in

контакт незаземлен

root@wirenboard-AIAMG5BX:~# cat /sys/class/gpio/gpio22/value
0

контакт заземлен

root@wirenboard-AIAMG5BX:~# cat /sys/class/gpio/gpio22/value
0

для gpio23 и gpio84 ситуация аналогичная.

ЗЫ. кстати, на страничке GPIO для MOD-2 O3 указано с ошибкой, хотя может быть это значение неактуально для моей ревизии контроллера, в любом случае кмк нужно или поправить или дополнить страничку.

На мой взгляд тот факт, что логические уровни программно не меняются, не удивителен, потому что они не меняются и аппаратно (практически не меняются, подключал осцилограф к RX, TX, RTS), происходит аппаратный конфликт выхода модуля и присутствующих напряжений на вышеуказанных пинах.

У вас WB5 какой ревизии?
gpio по ревизиям описаны здесь:
https://wirenboard.com/wiki/GPIO

Ревизия 5.6, если я правилно интерпретировал надпись

Серийник

Похоже что gpio неверно настроены

GPIO на разъёме расширения MOD2

вывод sodim GPIO GPIO number вывод imx287 pinmux pad name пин функция
- - - 3.3V +3.3V
34 0-22 22 M8 MX28_PAD_GPMI_RDY2 SDA GPIO, I2C SDA(soft), CAN0 TX
36 0-23 23 L8 MX28_PAD_GPMI_RDY3 SCL GPIO, I2C SCL(soft), CAN0 RX
14 2-17 81 C3 MX28_PAD_SSP2_MOSI MOSI GPIO, SPI MOSI (SSP2)
16 2-18 82 B3 MX28_PAD_SSP2_MISO MISO GPIO, SPI MISO (SSP2)
10 2-16 80 A3 MX28_PAD_SSP2_SCK SCK GPIO, SPI SCK (SSP2)
- - - 5V +5V
63 3-15 111 K6 MX28_PAD_AUART3_RTS RTS AUART3_RTS, GPIO, CAN1_RX
- - - GND GND
53 3-13 109 L5 MX28_PAD_AUART3_TX TX AUART3_TX, GPIO, CAN0_RX
55 3-12 108 M5 MX28_PAD_AUART3_RX RX AUART3_RX, GPIO, CAN0_TX
23 2-20 84 D3 MX28_PAD_SSP2_SS1 CS GPIO, SPI Slave Select (SSP2)

А вот такая конфигурация (выжимка) в /etc/wb-homa-gpio.conf

{
  "name": "MOD2_IN1",
  "gpio": 22,
  "direction": "input",
  "inverted": false
},
{
  "name": "MOD2_IN2",
  "gpio": 23,
  "direction": "input",
  "inverted": false
},
{
  "name": "MOD2_IN3",
  "gpio": 84,
  "direction": "input",
  "inverted": false
}

поменял номера пинов на 109, 108 и 111 соответственно, теперь:

  • MOD2-IN1 все время в true (не реагирует на входной сигнал)
  • MOD2-IN2 работает (реагирует!)
  • MOD2-IN3 все время в false (не реагирует на входной сигнал)

Так, а эти же номера GPIO еще где-то используются? Возможно - они сконфигурированы как выходы.
Так, значит в /usr/share/wb-hwconf-manager/slots/wb55-mod2.def стоят неверные?

root@wirenboard-AIAMG5BX:~# cat /usr/share/wb-hwconf-manager/slots/wb55-mod2.def
#define SLOT_ALIAS      mod2
#define SLOT_RX         (AUART3_RX,             3,      12)
#define SLOT_TX         (AUART3_TX,             3,      13)
#define SLOT_RTS                (AUART3_RTS,    3,      15)
#define SLOT_SDA                (GPMI_RDY2,             0,      22)
#define SLOT_SCL                (GPMI_RDY3,             0,      23)
#define SLOT_MOSI       (SSP2_MOSI,             2,      17)
#define SLOT_MISO       (SSP2_MISO,             2,      18)
#define SLOT_SCK                (SSP2_SCK,              2,      16)
#define SLOT_CS         (SSP2_SS1,              2,      20)

#define SLOT_I2C_PINCTRL &mod2_i2c_pins_gpio
#define SLOT_CS_GPIO_PINCTRL &mod2_cs_pins_gpio
#define SLOT_UART_GPIO_PINCTRL &mod2_uart_pins_gpio

#define SLOT_SSP_ALIAS  &ssp2
#define SLOT_SPI_PINCTRL &spi2_pins_a_nocs &mod2_cs_pins_spi
#define SLOT_SPI_REG 1

#define SLOT_UART_ALIAS  &auart3

#define SLOT_CAN_PINCTRL &can0_pins_a &mod2_uart_pins_gpio
#define SLOT_CAN_ALIAS &can0

похоже что значения в этом def файле нормальные

Походу дело в подключении модуля

root@wirenboard-AIAMG5BX:~# cat /usr/share/wb-hwconf-manager/modules/wbe-di-dr-3.dtso
...
pinctrl-0 = <SLOT_I2C_PINCTRL SLOT_CS_GPIO_PINCTRL>
...

в WB6 модуль WBE2-DI-DR-3 подключается к TX, RX, RTS, а в WB5 к SDA, SCL, CS - проверю эти пины, отпишусь

Дело действительно оказалось в неправильном подключении модуля (не к тем пинам подключил выходы).
Для тех кому вдруг понадобиться костылять такое же подключение модуля WBE2-DI-DR-3 к WB5 в помощь следующая табличка

Пин модуля WBE2-DI-DR-3 согласно цоколевке Пин MOD1(2) контроллера WB5
OUT1 OUT1
OUT2 OUT2
OUT3 OUT3
3.3V(1) 3.3V(1)
5V(2) 5V(2)
TX(3) SDA(3)
RTS(4) CS(12)
RX(5) SCL(5)
GND(6) GND(6)
1 лайк