LM75 mit Software TWI auslesen (Atmega 16, C)

Gast #1723855
Lesenswert?

Hallo!

Ich versuche seit Tagen, dem LM75 vernünftige Temperaturwerte zu 
entlocken. Leider scheitert es schon daran, dass der IC wie tot scheint. 
Ich bekomme weder ein ACK noch Datenbits auf den Bus.

Ich verwende ein Atmega 16, programmiere mit AVR Tools 4.0 und WINAVR 
und benutze die Funktionen aus diesem Thread 
Beitrag "I2C-Master [ohne TWI (Softwarelösung) für die ATMEGAs"

 zum Debuggen hab ich ein OSZI sowie die Simulationsumgebung von AVR 
Studio.

4.7k Pullups an SDA und SCL sind genauso verbaut wie ein 100nF C 
zwischen VCC und GND. SCL Frequenz liegt bei ca 10kHz. Anbei ist das 
Oszi-Bild, den Code hab ich auch nochmal dazu gepackt..

Die Bitfolge, die vom atmega auf den Bus gelegt wird, sieht vernünftig 
aus, es fehlt, wie gesagt nur die antwort vom LM75. Adressbits sind alle 
auf GND, also 000. das Adressbyte im ganzen sieht so aus: 0b10010001.
Angehängte Dateien:
Gast #1724298
Lesenswert?

Die Prüfung auf SCL ist dazu da, um dem Slave Clockstretching zu 
ermöglichen, nur hat's der Autor falsch geschrieben.
Du hast es ausgebessert und nochmal versucht ?

Ich sehe keinen Sinn darin, es auszukommentieren. Jedoch wenn es 
auskommentiert wird, dann sollte sich der Clock auf ca. 90kHz erhöhen 
(was der Baustein auch locker kann), nochmal nachgemessen ?
Gast #1724432
Lesenswert?

Schau mal hier:
I2C Master Interface
http://homepage.hispeed.ch/peterfleury/avr-software.html

Das ist Code der auch funktioniert und nicht Zusammengefrickeltes von 
jemand der wie beim "!SCL" nicht merkt, daß wenn er den Pin abfragen 
will, nicht die Pinnummer prüfen darf.

Du hast sicher gesehen, daß SCL = PC0 = 0 und damit while((!0) && 
(start_trials <50)) draus wird, was von der Programmlogik recht sinnfrei 
ist. Das würde mein Vertrauen zum Rest des Codes doch ein wenig 
erschüttern.

Immerhin mit lustigem Überraschungseffekt, je nachdem ob SCL als Pin0 
oder >= Pin1 definiert ist, funktioniert der Code anders. Nur nie, wie 
er soll :D
Gast #1725090
Lesenswert?

danke auch für den link. allerdings hab ich die hw-twi nicht zum laufen 
bekommen, weil ich probleme mit dem twint hatte, was nie gesetzt wurde 
und andererseits erfordert mein projekt die sotwarelösung, weil ich 
ziemlich viele lm75 abfragen muss...

hat jemand ne adäquate sw lösung parat? hab nich so viel brauchbares 
gefunden... thx
Gast #1725869
Lesenswert?

> andererseits erfordert mein projekt die sotwarelösung, weil ich
> ziemlich viele lm75 abfragen muss...

> hat jemand ne adäquate sw lösung parat? hab nich so viel brauchbares
> gefunden...

Du hast ja mittlerweile rausgefunden, daß mein Link die Softwarelösung 
war :D

Wieviele LM75 hast Du ?
Besteht die Möglichkeit, daß der Käfer tot ist ?

Kannst Du einen Screenshot posten, die Bits vom Start bis zur ersten ACK 
besser aufgelöst ?
Nicht zufällig SCL und SDA vertauscht ;-) ?
Gast #1730923
Lesenswert?

Screnshot sieht ok aus. Hab' auf einem ATM32 eine als funktionierend 
bekannte Soft TWI laufen lassen, allerdings ohne LM75, deshalb auch kein 
Feedback. Hier mal angehängt.

Hängt der LM75 allein am Bus ? Leitungslänge ?

Alles was über den LM75 zu  lesen ist, deutet darauf hin, daß dies ein 
recht unkomplizierter Baustein ist.

Versuch' doch vor dem Lesen den Pointer explizit auf das 
Temperaturregister zu setzen. Auch wenn der laut DB bereits so steht...
Angehängte Dateien:
Gast #1732035
Lesenswert?

hab jetzt auch n logic analyser angeschlossen und ich bekomme die 
gleichen ergebnisse wie in deinem screenshot. dein Adressbyte hat den 
Wert 0x91 mit dem Zusatz Read. 0x91 an sich entspricht aber schon dem 
8-Bit Adressbyte mit dem gesetzten Read-Bit also 0b10010001. Damit wird 
das Read Bit also eigentlich zweimal angegeben, einmal mit dem "Read" 
Zusatz und im Hex Wert an sich oder?

habs auch mit dem pointer preset versucht, nutzt auch nichts.
Gast #1733440
Lesenswert?

Zeig' mal einen der von Dir verwendeten Codes für die HW TWI. Hast Du 
einen anderen TWI Baustein zum ausprobieren, damit Du feststellen 
kannst, woran's hängt ?

Ich weis nicht, was da grundlegend falsch läuft, TWI ist nix besonders 
Schwieriges. Kann mir auch nicht vorstellen, daß die LM75 alle defekt 
sind. Wieviele hast Du davon zum testen ?

Kannst Du ein aussagefähiges Foto von Deinem Aufbau machen ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren