I am working on a project that needs a long Dallas/Maxim one-wire bus. It may be above the limit for conventional simple resistor pull-up and single drive/sense pin. I am looking at possibly implementing an active pull-up circuit or just a limited slew-rate drive circuit. Looking through the current one-wire libraries, (http://playground.arduino.cc/Learning/OneWire) there doesn't seem to be software support for separate bus read and drive pins. Has anyone hacked the library to control active pull-up or bus drive on separate pins? Thanks.
gardner: I am working on a project that needs a long Dallas/Maxim one-wire bus.
Well, I guess the length of your one-wire is a state secret, but plenty of users have had long ones they can talk about, and have done so on this forum already. I recall that halving the pullup to 2.2k after about 10m is common practice. There is also the matter of ensuring quality shielded cable.
The target bus length is around 150m, and the cable is non-shielded CAT-4. I had some MOVs on the bus for transient suppression, but the one on the main signal bus was causing too much capacitive loading (7.5nF) and I could not get a shorter 100m bus to work. It now has TVS diodes which are more in the 1.5pF range and they do not cause any capacitive loading. I left the MOVs on the power, signal ground and earth legs.
My pull-up is already 2k2 and I could go to 1k8 or 1k5 maybe, but the sensors are temperature ones and lower pull-up resistance forces the sensors to dissipate more power, causing self-heating and reading inaccuracy. The suggestions in the Maxim/Dallas literature for reliability of a long bus are for more sophisticated bus mastering, which lead to the initial Q.