Hallo zusammen, ich habe ein zigbit funkmodul, auf welchem ein Atmega1281 und ein lm73 verbaut ist. Nun möchte ich die Temperatur des LM73 über TWI/I2C auslesen. Ich habe es schon mit der Lib von Peter Fleury versucht, leider ohne Erfolg. Im anhang sind mein i2master.c und i2master.h Dateien. diese ähneln sehr arg denen von Peter Fleury. In der main ruf ich die folgenden Funktionen auf: ... Init_TWI(); printf("Send Start %x",Send_start()); printf("Send address %x", Send_adr(0x91)); ... Ich hab das Problem, dass ich von Send_adr immer ein NOT ACKNOWLEDGE(0x20 bzw0x48) zurückbekomme, egal ob lesend (0x91) oder schreibend (0x90). Wenn ich irgendwine Adresse eingebe, bekomm ich das gleiche. -> Stimmt meine Device- Adresse nicht? Laut Datenblatt die 0x90 bzw 0x91 (Anhang LM73) Für mögliche Hinweise bin ich sehr dankbar. Mit freundlichen Grüßen Mark
Vielen Dank für dass Hochladen des kompletten ATmega Manuals. Findet man ja sonst kaum im Internetz :-( Ansonsten: Schaltplan? TWI-Taktfrequenz? ADDR-Beschaltung des LM73? PullUps vorhanden?
Im Anhang auf Seite 5 ist die Beschaltung, nach der Beschreibung sollten die Pullups eingebaut sein. Zur Taktfrequenz: die Cpu läuft mit 8MHz also hab ich nach der Formel TWBR=32 gewählt(in der datei im Anhang steht noch 72 drin). Somit ist meine SCL-Frequenz 100kHz. Also wenn ich den Beschaltungsplan richtig deute, Liegt ADDR und GROUND auf Erde?
Nach deinem Schematic liegt ADDR auf GND. Für mich heißt das, die Device address ist 1001 001x Dh. 0x92 / 0x93 Damit mal probiert? TWI-Baudrate passt.
Hat sich wohl erledigt. Hab einfach mal das Board getauscht, gleiche Einstellungen, auf dem neuen läuft es einwandfrei ;)
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.