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


von Raphael K. (wolly300)


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.

von chris (Gast)


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

von Raphael K. (wolly300)


Lesenswert?

2 Sekunden habe ich ihm gegeben

von STM Apprentice (Gast)


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.

von STM Apprentice (Gast)


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.

von K. S. (the_yrr)


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
von STM Apprentice (Gast)


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.

von K. S. (the_yrr)


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.

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.