mikrocontroller.net

Forum: Fahrzeugelektronik DS1621 gibt immer die gleiche Temperatur zurück


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Raphael K. (wolly300)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe aktuell ein großes Problem mit dem DS1621 Temperatursensor.

Hier einmal das Datenballt für alle:

https://pdfserv.maximintegrated.com/en/ds/DS1621.pdf

Ich verwende als Mikrocontroller einen STM32 F429BI und von JumpStart 
die Cortex M IDE.

Ich kann den Chip ansteuern, die Register auslesen und rein schreib, 
genau so wie es in dem Datenblatt auf Seite 9 gezeigt wird. Ich habe 
alles auf meinem Oszi kontrolliert.

Dabei habe ich aber das Problem, das der Chip bei der Ausgabe der 
Temperatur immer den gleichen Wert (197 glaube ich, kann ich gerade 
nicht mehr nachschauen) zurück gibt, egal ob ich einen Heißluftföhn ohne 
Kältspray hinhalte. Dazu macht der Wert aufgrund seiner hohe absolut 
keinen Sinn.

Ich steuere den Chip an, in dem ich als erstes 0xEE an den Chip schicke, 
damit er wie auf Seite 10-11 beschrieben die Temperaturausgabe startet.

Danach frage ich mit dem Register 0xAA immer die zwei bytes ab, die 
immer den gleichen Wert haben. Habe den Chip bisher 3 mal getauscht, 
damit ich einen Produktionsfehler ausschließen kann (aber alles andere 
geht halt ganz normal am Chip).

Jetzt bin ich leider am Ende mit meinem Wissen.

Was könnte den ein Fehler für den immer gleichen Rückgabewert sein ?

Danke für eure Hilfe.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Raphael K. schrieb:
> Ich steuere den Chip an, in dem ich als erstes 0xEE an den Chip schicke,
> damit er wie auf Seite 10-11 beschrieben die Temperaturausgabe startet.
>
> Danach frage ich mit dem Register 0xAA immer die zwei bytes ab,

Wieviel Zeit gibts du den DS1621 von Start_Convert_T zum READ_Temprature 
zum wandeln?? Entnehme das du keine Wandlungszeit einhälst...

mindestens 750ms siehe Seite 15/16 deiner PDF

Autor: Raphael K. (wolly300)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
2 Sekunden habe ich ihm gegeben

Autor: STM Apprentice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Raphael K. schrieb:
> Was könnte den ein Fehler für den immer gleichen Rückgabewert sein ?

Der Fehler sitzt vor deinem Bildschirm.

Solange du deinen Code nicht zeigst ist weiteres Raten angesagt.

Autor: STM Apprentice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Raphael K. schrieb:
> ich habe aktuell ein großes Problem mit dem DS1621 Temperatursensor.

Einen Schaltplan müsstest du auch noch zeigen. Vermutlich hast
du gar keine Pullups vorgesehen.

Merkst du es? Alles Ratespiel solange keine Fakten vorliegen.

Autor: K. S. (the_yrr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Raphael K. schrieb:
> Dabei habe ich aber das Problem, das der Chip bei der Ausgabe der
> Temperatur immer den gleichen Wert (197 glaube ich, kann ich gerade
> nicht mehr nachschauen) zurück gibt

was sind diese 197? Rohdaten? Grad C? in dezimal oder hex?

Raphael K. schrieb:
> Danach frage ich mit dem Register 0xAA immer die zwei bytes ab, die
> immer den gleichen Wert haben.
du hast doch ein Oszi. kann das I2C decodieren, und wenn ja, was kommt 
als Antwort auf den 0xAA Befehl (nichts interpretiertes, nur die Bytes 
so wie sie auf dem Bus kommen)?

STM Apprentice schrieb:
> Einen Schaltplan müsstest du auch noch zeigen. Vermutlich hast
> du gar keine Pullups vorgesehen.
dann würde kein ack kommen und das Ergebnis nicht konstant 197 oder was 
auch immer sein.

STM Apprentice schrieb:
> Der Fehler sitzt vor deinem Bildschirm.
>
> Solange du deinen Code nicht zeigst ist weiteres Raten angesagt.
Dem muss ich leider zustimmen. Zeig was über den Bus kommt (und was du 
rausschickst, mit dem Oszi), zeig den Schaltplan und den Code, dann 
sieht man wo der Fehler liegt.

: Bearbeitet durch User
Autor: STM Apprentice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
K. S. schrieb:
> dann würde kein ack kommen und das Ergebnis nicht konstant 197 oder was
> auch immer sein.

Ein ACK kommt auch dann (automatisch) wenn es der Bus nicht
schafft einmal den High-Pegel zu erreichen.

Autor: K. S. (the_yrr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STM Apprentice schrieb:
> Ein ACK kommt auch dann (automatisch) wenn es der Bus nicht
> schafft einmal den High-Pegel zu erreichen.

damit hast du recht, aber dann kommt halt das Nack am Ende nicht, und 
der Bus müsste auch wegen Clock stretching stecken bleiben.

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.

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