Hallo miteinander, ich suche nach einer Möglichkeit, um alle Slaves an einem SMBus Master zu finden. Speziell geht es um einen MLX90614. Es können aber auch noch andere Slaves angeschlossen sein. Leider reagiert der MLX auf drei Adressen (00, 5A, 90). Somit weiß ich nie, wieviele Slaves angeschlossen sind, wenn ich pauschal einen Lesezugriff auf eine bekannte Speicherstelle durchführe. Auch können die Slaves variieren. Gibt es irgendwie ein "Hello"-Signal, mit dem ich alle Adressen durchscannen kann, und der Slave dann antwortet? Grüße M. Schwaikert
5A ist die Defaultadresse ... hab mit dem Ding auch schon gespielt, bei mir antwortete der nur über seine Slaveadresse, sonst nix und über die anderen hab ich auch im Datenblatt nix gefunden. In meiner Anwendung hab ich aber nur den Einen am I2C / SMBus, führe aber auch beim Programmstart nen Scan durch, geht 1A ... evtl. der Bustakt zu hoch? Einen generellen Ping gibts meines Wissens nicht, Du kannst nur alle möglichen 127 Read-Adressen durchgehen und abfragen ... sind ja nicht so viele.
Das mit dem Abfragen habe ich soweit probiert. Problematisch ist aber, dass ich ja auf eine definierte Speicheradresse zugreifen muss. Verletze ich diese, antwortet das Gerät mit TWI Error. Genauso, wenn ich eine Adresse anspreche, die nicht existent ist. Ich kann also auch aus dem Fehler nicht auf ein angeschlossenes Gerät tippen.
Mal eine andere Frage an dieser Stelle: Lt. Datenblatt ist die Geräteadresse 5A. Wenn ich aus dem EEProm diese auslese, erhalte ich allerdings A8 20 04. Angeblich ist nur das Lower Byte interessant. Nur wie sind A8 und 5A unter einen Hut zu bringen? Schönen Abend noch, grüße M. Schwaikert
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.