Forum: Mikrocontroller und Digitale Elektronik DS1621 mit ATmega8 über TWI - Fleury läuft nicht


von TS-Truppe (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

folgende Fakten:

- I2C / TWI mit ATmega8 als Master
- Temperatursensor DS1621 als Slave
- Temperaturwerte sollen ausgelesen werden (ach!)

- der Sensor ist nach den Angaben aus seinem Datenblatt angeschlossen
- DS1621 Adresse 0x07 (wie bei Fleury)
- Pullup-Widerstände: 4k7

- Software (also main und includes) von Fleury (inklusive UART, aber die 
ignorieren wir hier), befindet sich im Anhang

Das Ganze wirft am Oszilloskop das angehängte Bild aus.

Also so viel wissen wir: eine I2C-Kommunikation ist das nicht!

Was machen wir falsch?

von TS-Truppe (Gast)


Lesenswert?

... eine Anmerkung noch:

In dem Oszi-Bild werden die Pegel von SCL und SDA gezeigt.

von Justus S. (jussa)


Lesenswert?

Vielleicht verstehe ich euer Bild falsch, aber so wie ich das sehe, 
tastet ihr ein Signal mit 100 oder 400 kHz mit 20kS/s ab, oder nicht?

von TS-Truppe (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ich habe das Oszi Bild nochmal während des "Ausschlages" 
angehalten und die Zeitachse auf 5ns/div Eingestellt. Desweiteren habe 
ich dieses Bild nochmal herangezoomt. Soweit ich das verstehe ist das 
aber nicht mal annährend ein I2C-Signal.
Die beiden Bilder dazu habe ich angehängt.

von Justus S. (jussa)


Lesenswert?

TS-Truppe schrieb:
> Hallo ich habe das Oszi Bild nochmal während des "Ausschlages"
> angehalten und die Zeitachse auf 5ns/div Eingestellt. Desweiteren habe
> ich dieses Bild nochmal herangezoomt. Soweit ich das verstehe ist das
> aber nicht mal annährend ein I2C-Signal.
> Die beiden Bilder dazu habe ich angehängt.

das kann ja gar kein I2C-Signal sein, wenn die "Pulse" im GHz-Bereich 
sind...ein Schaltplan wär mal nicht schlecht...

von TS-Truppe (Gast)


Angehängte Dateien:

Lesenswert?

der Schaltplan!

von Joachim (Gast)


Lesenswert?

Hallo

Zumindest sollte SDA an SDA und SDL an SDL (oder heißt das nicht
SCL?) angeschlossen sein.

Gruß
Joachim

von TS-Truppe (Gast)


Lesenswert?

Oh Sorry, hab mich beim Zeichnen vermalt:-).
Ist natürlich SCL und SDA. Unsere Schaltung haben wir mehrmals überprüft 
und neu aufgebaut um diesen Fehler auszuschließen. Wir hatten auch schon 
mit einem Selbstgeschriebenen Programm ein Signal auf den i2c Bus 
bekommen. d.h. der µC ist nicht kaputt. Wir hatten nur das Problem das 
mit unserem Programm der DS1621 uns keine Daten geschickt hat, darum 
haben wir jetzt vor das "Fleury" Programm zu benutzen. Den DS1621 haben 
wir auch schon gewechselt gehabt und das hat nichts geändert.

Wir wissen echt nicht mehr weiter....

von TS-Truppe (Gast)


Angehängte Dateien:

Lesenswert?

Achso ich habe eben nochmal den sensor abgeklemmt und dann das Signal am 
I2C Bus gemessen und dann haben wir folgendes Oszi Bild(im Anhang).

von Guido (Gast)


Lesenswert?

Hallo TS-Truppe,

ich lese in deinen Texten immer etwas von Adresse 0x07. Das kann nicht 
sein. Im Datenblatt ist folgendes zu lesen:
1
SLAVE ADDRESS
2
A control byte is the first byte received following the START condition from the master device. The
3
control byte consists of a 4-bit control code; for the DS1621, this is set as 1001 binary for read and write
4
operations. The next 3 bits of the control byte are the device select bits (A2, A1, A0). They are used by
5
the master device to select which of eight devices are to be accessed. These bits are in effect the 3 least
6
significant bits of the slave address. The last bit of the control byte (R/W ) defines the operation to be
7
performed. When set to a “1” a read operation is selected, when set to a “0” a write operation is selected.
8
Following the START condition the DS1621 monitors the SDA bus checking the device type identifier
9
being transmitted. Upon receiving the 1001 code and appropriate device select bits, the slave device
10
outputs an acknowledge signal on the SDA line.

Somit ergeben sich bei deiner Schaltung folgende Adressen:
Read: 0x9F
Write: 0x9E

Gruß
Guido

von TS-Truppe (Gast)


Lesenswert?

Hallo Guido,

danke erst mal für den tipp, aber mit 0x07 meinte ich die Adresse die 
ich selber ändern kann(mit A0-A2) dann kommt natürlich für READ 0x9F und 
WRITE 0x9E heraus.

von TS-Truppe (Gast)


Lesenswert?

Hab den "Fehler" mitlerweile gefunden:-)

Habe als erstes wieder das SENDEN über den USART einprogrammiert und die 
DATEN dann auf dem PC emfangen. Danach den DS1621 mit Kältespray bespüht 
und die Daten haben sich geändert:-). Habe aber immer noch das selbe 
Signal wie vorher auf dem Oszi gehabt. Musste also was mit meinem Oszi 
Einstellungen nicht stimmen.

Ich habe dann bei der main.c von Fleury die warteschleifen (warte()) 
herauskommentiert. Siehe da, auf dem Oszi gibt es jetzt vernüftiege 
Werte. Ich denke das Problem lag daran, dass das Signal für eine längere 
Zeit auf High steht als das eigentliche Signal. Dies bedeutet das die 
"Ausschläge" unser Eigentliches Signal war:-).

Vielen vielen dank nochmal für eure Lösungsvorschläge...........

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.