Wie wählen I2C-Module zwischen mehr als 2 Slave-Adressen aus?

Ich verwende den I2C-Temperatursensor TMP112 und habe festgestellt, dass Sie zwischen 4 Slave-Adressen wählen können, indem Sie den A0-Pin mit V +, GND, SCL oder SDA verbinden.

Wie erkennt der Sensor zwischen SCL, SDA und V+?

Es macht Sinn, dass V+ und GND das LSB der Slave-Adresse einstellen können, aber ich bin gespannt, wie die anderen beiden Verbindungen funktionieren.

Ich verwende diesen Sensor in einem Bachelor-Senior-Projekt und bin nur neugierig, wie das funktioniert. Die Antwort wird meine Verwendung des Sensors nicht beeinflussen; Ich bin nur neugierig.

Ich sehe nur zwei mögliche Adressen im Datenblatt. Wählbar durch Anschluss an entweder Vcc oder GND. Wo hast du vier gesehen?
@EugenSch. - FYI, siehe Abschnitt 7.3.2.2 auf Seite 12 des Datenblatts. Es wird behauptet , dass der A0Pin mit den 4 Auswahlmöglichkeiten des OP verbunden werden kann, um verschiedene I2C-Adressen auszuwählen. Das ist anders als in Abschnitt 5 auf Seite 3, wo nur die 2 Optionen aufgeführt sind, die Sie erwähnen. [Abschnitt 8.2.1 auf Seite 25 listet auch die 4 Adressoptionen auf.]
Hm. Interessant. Macht aber keinen Sinn...
Nun, ich denke, es könnte sich beim Start selbst konfigurieren, indem es eine spezielle Sequenz an diese Pins sendet. Oder tun Sie es zur Laufzeit, indem Sie A0 mit SCL und SDA vergleichen
@ DavidG25 - Re-Feedback, wie Sie gefragt haben: (a) Wenn Sie ein Gerät / eine Komponente erwähnen, stellen Sie Links zu deren Datenblättern bereit (wenn Sie nicht genügend Repräsentanten für mehrere Links haben, fügen Sie sie als Text hinzu und fragen Sie jemanden mit genug rep., um sie in Ihren Beitrag zu bearbeiten); (b) Erklären Sie den Kontext Ihrer Frage, dh warum stellen Sie eine Frage? Wie genau wollen Sie die Antworten verwenden? Das Fehlen eines klaren Grundes und Kontextes für eine Frage führt oft zu verschwendeter Mühe von Lesern, die versuchen, sie zu klären, und kann sie so davon abhalten, darauf zu antworten. Kurz gesagt: Machen Sie es den Lesern leicht, Ihnen zu helfen :-) Viel Glück!

Antworten (1)

Ich denke, dass der Sensor zwischen hartem Vcc und Masse unterscheiden kann, im Gegensatz zu SCL und SDA, die nur Pullups auf Vcc haben. Während des Einschaltens kann das Gerät A0 testen, indem es Testdaten über SDL und dann über SDA sendet. Wenn A0 unabhängig von den Testdaten immer Null ist, wird es mit GND verbunden. Wenn es immer eins ist, ist es mit Vcc verbunden. Wenn es den Status eines dieser Ausgänge verfolgt, kann das Gerät wissen, mit welchem ​​Pin A0 verbunden ist (SDL oder SCA).

Das macht Sinn. Dies ist wahrscheinlich in einer Einschaltzeit enthalten, während der der Sensor nicht verfügbar ist. Vielen Dank für Ihre Antwort.
Es ist ziemlich einfach. Der Temperatursensorteil verfügt über interne Schaltkreise, die prüfen können, ob zwischen dem A0-Pin und entweder SDA oder SCL ein niedriger Strompegel besteht.