One Wire Bus: Pin kurz aktiv High bei der Flanke

OP #3634896
Lesenswert?

Ich habe mit eine One Wire Routine für den PIC24F16KA102 geschrieben und 
habe eine kurze frage:

Momentan sieht meine Funktion zum Ausgeben von '1' auf dem Bus so aus:
1
void drive_OW_high(void)
2
{
3
  OneWire_TRIS=1;    // One Wire Pin Input: Pullup --> High
4
}

Ich habe mir gedacht, ich könnte den Pin für einen Befehlszyklus aktiv 
auf '1' setzten und dann erst Hochohmig um die steigende Flanke steiler 
zu machen. Würde das irgendwelche Vor- oder Nachteile mit sich bringen?
1
void drive_OW_high(void)
2
{
3
  OneWire_LAT=1;    // One Wire Pin '1'
4
  OneWire_TRIS=0;   // One Wire Pin Output
5
  OneWire_TRIS=1;   // One Wire Pin Input: Pullup --> High
6
}

Danke im Voraus
#3634903
Lesenswert?

Max H. schrieb:
> Würde das irgendwelche Vor- oder Nachteile mit sich bringen?

Kann man sagen. Das Protokoll funktioniert nur, wenn beide Seiten die 
Leitung auf 0 ziehen können. So zieht beim Lesen eines Bits der Master 
die Leitung nur kurz runter. Der Slave hält sie bei 0 danach eine 
Zeitlang unten. Durch den viel stärkeren aktiven Pullup des Masters wird 
der Ausgang vom Slave dann regelmässig überlastet.

Welche Gedanken sich Dallas dazu gemacht hat findet man im "MicroLAN 
Design Guide" und in App148 "Guidelines for Reliable 1-Wire Networks".

So findet sich dort zwar ein aktiver Pullup, der aber nur einer bereits 
erkennbar ansteigenden Leitung auf die Sprünge hilft.
OP #3635016
Lesenswert?

A. K. schrieb:
> Durch den viel stärkeren aktiven Pullup des Masters wird
> der Ausgang vom Slave dann regelmässig überlastet.
Stimmt, daran habe ich jetzt nicht gedacht. Beim Schreiben habe ich mir 
aber ausgerechnet, dass mit Vcc=3.3V und Pullup 4.7kΩ eine Kapazität von 
4nF bereits dafür sorgen würde, das der Bus in 54µs nicht auf 3V* 
kommt...

> So findet sich dort zwar ein aktiver Pullup, der aber nur einer bereits
> erkennbar ansteigenden Leitung auf die Sprünge hilft.
Das klingt logisch.

* min. Input Logic-High Parasite Power

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren