www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik DS2482-800 I2C to 1-Wire Bridge


Autor: Tubie (Gast)
Datum:

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
Autor: xxx (Gast)
Datum:

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.
Autor: Tubie (Gast)
Datum:

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
Autor: Tubie (Gast)
Datum:

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
Autor: Tubie (Gast)
Datum:

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
Autor: Andreas K. (a-k)
Datum:

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.
Autor: Tubie (Gast)
Datum:

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
Autor: Andreas K. (a-k)
Datum:

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.
Autor: Peter Dannegger (peda)
Datum:

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
Autor: Tubie (Gast)
Datum:

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
Autor: Tubie (Gast)
Datum:

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
Autor: Tubie (Gast)
Datum:

@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
Autor: Peter Dannegger (peda)
Datum:

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
Autor: Tubie (Gast)
Datum:

@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
Autor: Muhammad Farhan (Firma: Uni-duisburg) (fari01f)
Datum:

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

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net