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?
... eine Anmerkung noch: In dem Oszi-Bild werden die Pegel von SCL und SDA gezeigt.
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?
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.
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...
Hallo Zumindest sollte SDA an SDA und SDL an SDL (oder heißt das nicht SCL?) angeschlossen sein. Gruß Joachim
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....
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).
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.