Onewire: Fehlerroutinen für DS18xx

Gast #2683447
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
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
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.