DS18B20 Ablauf zum auslesen der Temperatur

Gast #7137823
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich möchte eine Temperatur mit einem DS18B20 auslesen.
Dafür habe ich den einfachsten Fall, Aktiv-gepowert, nur ein DS18B20 am 
Pin.
Controller ist ein Atmega8.

Ich kann ihn resetten und bekomme den Presence-Puls.
Jedoch bin ich mir nicht sicher in welcher Reihenfolge ich ihm welche 
Kommandierung geben muss. Er scheint jedenfalls nicht zu antworten.

Einzig relevant scheinen da die Abbildungen 13 und 14 im Datenblatt.
Deren Ablauf ich für meinen Fall jedoch scheinbar realisiert habe.

Eventuell habt ihr mir eine Idee, was fehlt?
1
    if(reset_ds18B20() == 1)
2
    {
3
      line0[0] = 'T'; //Kommt, immter True
4
    }
5
    else
6
    {
7
      line0[0] = 'F';
8
    }
9
    write_ds18B20_byte(0x33);
10
    read_ds18B20_byte(); //byte1
11
    read_ds18B20_byte(); //Byte2
12
    read_ds18B20_byte(); //byte3
13
    read_ds18B20_byte(); //Byte4
14
    read_ds18B20_byte(); //byte5
15
    read_ds18B20_byte(); //Byte6
16
    read_ds18B20_byte(); //Byte7
17
    read_ds18B20_byte(); //Byte8
18
    _delay_ms(900); //750ms Conversion-Time@12Bit
19
    write_ds18B20_byte(0x44);
20
    read_ds18B20_byte(); //temp_byte1
21
    read_ds18B20_byte(); //temp-Byte2
Konkret kommen nur 1en zurück (wie ich mit dem Oszi sehen kann).
Dass Timing ist korrekt, wie ich meine.

Wass ist am Ablauf/den werten falsch?

Grüße und vielen Dank,
Matthias
Gast #7138029
Lesenswert?
• ▲
▼
Hallo und vielen Dank,
Jetzt kommen sinvolle Temperaturen raus!

Mein Delay war an der falschen Stelle, (vor dem Start der Wandlung) 
sonst hätte ich die Temperatur wohl bekommen sollen.

-->Aber "CC" ist natürlich sehr sinvoll um das erste auslesen zu 
überspringen.
#7138354
Lesenswert?
• ▲
▼
Matthias schrieb:
> -->Aber "CC" ist natürlich sehr sinvoll um das erste auslesen zu
> überspringen.

Hä?

SKIP ROM [CCh] adressiert den Sensor, damit überhaupt eine Funktion 
ausgeführt werden kann.

Einen Blick ins Datenblatt sollte man schon wagen:
"The master device must issue an appropriate ROM command before issuing 
a DS18B20 function command. A flowchart for operation of the ROM 
commands is shown in Figure 11."

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.