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