working onewire optocoupler circuit
Update: New circuit is on the
way...
Thanks to Bruce Boyes I've tried the
circuit with 6N137 instead of 6N139 Optocouplers: The unwanted pulse has
been reduced to about 60ns... some more work, and we will have a complete
new circuit with just one IC more on each side.
1wire Optocoupler circuit
Based on an often found I2C optocoupler circuit I've build this modified
one, which is able to handle one-wire traffic at normal speed.
(how it begun
@ tinicity.de)

The left side is connected to the TINI. Some people told me, its better
to put the PNP tranistors to a more positive level, but then the circuit
can make troubles on a heavy loaded mircolan (tested).
The main problem with original I2C circuit was, that it was to slow. By
increasing the ILED the latency dropped to tolerable value.
Other PNP-Transistors may work too, but you should prefer BC557B.
By adding another Transistor on each side, you could reduce power
consumtion.
For a lower load on the onewire you can change R1 and R2 to 20k
or use a cmos-driver. If you are going to connect a lot of devices you can
lower R5 to about 2k.
The most problematic situation for any 1wire optocoupler-circuit is, when
deivces on both sides pulls the line low, and one side releases it. This
happens everytime when a 0-Bit is transmitted from a device to the master.
(from the DS1820 Datasheet)
In this case, the line is released just to detect, that the other side is
still low. This produces a short unwanted pulse. Luckly, this pulse is short
enought to not beeing noticed by the ds2480b at normal speed.
The active-pullup feature is in this case troublesome, and allthough the
pulse is longer (4uS) than I've expected, it is still short enough.
The slightly higher level of the second part of the "read-0"-slot is due the
diodes. (Thats why you should use Shottky-Diodes)
So what can be done, to minimize this pulse to be even safer than we are now? One
way is to use faster optocouplers than the 6N139 is.
other ideas...
You can try to switch the ground (from the transistor and pin 5 of 6n139)
with a ds2405/ds2406 to create something very similar to a ds2409.
(Since the original I2C circuit is available from a diffrent sources, I do
not know the original author. Whoever believes he did it, should write a
mail to be be mentioned here.)
DISCLAIMER
As you might guessed, we are still hacking around on this solution - so we
can't garantee anything. Build it, try it and give feedback. Thank you.
If you going to use this for a commercial application, it would be nice, if
you donate something back to the community. (or to me *g*)
Adrian Dabrowski, 2001
|
|
experimental & not finished
This project is experimental and not finished - hope to make a update soon
If you wish to buy a proffessional product, try www.systronix.com