mikrocontroller.net

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


Autor: TS-Truppe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: TS-Truppe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... eine Anmerkung noch:

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

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: TS-Truppe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: TS-Truppe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
der Schaltplan!

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

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

Gruß
Joachim

Autor: TS-Truppe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: TS-Truppe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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).

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo TS-Truppe,

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

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

Gruß
Guido

Autor: TS-Truppe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TS-Truppe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...........

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.