1-wire library and active pull-up

One of the most versatile things Arduino can do is a master 1-wire controller. However for long or complex topologies 1-wire networks, some enhancement must be implemented.

Application note 148 give some advices: - add a 150 or 100 ohm resistor to each of the stubs - FET driver with slew-rate control (see Appendix A) http://www.maxim-ic.com/appnotes.cfm/an_pk/148

The most advanced controller is decribed on Application note 244 and allow network up to 500m. It employs impedence matching and software-controlled active pullup. http://www.maxim-ic.com/appnotes.cfm/an_pk/244

I'd like to modify the 1-wire library built in Arduino IDE to enable at least one of these enhancements. I could try with Appendix A which seems easier. It uses two pins on the microcontroller, one for 1-wire bus and one for slew-rate control. What is slew rate? Anyone have idea on what the arduino should output to this circuit?

What is slew rate?

It is the rate of change of voltage on an output. In this context you can think of this as the rise time of an edge, although strictly speaking the rise time is the time it takes to go from 10% to 90% of the swing of a signal. Slew rate is given in terms of volts per second or more likely milli volts per micro second.

Sorry didn't see anything in that link that referred to slew rate control.

Thank you Mike for the explaination. Basically this slew rate control circuit helps producing a more clear signal, which is stronger to long distances and interferences, right?

which is stronger to long distances and interferences, right?

Well a long wire will certainly degrade the rise time of an edge (it's the capacitance in the line) and if it is too slow you will get jittering when it passes through the transition region. However, if it is too fast you get reflections off the end of the line that disrupt the signal.