-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Frage zum DS18S20!

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2007
    Alter
    28
    Beiträge
    14

    Frage zum DS18S20!

    Anzeige

    Hallo an Alle!

    Ich habe vor mit einem DS18S20 und einem PIC16F628A eine Temperaturabhängige Steuerung zu entwickeln. Ich hab mir dazu beim Conrad eine DS18S20 ausgesucht. Das Programm dazu möchte ich in Assembler verfassen. Der DQ Pin wird mit einem 4k7 Widerstand gegen +5V gezogen. Leider ist jetzt die ganze Sache mit dem Temperatur messen aufwändiger als ich sie mir vorgestellt hatte. Aber das ist ja immer so!

    I hätte dazu jetzt ein paar Fragen, und zwar:

    Erstens:

    Ich hab mich heute intensiv mit dem Datenblatt auseinandergesetzt und bin zu folgendem Entschluss gekommen: Als erstes muss der PIC einen 480µs langen Resetimpuls (0V) schicken, danach ist die DQ Leitung wieder auf +5V. Anschließend antwortet der DS18S20 mit einem 60-240µs andauernden Precense Puls (0V). Danach ist die DQ Leitung wieder auf +5V und der DS18S20 ist aktiv. Anschließend muss man den Befehl READ-ROM [33h] zu dem DS18S20 schicken. Jeder Impuls muss min. 60µs andauern. Danach sendet der DS18S20 einen 64-Bit Code in welchem der 8-Bit Family Code, der 48-Bit Seriennummer und die 8 CRC-Bits stecken. Jetzt ist der DS18S20 bereit für Funktion Kommandos.
    Jetzt schicke ich den Befehl CONVERT T [44h] zu dem DS18S20. Jeder Impuls muss wieder 60µs anliegen. Anschließend wertet der DS18S20 die Temp. aus und speichert sie im Scratchpad (Byte 0 u. 1). Das kann bis zu 750ms dauern. Anschließend muss der PIC den Befehl READ-SCRATCHPAD [BEh] zum DS18S20 schicken. Jetzt sendet der DS18S20 die Daten Binär, beginnend mit dem LSB bis zum MSB, zum PIC. Jeder Impuls liegt wieder 60µs an und zwischen den Impulsen ist eine Pause von 1µs zur Entprellung. Danach muss man sie auf dem PIC speichern und man hatt die aktuelle Temp. im Byte 0 u. 1 des Scratchpads stehen. Danach kann man sie weiterverarbeiten.

    Meine Frage jetzt:
    STIMMT DAS SO WIE ICH DAS VERSTANDEN HABE?


    Zweitens:

    Wie schicke ich mit einem PIC zum Beispiel den CONVERT T [44h] Befehl? Muss ich nur den Binärcode [01000100] zum DS18S20 schicken, wobei jedes Bit wieder 60µs anliegen soll und zwischen den Bits 1µs Pause sein soll? Oder wie genau funktioniert das?


    Ich Danke euch schon jetzt für eure Mühe und Hilfe!
    MFG Peter Holzer

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    29.03.2007
    Beiträge
    15
    Hi,
    wollte mal wissen ob du nun schon weiter gekommen bist weil ich sitze genau vor diesem Problem...

    mfg
    schally

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2007
    Alter
    28
    Beiträge
    14
    Hi,

    Ja ich habe das Problem schon gelöst!
    Es funktioniert genauso, wie ich es beschrieben habe!

    Mfg Peter

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    29.03.2007
    Beiträge
    15
    hi,
    hast du vvl noch den Code?

    mfg
    schally

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2007
    Alter
    28
    Beiträge
    14
    Hi,

    Könnte ich dir den Code per e-Mail schicken?
    Wäre bequemer für mich.

    Mfg Peter

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    29.03.2007
    Beiträge
    15
    Hi
    habe dir meine Email Adresse per PN geschickt.

    mfg
    schally

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Ich habe soeben den ersten DS18S20 an einem Atmega8 in Betrieb genommen und es funktionierte unter Zuhilfenahme der BASCOM-Hilfe im RN-Wissen auf Anhieb. Temperaturanzeige in 0,5 grad-Schritten, alles ok.
    Um nun die Genauigkeit zu erhöhen will ich die Bytes 7 und 8 nutzen. Leider fand ich dazu bisher kein BASCOM-Code, eine normale Formel würde mir jedoch auch reichen. Hat da jemand eine Quelle? VG Micha

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Jetzt laufen auch Mehrere an einem Bus. Problemlos, dank den BASCOM-Codeschnipseln hier im RN-Wissen. Das Problem mit der höheren Genauigkeit mittel Byte 7 und Byte (hab die Bytes, wie in den Codeschnipseln von 1 gezählt) konnte ich durch Verendung von Variablenvielfchen des Formel aus dem Datenblatt und entsprechender Variablendimensionierung in Bascom lösen. VG Micha

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hi,
    kannst du hier etwas von Deinem Bascom-Code reinstellen, damit man sieht was Du gemacht hast?

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Hallo!

    Das Problem mit der höheren Genauigkeit mittel Byte 7 und Byte (hab die Bytes, wie in den Codeschnipseln von 1 gezählt) konnte ich durch Verendung von Variablenvielfchen des Formel aus dem Datenblatt und entsprechender Variablendimensionierung in Bascom lösen. VG Micha
    Sch... Rechtschreibreform!

    MfG
    Rone

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •