Подключение WBIO-DI-WD-14 к Raspberry Pi

Существуют ли какие-то пути подключения WBIO-DI-WD-14 к I2C на Raspberry Pi? Может быть следует учесть дополнительные нюансы или преобразователи? Интересует именно I2C. Самое интересно то, что мы пытались подключить к боковому разъёму устройства по I2C (акселерометр, датчик давления) и они работают как обычные устройства I2C. А вот Raspberry Pi так и не увидел модуль WBIO-DI-WD-14.

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнительное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


По описанию у вас:

  • модуль WBIO-DI-WD-14 (модуль дискретных входов с «мокрым» (WD) входом, 14 каналов);
  • вы подключаете его к Raspberry Pi по I²C, по тому же боковому разъёму, где у вас уже работают датчики (акселерометр, датчик давления).

Ключевой момент: WBIO-DI-WD-14 не является «обычным» I²C‑датчиком и не будет «сам» появляться в i2cdetect на Raspberry Pi как простое устройство I²C.

Как устроен WBIO-DI-WD-14 с точки зрения интерфейса

  1. WBIO‑модули (включая DI‑WD‑14) рассчитаны на подключение к контроллерам Wiren Board через боковой разъём WBIO.
  2. На этом разъёме есть не только I²C‑шина, но и дополнительные управляющие сигналы (адресовая разводка, выбор модуля, питание, иногда сигналы ресета и пр.) — это описано в документации по WBIO‑модулям[1].
  3. Модуль ожидает определённую схему включения и управления со стороны контроллера, а не просто «голую» I²C‑шину, как у типичного I²C‑датчика.

Поэтому:

  • акселерометр/датчик давления — это чистые I²C‑устройства, Raspberry Pi их «видит» напрямую;
  • WBIO‑DI‑WD‑14 — специализированный модуль ввода, который:
    • может иметь иной способ формирования адреса;
    • может требовать инициализации/конфигурации со стороны контроллера;
    • может использовать линию I²C только как часть более сложного протокола.

Можно ли напрямую к I²C Raspberry Pi

Напрямую «подцепить» WBIO‑DI‑WD‑14 к I²C Raspberry Pi, как обычный I²C‑датчик, скорее всего нельзя по причинам:

  1. Непрозрачный протокол/адресация.
    В документации нет описанного открытого I²C‑регистрового интерфейса для использования WBIO‑DI‑WD‑14 c произвольными хостами — он задуман как часть экосистемы Wiren Board[1:1].

  2. Дополнительные сигналы на боковом разъёме.
    Модулю, возможно, требуется формирование адреса (A0/A1 и т.п.), сигналы выбора и определённая обвязка, которые стандартный 40‑пиновый разъём Raspberry Pi не предоставляет «как есть».

  3. Различие в уровнях и защите.
    Модуль рассчитан на работу в составе щитка/контроллера, где уже учтены защита по питанию, согласование уровней и т.п. При прямом подключении с Raspberry Pi можно повредить как Pi, так и модуль, если неверно подать питание/логические уровни.

Теоретически возможные варианты

Если очень хочется использовать именно этот модуль с Raspberry Pi, то в теории нужны:

  1. Полное описание низкоуровневого протокола и адресации WBIO‑DI‑WD‑14:

    • какой I²C‑адрес он использует;
    • какие регистры за что отвечают;
    • какая инициализация требуется.

    Эти данные открыто в Wiki обычно не публикуются, т.к. модуль задуман для работы с Wiren Board, а не как общедоступный I²C‑девайс.

  2. Повторение схемы подключения бокового разъёма (или использование готового контроллера/карты расширения от Wiren Board, к которому уже подключается WBIO‑DI‑WD‑14), и далее уже общаться с контроллером более стандартным образом.

На практике это сводится к тому, что:

  • поддержка WBIO‑DI‑WD‑14 на Raspberry Pi официально не документирована;
  • корректная реализация потребует реверс‑инжиниринга или внутренней документации и разработки драйвера под Raspberry Pi.

Что можно сделать прямо сейчас

  1. Уточните, пожалуйста:

    • как именно вы его подключали к Raspberry Pi: распиновку (к каким пинам Pi и какие сигналы WBIO‑разъёма);
    • какое питание подали (на какой пин модуля, какое напряжение);
    • что показывает i2cdetect -y 1 (или другой номер шины) при подключённом модуле.
  2. Если для вашей задачи главное — 14 дискретных входов с «мокрым» входом под Raspberry Pi, то, скорее всего, проще:

    • либо использовать модуль/плату, изначально рассчитанную на работу с Raspberry Pi по I²C/SPI/UART;
    • либо использовать контроллер Wiren Board как подчинённое устройство (Modbus TCP/RTU, MQTT) и опрашивать его с Raspberry Pi.

Если вы пришлёте схему/фото подключения и вывод i2cdetect, инженеры техподдержки на неделе смогут подробнее прокомментировать, возможно ли «нестандартное» подключение именно в вашем случае.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. https://wirenboard.com/wiki/WBIO ↩︎ ↩︎

Добрый день!

Подключение наших модулей к Raspberry Pi не поддерживаем.
Подключение боковых модулей к контроллеру Wiren Board и описано в Модули ввода-вывода WBIO.

Добрый день.
Как описано - шина i2c, обыкновенная. Наши модули успешно используются, например в Lavrintech контроллерах.