Hallo, Hat jemand von euch schonmal mit diesem Chip gearbeitet? Speziell geht es mir darum 6x einen DS18S20 auszulesen. - Kanal 0 wählen, wandlung starten - aktivieren des SPU(Strong Pull Up) - Kanal 1 wählen, wandlung starten - aktivieren des SPU(Strong Pull Up) . . Warten, bis alle DS18S20er gewandelt haben (800ms) . - Kanal 0 wählen, SPU aus, daten auslesen - Kanal 1 wählen, SPU aus, daten auslesen geht das so? Ich meine speziell das Config Register ist dieses pro Kanal definierbar oder gilt dies für alle Kanäle gemeinsam? Im Datenblatt kann ich momentan nichts darüber finden. Evtl. bin ich auch zu Blöd. Viele Grüße, Tubie
Ohne dieses ICs näher zu kennen, schlage ich vor, die Wandlung von Kanal 1 erst zu starten, nachdem Kanal 0 mit der Wandlung fertig ist, da sonst alle 6 Kanäle gleichzeitig versorgt sein wollen. Das IC ist ein 8-Kanal Multiplexer. Auf Seite 5 sehe ich nur ein Config-Register. Und auf Seite 11 lese ich bei SelectRegister: Restriction 1-Wire activity must have ended before the DS2482 can process this command. Also: alles schön der Reihe nach, einer nach dem anderen. Willst Du einen langen Bus betreiben? oder warum verwendest Du dieses IC? 6 OneWires an einem µC-Pin geht nämlich auch recht gut und kostet nichts.
Hallo xxx, der I2C Bus wird eh schon in der Schaltung verwendet (RTC+EEProm) also kann ich hiermit sehr bequem und vor allem Timing unabhängig auf die 1Wire's zugreifen. Ich verwende pro Bus nur einen Sensor, da ich dann auf die ganze sucherei mit den ID's verzichten kann. Und wenn mal ein Sensor defekt ist, so kann ich ihn einfach austauschen und weiter machen. Da ich gerade noch 2 IO's am mega16 freihabe, kam mir der I2C auch recht gelegen für das 1Wire Zeugs. gruß, Tubie
Hallo, ich werde die Sensoren jetzt über den Vdd Pin permanent mit 5V versorgen. Damit soll laut Datenblatt der Strong Pullup (SPU) entfallen. Dann kann ich alle Sensoren mit Tconvert starten und dann 800ms später die Ergebnisse nacheinander auslesen. Sollte etwas schneller gehen... Gruß, Tubie
Habe neue erkenntnisse gesammelt... der DS2482-800 lässt die ungenutzten Ports auf +5V stehen. Habe nun an den ersten 3 io Ports je einen Sensor DS18S20 angeschlossen und mußte feststellen, es geht! Wenn der Port nicht gewählt ist, geht dieser auf +5V das entspricht ja dem Strong Pullup. Nach 800ms wird der Port wieder angewählt und die Messdaten liegen bereit. Ich kann also bei meinen benötigten 6 Sensoren die Messung mit Convert t Starten, 800ms warten und alle 6 Ergebnisse nacheinander abholen. Und gleich wieder starten - freu !!! Nur einen kleinen Haken gibt es an der Sache: Ich kann im Datenblatt keinen Hinweis darüber finden. Und so ganz wohl ist mir auch nicht bei der Sache. Es mag jetzt funktionieren und in 2 Jahren geht nix mehr. Gruß, Tubie
Tubie wrote: > Wenn der Port nicht gewählt ist, geht dieser auf +5V das entspricht ja > dem Strong Pullup. Nach 800ms wird der Port wieder angewählt und die > Messdaten liegen bereit. 1-Wire liegt immer auf 5V wenn nichts los ist. Die Frage ist stets nur, wieviel Strom der Anschluss in diesem Zustand liefert. Gemäss Datasheet ziehen 800-1675 Ohm nach oben. Wenn man nun den schlimmsten Fall betrachtet: - 1675 Ohm Pullup - 1,5mA Sensorstrom bei parsitärer Versorgung - Stromversorgung liefert 4,7V am DS2482 ab Bleiben dem Sensor nur noch 2,2V, was definitiv zu wenig ist. Wie gesagt, das ist der Extremfall. Meistens wird es funktionieren. Zum Vergleich: Der Strong Pullup bricht bei 1,5mA nur um maximal 0,3V ein.
Hallo Andreas, Danke für den Tip! Ich habe gleich mal mit dem Oszi gemessen. Ich messe während der messphase an den Pins ca. 4V. Scheint also ok zu sein. Gruß, Tubie
Tubie wrote: > Danke für den Tip! Ich habe gleich mal mit dem Oszi gemessen. Ich messe > während der messphase an den Pins ca. 4V. Scheint also ok zu sein. Sowas in der Region hatte ich erwartet. Ca. 1K Pullup und typ 1mA Sensorstrom => 1V weg. Wäre aber sicherer, wenn du diese Messung mal bei maximaler und minimaler Temperatur wiederholst.
Tubie wrote: > Nur einen kleinen Haken gibt es an der Sache: Ich kann im Datenblatt > keinen Hinweis darüber finden. Steht doch ganz klar drin. Du mußt das SPU-Bit setzen und dann hast Du nen strong pullup. Es steht auch nirgends drin, daß Du das nur bei einem machen kannst. Du kannst also alle Wandlungen gleichzeitig machen. Was kostet denn der Chip? Alternativ könnte man auch nen ATtiny24 (1,59€) nehmen und den automatisch die Wandlungen machen lassen. Dann muß der Master nur noch die fertig gewandelten Temperaturen auslesen. Peter
Das werde ich auf jeden Fall nochmal machen aber heute nicht mehr. Wenn alle Stricke reißen sollten, besteht immer noch die möglichkeit, den Vdd Pin fest auf +5V legen und dann sollte es laufen. Die Platine ist leider schon fertig und ich habe keine freien Schraubklemmen mehr frei aber das soll wenn's wirklich so kommt nicht das Problem sein. Danke nochmal! Gruß, Tubie
Hallo Peter, ich kann aber nicht erkennen, ob das Config. Reg. nur für den Aktiven Kanal wirksam ist und alle anderen im "Standby" bleiben oder ob jeder Kanal ein eigenes Config Register hat. Der Chip kostet bei R....... 7,20€. Der wirklich große Vorteil, ich muß mich um fast nichts mehr kümmern und habe relativ wenig Programmieraufwand. I2C gibts ja im AVR gratis dazu. Gruß, Tubie
@Andreas Kaiser Habe den Fühler mal mit Schrumpfschlauch isoliert und ins Gefrierfach gelegt. Danach habe ich ihn in Kochendes Wasser gelegt am Pegel auf der 1Wire Leitung hat sich nichts geändert (jedenfalls für mich nicht messbar). Ich behaupte, für meine Zwecke uneingeschränkt einsatzfähig, ich denke der Hersteller will/muß sich natürlich gegen solche Sachen absichern. @all Was ich aber dennoch nicht verstehe, laut Datenblatt haben die Fühler (DS18S20) eine Meßtoleranz von +-0,5°C im bereich zwischen -10°C und +85°C ich habe 4 Fühler auf dem Schreibtisch nebeneinander liegen. 3 Stück zeigen Werte bis 0,15° gestreut und der 4. ist fast 1,2°C über den anderen 3en. Am StrongPullup kann es jedenfalls nicht liegen, denn der Wert ist auch so hoch, wenn ich die Fühler der Reihe nach mit SPU auslese. gruß, Tubie
Tubie wrote: > gelegt. Danach habe ich ihn in Kochendes Wasser gelegt am Pegel auf der ... > Stück zeigen Werte bis 0,15° gestreut und der 4. ist fast 1,2°C über den > anderen 3en. Ist das zufällig genau der, der im kochenden Wasser lag? PVC-Gehäuse sind nicht wassserdicht und die Sensoren mögen das nicht, wenn Wasser eindringt. Peter
@Peter Dannegger die Temp Differenz habe ich schon vorher auf dem Schreibtisch gemessen. OK, sind zwar keine Laborbedingungen aber wenn die Teile im 10mm Abstand nebeneinander liegen und fast 10 min keiner im Raum war (reagieren auf Körperwärme), denke ich schon das die Ergebnisse einigermaßen Stimmen sollten. Den Sensor mit der Abweichung habe ich aber dann für den min/max Test verwendet. Wenn das Gehäuse nicht wasserdicht ist, würde es denn helfen, diesen bei ca. 100°C im Backofen wieder zu trocknen? Gruß, Tubie
Hello, I have a Problem i m using MSP430F169 as i2c Master and Bridge DS2482-100 as Slave and as 1-Wire master. After that I am using DS1923 temp Sensor. I am new in this embedded field thats why I just want to know If I send Read ROM Command 0x33. How I could Read ths Uniquie ID of iButton [02(MSB) 00 00 00 02 E1 93 41(LSB)]...I dont know, how will be I sure that I get this Uniquie ID. tahnks
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.