Probleme mit mehr als sechs DS18S20 am ATMEGA32

Gast #1354203
Lesenswert?

Moin,

ich habe ein Assembler-Programm geschrieben, welches mir die an einem 
Port eines ATMEGA32 angeschlossenen DS18S20 ausliest.

Alle DS18S20 sind parallel angeschlossen. Alle (+)-Pins liegen an +5V, 
alle (-)-Pins an Minus und alle Daten-Pins sind an einem Pin des 
ATMEGA32 angeschlossen. Ich benutze für die Schreib/Lesevorgänge den 
internen Pull-Up-Widerstand des ATMEGA.

Mein Programm liest die 8 Bytes des ROM-Codes ein. Anschließend erfolgt 
die Prüfung mittels einer von Peter Dannegger hier im Forum 
veröffentlichte CRC-Routine. Wenn diese negativ ausfällt, beginnt das 
Einlesen des ROM-Codes erneut.

Solange DS18S20 zu finden sind, wird die ROM-Search-Routine wiederholt. 
Die Anzahl der anzuschließenden DS18S20 ist eigentlich nur durch den 
RAM-Bereich des Controllers beschränkt.

Wenn keine weiteren DS18S20 mehr vorhanden sind, dann wird die ROM-Suche 
beendet und es wird die Temperatur (0,5K-Auflösung) der vorhandenen 
DS18S20 ausgegeben.

Ich habe insgesamt 18 DS18S20 aus verschiedenen Chargen zur Verfügung. 
Egal wie ich kombiniere, es funktioniert!

Aber:

Sobald mehr als sechs Temperatursensoren angeschlossen werden, 
funktioniert das Einlesen nicht mehr. Schon beim ersten DS18S20 stimmt 
beim Einlesen die CRC nicht mehr.

Entferne ich irgendeinen der sechs funktiniert wieder alles. Es ist 
definitiv kein DS18S20 defekt. Kann es sein, dass der Port-Pin mit so 
vielen DS18S20 nicht klar kommt?


Gruß
Holger
#2309352
Lesenswert?

Mir ist auch aufgefallen, dass nur eine Sekunde Wartezeit zwischen der 
Initialisierung des Messvorganges und dem Auslesen des Scratchpads 
manchmal nicht ausreicht, obwohl laut Datenblatt die Konvertierung 
maximal 750 ms dauern soll. Offenbar braucht der Sensor ab und zu auch 
mehr als eine Sekunde, um die Temperatur zu messen. Es werden dann 
unerwartet 85,0 Grad zurückgemeldet (Initialisierungszustand). Wenn man 
mindestens 1,5 Sekunden wartet, tritt das Problem nicht auf. Ich warte 
daher sicherheitshalber schon 2 Sekunden.

Gruß, Volker

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren