У меня есть пара АЦП на одной и той же шине I²C, которые по умолчанию имеют один и тот же адрес. Мой первый инстинкт подсказывает мне использовать мультиплексор I²C, такой как TCA9544A , но это потребует отправки байта в мультиплексор перед получением данных от АЦП, и я хотел бы избежать этого (поскольку мне нужно непрерывно считывать данные так же быстро, как и как умею).
АЦП поддерживают настраиваемое назначение адресов через I²C, поэтому мне просто нужно убедиться, что я отправлю байт конфигурации на один единственный АЦП. Я мог бы включить полевой транзистор в линию SDL к каждому АЦП, чтобы у меня был только один АЦП, подключенный во время назначения адреса, но, вероятно, есть гораздо более элегантное решение, поскольку должна быть куча людей, имеющих одну и ту же проблему. Мои условия поиска в Google недостаточно хороши, чтобы найти ответ :(
Эта проблема, действительно, довольно распространена. Вот типичное решение...
(Все это предполагает, что у вас есть запасные штифты, которые могут сильно различаться.)
Если у чипа есть контакт включения чипа (CE), вы сможете использовать его, чтобы разрешить несколько идентичных устройств на одной шине и с одним адресом. К сожалению, указанный вами чип не имеет этого вывода :(
В качестве альтернативы подайте питание на микросхемы от контактов MCU, что будет иметь аналогичный эффект.
Первый вариант является лучшим, так как микросхему не обязательно нужно настраивать каждый раз, и потенциально она может выполнять захваты АЦП, пока другая микросхема использует шину.
В противном случае чипу потребуется некоторый запуск и получение времени каждый раз, когда он включается/запускается. Это повредит пропускной способности/задержке, но это можно скрыть.
Если это невозможно сделать способом CE, а альтернатива слишком проблематична для вас, то да, скорее всего, вам понадобится какая-то буферная ИС. Они делают юниты, которые не требуют команды конфигурации. См. комментарий Макмайера к исходному сообщению.
оправдывающий
Клейтон Лауден
Прохожий
Фотон
Клейтон Лауден
Ник Алексеев
Прохожий
Макмайер
Клейтон Лауден