www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit mehr als sechs DS18S20 am ATMEGA32


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich benutze für die Schreib/Lesevorgänge den
>internen Pull-Up-Widerstand des ATMEGA.

Versuch es mal mit einem 4k7 externen Pullup.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der interne Pullup ist zu schwach.

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, danke für die Hinweise. Kann ich denn später mehrer (ca. 5) 
DS18S20 mit einem ca. 3m langen Kabel an die Platine anschließen? Oder 
wie lang sollte die Leitung höchstens sein?

Gruß
Holger

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dich bei Maxim/Dallas mal nach einschlägigen Application Notes um. 
Da steht alles drin.

Autor: orfix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

hab 8 sensoren mit 2 draht abgeschlossen mit > 30m leitung ohne 
probleme.

http://birne.altmuehlnet.de/hp/px5/logger/avr.php

mfg

orfix

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soooo, habe einen externen Pullup von 3K3 angeschlossen und den internen 
Pullup deaktiviert. Nun läuft alles wunderbar. Zur zeit arbeiten 15 
DS18S20 an einem 1-Wire-Bus.

Gruß
Holger

Autor: Volker U. (volkeru)
Datum:

Bewertung
0 lesenswert
nicht 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

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.