Forum: Mikrocontroller und Digitale Elektronik One Wire Bus: Pin kurz aktiv High bei der Flanke


von Max H. (hartl192)


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

von (prx) A. K. (prx)


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.

von Max H. (hartl192)


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

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.