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.