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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.