Forum: Mikrocontroller und Digitale Elektronik AVR: C: MLX90614 gibt über I²C 0 aus?


von Jan B. (diphthong)


Angehängte Dateien:

Lesenswert?

Hallo an alle,
ich habe hier ein I²C Infrarot Thermometer MLX90614. Ich habe alles 
ordnungsgemäß angeschlossen (Sensor ist die 3,3V Version, AVR (ATmega32) 
5V, Spannung wird mit LM317 heruntergesetzt auf 3,3V, I²C wird mit 
Pegelwandler PCA9517 wieder an 5V Pegel angepasst). Leider bekomme ich 
als Ergebnis, nachdem 0x07 an die Adresse 0x5A gesendet wurde und 
nachdem nach einem Repeated Start drei Bytes abgefragt werden, immer nur 
0. Sowohl das MSB, als auch das LSB und das PEC. In Bild_1 (Oszilloskop) 
sieht man sehr gut, was vom Master gesendet wird und was der Slave 
antwortet. Die drei Flanken zum Schluss im blauen Signal (SDA, gelb = 
SCL) scheinen ja die drei Acks vom Slave zu sein. Dazwischen ist wie 
gesagt alles 0.
Im Datenblatt des Sensors sieht man unter ,,Figure 7" auch ein Diagramm, 
wie die I²C Kommunikation ablaufen sollte. Wenn ich den Sensor über die 
Adresse 0x00 anspreche (Bild_2) ist das Bild genauso, wie im Datenblatt, 
bis auf die Tatsache, dass das MSB, das LSB und das PEC eben 0 sind.
Woran liegt das? Habe ich vergessen, vorher ein bestimmtes Register zu 
konfigurieren oder anzusprechen?
Vielen Dank für Eure Hilfe und
Viele Grüße
Jan B.

von Martin S. (sirnails)


Lesenswert?

Hallo Jan,

der MLX90614 ist von haus aus richtig konfiguriert (P'n'P sozusagen).

Wenn Du an die Adresse 0x00 schickst, dann erhälst Du keine sinnigen 
Daten? Mach mal eine Abfrage, die er auf jeden Fall beantworten muss:

:s002es0103p

Also Startbit, Adresse 0x00, Register 2e, Repeatet-Startbit, Adresse + 1 
0x01, 3 Byte lesen, Stopp-Bit.

Wenn hier nur NACK oder gar keine sinnigen Daten kommen, ist der MLX 
wohl defekt.

0 kommt eigentlich nur dann zurück, wenn die Adresse falsch ist.

Grüße M. Schwaikert

von Konstantin (Gast)


Lesenswert?

Hello! I had the same problem. And i understand where the problem was. 
After you sendig  slave adr and command, there is too much time passed 
to restart and read. it has to be almost in time with stop-bit.

great regards, Konstantin.

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
Noch kein Account? Hier anmelden.