Существуют ли какие-то пути подключения 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 с точки зрения интерфейса
- WBIO‑модули (включая DI‑WD‑14) рассчитаны на подключение к контроллерам Wiren Board через боковой разъём WBIO.
- На этом разъёме есть не только I²C‑шина, но и дополнительные управляющие сигналы (адресовая разводка, выбор модуля, питание, иногда сигналы ресета и пр.) — это описано в документации по WBIO‑модулям[1].
- Модуль ожидает определённую схему включения и управления со стороны контроллера, а не просто «голую» 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‑датчик, скорее всего нельзя по причинам:
-
Непрозрачный протокол/адресация.
В документации нет описанного открытого I²C‑регистрового интерфейса для использования WBIO‑DI‑WD‑14 c произвольными хостами — он задуман как часть экосистемы Wiren Board[1:1]. -
Дополнительные сигналы на боковом разъёме.
Модулю, возможно, требуется формирование адреса (A0/A1 и т.п.), сигналы выбора и определённая обвязка, которые стандартный 40‑пиновый разъём Raspberry Pi не предоставляет «как есть». -
Различие в уровнях и защите.
Модуль рассчитан на работу в составе щитка/контроллера, где уже учтены защита по питанию, согласование уровней и т.п. При прямом подключении с Raspberry Pi можно повредить как Pi, так и модуль, если неверно подать питание/логические уровни.
Теоретически возможные варианты
Если очень хочется использовать именно этот модуль с Raspberry Pi, то в теории нужны:
-
Полное описание низкоуровневого протокола и адресации WBIO‑DI‑WD‑14:
- какой I²C‑адрес он использует;
- какие регистры за что отвечают;
- какая инициализация требуется.
Эти данные открыто в Wiki обычно не публикуются, т.к. модуль задуман для работы с Wiren Board, а не как общедоступный I²C‑девайс.
-
Повторение схемы подключения бокового разъёма (или использование готового контроллера/карты расширения от Wiren Board, к которому уже подключается WBIO‑DI‑WD‑14), и далее уже общаться с контроллером более стандартным образом.
На практике это сводится к тому, что:
- поддержка WBIO‑DI‑WD‑14 на Raspberry Pi официально не документирована;
- корректная реализация потребует реверс‑инжиниринга или внутренней документации и разработки драйвера под Raspberry Pi.
Что можно сделать прямо сейчас
-
Уточните, пожалуйста:
- как именно вы его подключали к Raspberry Pi: распиновку (к каким пинам Pi и какие сигналы WBIO‑разъёма);
- какое питание подали (на какой пин модуля, какое напряжение);
- что показывает
i2cdetect -y 1(или другой номер шины) при подключённом модуле.
-
Если для вашей задачи главное — 14 дискретных входов с «мокрым» входом под Raspberry Pi, то, скорее всего, проще:
- либо использовать модуль/плату, изначально рассчитанную на работу с Raspberry Pi по I²C/SPI/UART;
- либо использовать контроллер Wiren Board как подчинённое устройство (Modbus TCP/RTU, MQTT) и опрашивать его с Raspberry Pi.
Если вы пришлёте схему/фото подключения и вывод i2cdetect, инженеры техподдержки на неделе смогут подробнее прокомментировать, возможно ли «нестандартное» подключение именно в вашем случае.
Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.
Добрый день!
Подключение наших модулей к Raspberry Pi не поддерживаем.
Подключение боковых модулей к контроллеру Wiren Board и описано в Модули ввода-вывода WBIO.
Добрый день.
Как описано - шина i2c, обыкновенная. Наши модули успешно используются, например в Lavrintech контроллерах.