Forum: Mikrocontroller und Digitale Elektronik Onewire: Fehlerroutinen für DS18xx


von Bernd S. (Gast)


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.

von error (Gast)


Lesenswert?

Datenblatt Stichwort CRC.

von Bernd S. (Gast)


Lesenswert?

Wenn das Kabel ab ist, wie kann dann ein CRC nützen?

von (prx) A. K. (prx)


Lesenswert?

Jeder sauber programmiere 1-Wire Treiber wird anzeigen, ob das 
adressierte Gerät überhaupt vorhanden ist. Mit der CRC hat das nichts zu 
tun, sehr wohl aber mit dem Presence Pulse nach dem Reset.

von xmega (Gast)


Lesenswert?

Hallo,

Bernd S. schrieb:
> "verlorenen" Sensor bemerken.

Martin THOMAS

http://www.siwawi.arubi.uni-kl.de/avr_projects/tempsensor/index.html


Gruß xmega

von Knalltüte (Gast)


Lesenswert?

Wie wäre es wenn man das Statusregister ausliest
mfg

von error (Gast)


Lesenswert?

>Wenn das Kabel ab ist, wie kann dann ein CRC nützen?
Kabel ab = Kein CRC = Kein Sensor

von cskulkw (Gast)


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

von Route_66 (Gast)


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.

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.