Ведомые устройства i2c с одинаковым адресом

Я разрабатываю встроенную систему на STM32 F107, которая обменивается данными через i2c с двумя подчиненными устройствами: руководством RFID-считывателя RFID и руководством EEPROM модуля EEPROM. Эти два устройства имеют одинаковые ведомые адреса A0 (для операций записи) и A1 (для операций чтения). Если использовать только одно устройство, оно работает нормально. Но если я использую оба из них, у меня есть проблема. Сначала я читаю идентификатор карты из считывателя rfid, затем записываю его в eeprom (до этого все в порядке), когда я пытаюсь снова прочитать из считывателя rfid, я получаю входные данные, которые являются неправильными и всегда одинаковыми, даже если Я меняю карту. Что происходит и что я могу сделать, чтобы решить проблему?

2 ответа

Решение

Устройства должны иметь разные адреса. Вам следует перенастроить любое устройство на использование другого адреса, чтобы избежать конфликта. Обычно это делается с помощью перемычек (JP1, JP2 на RFID-ридере) или путем аппаратного соединения некоторых адресных контактов на чипе (контакты A0 и A1 на чипе EEPROM).

Если для перемещения устройства I2C нет дополнительных контактов, попробуйте использовать буфер i2c или i2c MUX.

Другие вопросы по тегам