Hallo! Habe mir eine Testplatine für den AT89C5131 gebaut! Funktioniert echt super! Ich habe auch mit dem I2C- Anschluss experimentiert (I2C Baustein PCF 8574 8 bit I/O- Baustein). Habe mir dazu ein Beispielprogramm von der ATMEL- Seite besorgt. Funktioniert!!!! Meine Frage: Ich habe mir auch den LM75 (Temeratursensor auf I2C- Basis) gekauft. Wie kann ich den Temperaturwert des LM75 abfragen. Ich kann nach dem Senden der Slaveadresse einen Wert auslesen (z.B beim PCF 8574). Beim LM75 muss ich aber nach dem Senden der Slaveadresse zwei Werte zurück lesen. Wie geht das??? Gibt es dazu für den AT89C5131 irgendwo Beispielprogramme??? Das selbe Problem habe ich natürlich auch wenn ich einen I2C- Slave habe, bei dem ich zwei oder drei Werte nach dem Senden der Slaveadresse senden möchte. Vielleicht hat jemand schon ein C-Programm für mein Anliegen geschrieben. Danke für Eure Hilfe! Werner
Hallo Werner, der LM75 Chip hat verschiedene Register. Achtung: Dabei wird die Adresse des anzusprechenden Registers nicht direkt übergeben. D.h. du musst sie zuerst einstellen. Anschließend kannst du jeweils entweder auf die Temperatur (Faktor 2 falsch) oder einen der beiden Hysterese Werte zugreifen, oder auf das Configurations Register. Dazu gibt es für den LM75 auch eine Anleitung (von National Semiconductors?) mit genauer Aufschlüsselung der Bitfelder. Am i2c Bus ist noch wichtig, dass du kein Stopp-Bit zwischen zwei 8 Bit Werten schickst, wenn diese einen 16 Bit Wert (z.B. Temperatur) bilden! Deshalb brauchst du für 16 Bit eine andere Funktion als für 8 Bit. Tschüß Michael Jungnickl
Sieh mal hier nach, ist zwar in Assembler, aber sehr gut kommentiert. http://sprut.de/electronic/pic/programm/thermo75/thermo75.htm Wenn ich das Datenblatt des LM75 und den Code von Sprut richtig gelesen habe, musst Du direkt nach dem Empfang des 1. Bytes ein ACK statt des Stopp-Bits senden und erneut ein Byte vom LM75 abfragen, welches dann den 0.5°C-Wert darstellt - dann kommt das Stopp-Bit (Hoffentlich war das richtig) Hinweis: Sprut benutzt zwei Functionen für die beiden Bytes, aber das wirst Du schon sehen. Tschö JoJo
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.