mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS18B20 1-Wire Read Zeit tRDV


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin gerade dabei die ensprechenden Routinen (C) zu testen. Im 
wesentliche klappt es. Nicht ganz verstanden habe ich den "1-Wire Read 
Zero Time Slot", die Zeit tRDV, welche im Datenblatt mit max. 15us 
angegeben ist. Heist das, dass ich nach 15us erst den korrekten Zustand 
einlesen (Daten gültig) darf oder es binnen max. 15us bereits gemacht 
haben muss?
http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf

Mein Testprogramm kann ich in weiten Grenzen variieren, es wird richtig 
L oder H eingelesen. Ich muss es aber für die Serienfertigung gut 
reproduzierbar machen.
// ********************************************************************
// 1 Wire Bus
// Read Bit Funktion
// Rückgabe: 0/1 Bit
// ********************************************************************
bit w1_read_bit(void) {
bit datenbit;
  W1_BUS = 0; // 1-Wire Daten-Pin P3_4
  delay_us(6);  // ca. 25us (hier größer als tRDV ???)
  W1_BUS = 1;
  delay_us2();  // ca. 6us
  datenbit = W1_BUS; // 
  delay_us(30); // ca. 75us
  return datenbit;
}

Autor: Wer ist der Troll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"oder es binnen max. 15us bereits gemacht haben muss"

Geht aus Fig. 18 eindeutig hervor.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt innerhalb von 15µs lesen ab dem 0 setzen, d.h. Dein obiges 
Timing stimmt überhaupt nirgends.

Richtig:
0-Impuls für 1 ... 2µs
Lesen nach weiteren 2 ... 12µs
1-Impuls für >=60µs

Was sind denn das für komische Kommentare hinter den Delays?
Kannst Du die Delays nicht vom Präprozessor richtig berechnen lassen?


Peter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Programm ist noch in der Probierphase, deshalb nicht ganz sauber. 
Ich habe es so wie Du es schreibst jetzt gemacht, funktioniert. (Es hat 
aber auch mit meinem Programm schon problemlos geklappt, wahrscheinlich 
aber nicht bei jedem DS18B20, ich hatte nur einen IC bisher zur 
Verfügung.)
Danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.