www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS1820 & DS2401


Autor: Peter W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich hoffe mir kann jemand bei meinem Problem helfen.

Ich habe ein Programm geschrieben und schaffe es nicht aus dem DS1820
etwas ordentliche herauszubekommen.
Seltsamerweise kann ich den DS2401 (Seriennummer) mit meinem Programm
komplett auslesen.

(das Programm soll nur den ROM CODE auslesen, der beinhaltet bei beiden
den Family Code, die 48 Bit Serien Nr. und einen 8 Bit CRC Wert)

Nun zu meiner Frage ?

Kann man sich sicher sein wenn man einen DS2401 auslesen kann, das mein
Programm dann auch problemlos einen DS1820 auslesen kann
Die Timings des DS1820 und des DS2401 sind so wie ich es in den
Datenblättern gelesen habe gleich, oder sieht das jemand anders.

Zur Schaltung:
- der DS1820 oder DS2401 ist mit einen ATmega128L verbunden
- ich betreibe die beiden im „parasite powerd mode“
- ich habe keinen Pull- Up Widerstand, da ich den internen vom
ATmega128L nutze
- der DS1820 / DS2401 wird alleine am Bus betrieben

Vielen Dank im Voraus
Peter W.

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
verwendest du den DS1920 im Parasitär-Modus?
Wenn ja, ist der VCC-Pin und der GND-Pin miteinander verbunden?
Du solltest einen Pull-up-Widerstand doch mal verwenden (4,7k zu +). Im
Parasitärmodus ist er auf jeden Fall notwendig. Und ich kann mich an
meine ersten Versuche im normalen Modus erinnern. Da kriegte ich ihn
auch erst mit externen Pull-up zum laufen...

Gruß Elektrikser

Autor: Peter W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werde noch ganz verrückt mit den DS1820.

Ich habe zwar hinbekommen das er etwas funktioniert dies klappt aber
nur wenn:

-ich den Sensor entweder im „parasite“ oder im „externel supply“ mode
benutze
-und den Internen Pull Up Widerstand vom Atmega128L benutze

Das heißt ich schalte den Port mit
„Output Low“ (Sink) - -> DDRXn =1 und PORTXn = 0
„Pull Up“ - ->DDRXn = 0 und PORTXn = 1
hin und her

Das Problem dabei ist das die Temperatur etwas zu hoch ist (bei
Zimmertemperatur / CRC Cecksumme stimmt) und wenn ich den Sensor mit
Kälte Spray abkühle (Minusgrade) die Temperaturwerte überhaupt nicht
mehr stimmen (CRC Cecksumme und ausgelesene Werte sind falsch).



Auch die Variante mit dem externen Pull Up Widerstand habe ich schon
ausprobiert.
Dabei benutze ich nicht den internen Pull Up Widerstand des ATmega128L
sondern schalte den Port nach Tri-state.

Das heißt ich schalte den Port mit
„Output Low“ (Sink) - -> DDRXn =1 und PORTXn = 0
‘Tri-State” (Hi-z) - ->DDRXn = 0 und PORTXn = 0
hin und her

doch bei dieser Variante funktioniert nur das Reseten, ich bekomme
dabei auch vom Sensor den „Presence Puls“ zurück
meine ausgelesenen Werte sind aber alle nur 0xFF.

Dies kommt mir so vor als ob der DS1820 die Leitung nicht richtig auf
Low ziehen kann oder sie viel zu langsam auf Low herunterzieht.

Habe auch schon versucht verschiedene Werte von Pull Up Widerstanden
einzusetzen (4,7K ; 2,2k ; 1,5k) doch das Ergebnis bleibt gleich.
Wenn ich bei dieser Variante den Pull –Up Widerstand ganz herausnehme
merke ich dass, das Resten fehl schlägt und die Leitung auf Low
bleibt.

Komisch ist an der Sache ist das die Variante mit dem internen Pull-Up
fast funktioniert, und bei Beschaltung mit einen externen Widerstand
fast überhaupt nix geht

Kennt jemand diese Probleme und wie kann man sie beheben.
Hat jemand schon den DS1820 an einen ATmega128 gehängt und wie sieht
das dazugehörige Programm (in C) aus.
Kann es Timing Probleme bei der Programmierung geben wenn man einen
ext. Pull Up Widerstand verwendet. Wie sieht eure Schaltung aus ??
Fragen über Fragen, ich hoffe ihr könnt sie beantworten.

Autor: GEORG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HALLO PETER W. ICH HABE EIN DS2401 UND KANN DEN LEIDER NICHT AUSLESEN
HABE GELESEN DAS DU EINE MÖGLICHKEIT HAST . KANNST DU MIR EINEN TIPP
GEBEN WIE KANN ICH ES AUSLESEN

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.