I2C-адрес MCP4725
Я хочу использовать четыре модуля DAC MCP4725 одновременно, но у него есть только два адреса I2C, которые можно установить с помощью перемычек:
На странице 10 таблицы данных говорится:
Контакт выбора адреса устройства. Этот вывод может быть привязан к VSS или VDD, или может активно управляться цифровыми логическими уровнями. Логическое состояние этот контакт определяет, каким должен быть бит A0 адресных битов I2C.
Можно ли как-то установить более двух адресов для этого модуля? или любой взлом с помощью аппаратного/программного обеспечения...
@ElectronSurf, 👍0
Обсуждение1 ответ
Лучший ответ:
Для этого есть хитрость, заключающаяся в том, что одно устройство считается "активным", а все остальные - "неактивными".
Вы всегда работаете только с одним адресом, и это адрес «активного» объекта. Все остальные устройства находятся на вторичном «неактивном» адресе, который вы игнорируете.
Затем адресный контакт каждого устройства подключается к контакту ввода-вывода и может рассматриваться как контакт "выбора микросхемы".
Последовательность следующая:
- Установите для первого устройства низкий уровень A0, а для всех остальных – высокий уровень.
- Связь по адресу 0
- Установите для второго блока A0 НИЗКИЙ уровень, а для всех остальных – ВЫСОКИЙ.
- Связь по адресу 0
- И т. д. для каждой единицы
Поскольку вы никогда не обмениваетесь данными по адресу 1, остальные «неактивные» устройства игнорируют все сообщения.
Спасибо. Если на выходе DAC1, например, 1024, а затем я переключусь на DAC2, значение на DAC1 сбросится на 0 или останется на этом значении?, @ElectronSurf
ЦАП меняет свое значение только в том случае, если вы меняете значение или перезагружаете устройство, отключая питание., @Majenko
Эта концепция, безусловно, будет работать, но ОП должен знать об этом, он не может использовать это решение в настройке с переменными / подключаемыми устройствами, где необходимо сканирование шины I2C. (например, это может вызвать переключение на raspi)., @Peter Paul Kiefer
- Отправка и получение различных типов данных через I2C в Arduino
- Как работают функции вне цикла void?
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- Как отправить строку на мастер с помощью i2c
- Как выбрать альтернативные контакты I2C на ESP32?
- Что означает в I2C «NACK получен»?
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- Несколько датчиков I2C с одинаковым адресом
MCP4725 имеет 3 бита переменного адреса. A0, к которому у вас есть доступ, и A1 A2, которые может выбрать клиент, купивший микросхемы, для создания этих коммутационных плат (см. рисунок выше). Возможно есть шанс получить платы двух адресных серий. Я знаю, что это плохой совет, если вы только что купили плату, но если нет, это может быть шанс получить четыре платы в автобусе., @Peter Paul Kiefer