Forum: Mikrocontroller und Digitale Elektronik LM92CIM lässt sich nicht richtig auslesen


von Gizmo (Gast)


Lesenswert?

Hallo

Ich versuche gerade einen LM92CIM Temperatur Sensor per I2C auszulesen.
Ich gebe den Temperaturwert über Hyperterminal aus.
und zwar wird 456 ausgegeben, was auch mehr oder weniger stimmt.
wenn ich aber auf das ic rauf lange ändert sich gar nichts. wenn ich 
meinen mikrocontroller resete ändert sich der Temperatur wert.

danke für euere Hilfe.

Gruß Gizmo

von Thomas K. (dl7vfx)


Lesenswert?

Hallo ...,

sieht nach falscher I2C Adresse aus,
ich gehe mal davon aus das SDA und SCL richtig angeschlossen sind.
Ich hatte vor kurzem das gleiche Problem, und das war die Lösung :

i2c_start();
i2c_write(0x90);       // Device address selects write mode
i2c_write(0x00);       // Set pointer Register to select temp. for next 
read
i2c_start();                // Start signal must be sent now
i2c_write(0x91);       // Device address selects read data mode
data1 = i2c_read();    // Read high byte with ACK
data2 = i2c_read();    // read low byte with NACK
i2c_stop();
delay_ms(700);

Grüße ...
Thomas

von Gizmo (Gast)


Lesenswert?

Hi Thomas

Danke schon mal für Deine Hilfe.

Hast du das Problem auch mit einem LM92 gehabt oder mit einem anderen IC 
?

Hier ist mal mein Code:

#define I2C_READ 1    /*I2C Bus lesen*/

#define I2C_WRITE 0      /*I2C Bus schreiben*/

#define LM92CIM 0b10010100

#define TEMPERATUR 0x00
while(1)
{

i2c_start_wait(LM92CIM+I2C_READ);/*Device Adresse schreiben*/

  temp =  i2c_readAck();

  temp<<=8;

  temp |=  i2c_readNak();

  temp>>=3;


    sprintf( buffer_string, "DATA=%u\n\r", z);

    z++;

    USART1_puts (buffer_string);

}

Die Adresse vom LM92CIM ist laut Datenblatt 10010 A1 ist bei mir 1,
A0 ist 0.

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.