Можно ли программно изменить и сохранить адрес I2C?
Я хочу управлять 3 устройствами i2c на одной линии i2c. Можно ли достичь этого без использования контактов A0,A1,A2? Я думал, что адрес устройств i2c должен быть программно изменяемым. 2 микросхемы mcp23017 и si5351 я использую.
@project i2c, 👍1
Обсуждение1 ответ
Насколько я могу видеть в таблицах данных 2 упомянутых чипов, они не предоставляют способа программно изменить адрес по шине I2C. У них есть только адресные контакты, которые должны быть привязаны к Vcc или земле для установки адреса. Большинство готовых к использованию плат с такими чипами уже имеют для этого съемные или откидные резисторы. Если вы используете пустые фишки, вам абсолютно необходимо привязать адресные контакты к фиксированному значению. Обычно это делается наполовину постоянно.
Вы также можете подключить адресные контакты к выходным контактам Arduino для динамического изменения адресов.
Нет другого способа изменить адреса, кроме как использовать адресные контакты.
- Отправка и получение различных типов данных через I2C в Arduino
- Как работают функции вне цикла void?
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- Как отправить строку на мастер с помощью i2c
- Как выбрать альтернативные контакты I2C на ESP32?
- Что означает в I2C «NACK получен»?
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- Несколько датчиков I2C с одинаковым адресом
Некоторые устройства I2C могут программно изменять свои адреса, большинство-нет. В справочнике вам все расскажут. Вы могли бы управлять контактами AX из Arduino, чтобы менять их по своему желанию, но с какой целью?, @Majenko
Почему вы не хотите использовать контакты конфигурации адреса? Именно для этого они и существуют., @Mat
@Mat bc hw designer забыл подключить эти контакты к mcu :( Если бы это было нормально, чтобы изменить программно, это сделало бы мою жизнь проще., @project i2c
Если контакты не подключены аппаратно (оставлены открытыми плавающими), MCP23017 будет показывать неопределенное поведение. Он может случайно менять адреса (даже во время работы), что бесполезно. Эти контакты должны быть соединены правильно., @PMF
@projecti2c: вы не подключаете эти контакты к MCU (в обычных настройках). Вы смотрите на таблицу данных и привязываете их, например, к земле или VCC, в зависимости от того, какой адрес вы хотите. Контакты выбора адреса не меняются во время обычных операций., @Mat