Onewire: Fehlerroutinen für DS18xx

Gast #2683447
Lesenswert?

Wenn ich die Verbindung zu einem DS18S20 trenne, z.B. aus dem Steckbrett 
ziehe, dann zeigt mir mein Programm -0,5 °C an. Bei Wiederherstellen der 
Verbindung (wieder ins Steckbrett hinein) bekomme ich die bekannten 
85°C, danach geht es weiter, als ob nix gewesen wäre.

Da für meine geplante Anwendung es durchaus vorkommen kann, dass ein 
Kabel getrennt werden kann, möchte ich das Fehlen eines Sensors 
detektieren.

Das Datenblatt habe ich gelesen, finde aber nichts zu diesem Thema.

RESET und ERROR kann ich abfangen, aber damit kann man keinen 
"verlorenen" Sensor bemerken.
Gast #2684067
Lesenswert?

Bernd S. schrieb:
> Da für meine geplante Anwendung es durchaus vorkommen kann, dass ein
>
> Kabel getrennt werden kann, möchte ich das Fehlen eines Sensors
>
> detektieren.

Hallo Bernd,

im Datenblatt wird ein Resetimpuls vom Master (deine MCU) zur einleitung 
eines neuen Kommunikationsprozesses gesendet. Daraufhin muß der Sensor 
eine Prescenceimplus (ca 60 bis 240 µs) zur Angabe, ob er anwesend ist, 
senden.
Je nachdem wie Du es programmierst, kannst Du damit den fehlenden Sensor 
detektieren.

Auf Seite 10 des Datenblattes.

INITIALIZATION
All transactions on the 1-Wire bus begin with an initialization 
sequence. The initialization sequence consists of a reset pulse 
transmitted by the bus master followed by presence pulse(s) transmitted 
by the slave(s). The presence pulse lets the bus master know that slave 
devices (such as the DS18B20) are on the bus and are ready to operate. 
Timing for the reset and presence pulses is detailed in the 1-Wire 
Signaling section.

Auf Seite 15 siehst Du die Signalfolge. Und das funktioniert auch so.

Viel Spaß beim Umsetzen
Gast #2684668
Lesenswert?

Hallo!
Die Auswertung der CRC ist dennoch zwingend notwendig, denn die 
Verbindung kann ja auch nach dem presence pulse unterbrochen werden. 
Auch Störungen (EMV oder Kurzzeitunterbrechungen) können zu fehlerhaften 
Temperaturwerten führen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren