Forum: Mikrocontroller und Digitale Elektronik DS2406 Onewire Taster ohne Pullup


von Rolf A. (romanoir)


Lesenswert?

Hallo zusammen!

Ich möchte einen DS2406 als Signalgeber (Taster) an einem 1w-Bus 
verwenden.
An der Stelle wo ich den DS anbringe habe ich nur 2 Leitungen, also GND 
und DATA, d.h. er wird im parasitären Modus betrieben (geht bei der TO92 
Bauform auch nicht anders).
Ergo würde ich den 3. Pin des DS2406 (für IO) über einen Reed-Kontakt 
auf GND ziehen um den Schalter-Zu Status zu signalisieren.
So weit so gut, nur habe ich mir überlegt, daß man ja normalerweise - um 
einen eindeutigen Schaltzustand am Pin anliegen zu haben immer einen 
Pullup-Widerstand anbringt damit das Potential am Pin auf High steht 
wenn der Reed-Kontakt offen ist.
Aber in dieser konkreten Einbausituation (2 Drähte) habe ich ja nirgends 
eine Leitung mit Vcc um einen Pullup anzubringen.

Hat vielleicht jemand von Euch eine Idee wie man in so einem Fall 
vorgeht?

Vielen Dank für Eure Antworten und viele Grüße,

R.

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Zuerst dachte ich: Pull-Up am anderen Ende der 1w-Leitung?
Aber das Problem ist komplexer. Du willst nicht den Chip versorgen 
sondern ein ext. Signalquelle.
Idee: Diode vom 1w-DATA zu einem kleinen C und damit den Rest versorgen.

: Bearbeitet durch User
von Rolf A. (romanoir)


Lesenswert?

Nikolaus S. schrieb:
> Pull-Up am anderen Ende der 1w-Leitung?

Hallo Nikolaus!

Du meinst Pullup ggü. der DATA-Leitung?
Ich weiß nicht, die wird ja für die Informationsübertragung von den 
ganzen 1w-Chips regelmäßig auf GND gezogen, da würde ich mir doch am 
IO-Pin ständig ein falsches Signal einfangen.

Grüße,

Rolf

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Rolf A. schrieb:
> Nikolaus S. schrieb:
>> Pull-Up am anderen Ende der 1w-Leitung?
>
> Hallo Nikolaus!
>
> Du meinst Pullup ggü. der DATA-Leitung?
> Ich weiß nicht, die wird ja für die Informationsübertragung von den
> ganzen 1w-Chips regelmäßig auf GND gezogen, da würde ich mir doch am
> IO-Pin ständig ein falsches Signal einfangen.
>
> Grüße,
>
> Rolf

Daher die Idee mit der Diode + C (hatte den Beitrag editiert)

: Bearbeitet durch User
von Rolf A. (romanoir)


Lesenswert?

Nikolaus S. schrieb:
> Daher die Idee mit der Diode + C (hatte den Beitrag editiert)

Welche Idee meinst Du da genau?

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

"Idee: Diode vom 1w-DATA zu einem kleinen C und damit den Rest 
versorgen."

von Rolf A. (romanoir)


Lesenswert?

Nikolaus S. schrieb:
> "Idee: Diode vom 1w-DATA zu einem kleinen C und damit den Rest
> versorgen."

O.k. wenn ich Dich recht verstehe also so quasi wie die DS-Chips es im 
parasitären Modus intern zur Selbstversorgung auch machen?
Klingt plausibel.
Welche Kapazität würdest Du für den C nehmen?

Grüße,

R.

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Rolf A. schrieb:
> Nikolaus S. schrieb:
>> "Idee: Diode vom 1w-DATA zu einem kleinen C und damit den Rest
>> versorgen."
>
> O.k. wenn ich Dich recht verstehe also so quasi wie die DS-Chips es im
> parasitären Modus intern zur Selbstversorgung auch machen?

Ja.

> Klingt plausibel.
> Welche Kapazität würdest Du für den C nehmen?

Ich denke Du willst nur den Eingang versorgen der nicht viel Strom 
zieht.
Wenn ein Pull-Up von 100k oder so ausreicht, dann sollten nach 
Bauchgefühl 100nF - 10uF reichen.

Jedenfalls eine Zeitkonstante deutlich länger als die Datenbits auf "0" 
sind.

Und eher eine Schottky-Diode nehmen als eine normale. Am besten mal 
ausprobieren und mit dem Oszi messen ob es zu großen "Ripple" gibt.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Rolf Alber (romanoir)

>> "Idee: Diode vom 1w-DATA zu einem kleinen C und damit den Rest
>> versorgen."

>O.k. wenn ich Dich recht verstehe also so quasi wie die DS-Chips es im
>parasitären Modus intern zur Selbstversorgung auch machen?
>Klingt plausibel.

Muss man auch, wenn man keinen Umschalter oder echten Logikausgang hat, 
um das PIO-Pin aktiv auf HIGH und LOW zu ziehen.

>Welche Kapazität würdest Du für den C nehmen?

Kommt auf deinen Pull-Up an. Der kann aber auch nicht endlos klein sein, 
denn er bildet einen Spannungsteiler mit dem Pull-Up der Datenleitung. 
Ich sag mal >47k sollten es sein. Ich würde mal 100k vorschlagen.

Dann muss man abschätzen, wieviel Datenverkehr auf dem OneWire Bus ist, 
denn während dessen geht der oft auf LOW, dann muss der Kondensator 
Strom liefern, wenn der Reedkontakt gerade auf LOW zieht. Die längsten 
Pausen bei One Wire sind das Reset mit >480us. Da sollte die Spannung am 
Kondensator noch nicht allzuviel abgefallen sein, denn sonst bremst der 
anschließende Ladevorgang die Datenkommunikation!

Ich sag mal tau=R*C sollte > 100*480us~50ms sein. Macht bei 100k ~ 
470nF.

Falls dennoch zuviele Störungen in die relativ hochohmige Leitung bei 
HIGH einkoppeln, kann man das mit einem RC-Tiefpass filtern.

https://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster

100k + 100nF sind OK.

von Rolf A. (romanoir)


Lesenswert?

@ Nikolaus + Falk:
Vielen Dank an Euch beide für die schnellen Antworten.

Mit der Information kann ich jetzt erstmal Bauteile kaufen gehen und 
Euren Vorschlag ausprobieren.

Viele Grüße,

R.

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
Noch kein Account? Hier anmelden.