Re: Probleme beim DS2482-800 <-> DS18B20 Kategorie: I²C-Bus (von Jörg Hansen - 12.06.2009 19:51) | ||
Als Antwort auf Re: Probleme beim DS2482-800 <-> DS18B20 von Dirk - 11.06.2009 19:01 | ||
| ||
> > Hallo Jörg, > > > > das Auslesen der 10 Sensoren funktioniert jetzt soweit, allerdings dauert das Auslesen > > ("Read" anschlie�end "Convert") um die 2800ms > > => also fast 3 Sekunden > > Soweit kein Problem, wer braucht schon jede ms alle 10 aktualisierten Temp.-Werte ;-) > > Auch das zunächst komplette Auslesen aller DS18B20 (readTemp) und das anschlie�ende Konvertieren > > aller DS18B20 (convertTemp) mit anschlie�endem Warten von >750ms hilft hier nicht weiter. > > Bereits bei einem einzigen angeschlossenen Sensor werden im Durchschnitt 151ms für das Auslesen und > > anschlie�end zusätzlich 250ms für das Konvertieren benötigt.Lediglich ein Sensor ist dabei der die > > Statistik zeitlich nach unten drückt. Warum der eine aus der Reihe springt, keine Ahnung. > > Sonst sind alle Messungen ca. im gleichen Bereich. > > > > Da ich allerdings dummerweise auch, in einem anderen Thread, die Auswertung von Tastern (zur Licht- bzw. > > Rollladensteuerung) durchführe reagiert hier die C-Control, sprich der I2C-Bus in diesen ca. 3sek. > > merklich schlechter als in der Zeit, wo sich der Thread für das Auslesen der Temp.-Sensoren gerade > > im "standby-Modus" (hier über einen "sleep 10000;"-Befehl) befindet. Auch Runtersetzen der Prio für diesen > > Thread auf "run=2" hilft nicht weiter. > > Somit muss dann der Mensch den Licht-Taster zwei bzw. auch drei mal drücken, bis das > > "Licht angeht". Bewegungsmelder als Eingänge haben dann auch ihre Probleme. > > Das geht so gar nicht. > > > > Wie lange dauert bei Dir das Auslesen der besagten 15x DS18B20-Sensoren? > > Laufen bei Dir auch noch andere Geschichten in dieser Zeit auf dem I2C? > > Gibt es dabei Timing-Probleme? > > Könntest Du das alte Datenblatt (2004) als Link einfügen oder anderweitig zusenden? > > Ich kann die Geschichte mit dem 100Ohm-Widerstand noch nicht ganz nachvollziehen. > > > > Vielen Dank für Deine/Eure Hilfe. > > Hallo miteinander, > > ich habe mich mal hingesetzt und die verschiedenen Zeiten[ms] ermittelt, für welchen Schritt (Befehlszeile) > welche Zeit verstreicht. Sicherlich kann man nicht jeden Wert auf die "Goldwaage" legen, so kann man > doch eine gewissen Trend erkennen, wo die Zeit liegen bleibt. > Was ist zu erkennen? > Der "writeByte"-Befehl benötigt richtig viel (I2C)-Zeit. > Die Zeiten sind übrigens alle unabhängig von der eingestellten Prio über den run-Befehl. > Was noch auffällt ist der Zeitunterschied beim Port-0 den anderen gegenüber, was das Schreiben betrifft. > Allerdings ist beim Schreiben von "convertTEMP" und "readSCRATCHPAD" widerum kein Unterschied > festzustellen. mmmhhhhhh. > Insgesamt, über alle 10 Sensoren, dauert es 1248...1262ms zu konvertieren bzw. 2763...2772ms um die > beiden Temp.-Bytes auszulesen und anschlie�end zu konvertieren. > > Wie kann die Abfrage der 10 (später auch 15) Sensoren effektiver gestalten werden, so dass > eine sichere Erkennung eines I2C-Eingang (Licht-Taster bzw. Roll.-Taster) realisiert werden kann ? > > Grü�e Dirk. Hallo Dirk, läuft das Lesen der Taster und das Lesen der Sensoren in 2 Threads? Wie sind die Prio's der Threads ? (Prio 2 macht gar keinen Sinn, weil dann immer nur 2 Maschinenbefehle hintereinander ausgeführt werden). Das Konvertieren (Messen und in EEprom des DS18B20 schreiben) sollte vor dem ReadScratchpad erfolgen. Habe Dir die Datenblätter mal auf meine HP gelegt: http://www.hansen-leinesser.de/DS18B20.pdf http://www.hansen-leinesser.de/DS2482-800.pdf Gru� Jörg | ||
Antwort schreiben Antworten: Re: Probleme beim DS2482-800 <-> DS18B20 (von Dirk - 15.06.2009 16:21) |