1-wire parasitically powered microcontroller?

The one wire bus has the bus passively (i.e. with a resistor) pulled up in the system, and devices communicate on the bus by pulling the bus down. What I would do if I wanted to pull power from the bus is:

  1. Feed the data line right into the data input pin of your microcontroller.
  2. Also feed the data line into a Schottky diode.
  3. At the output of the diode put a largish (say 10uF) capacitor to ground.
  4. Send the output of the diode to the VCC pin of your microcontroller.

You should use a Schottky diode, to minimize the voltage drop. The diode/capacitor combination should make it so that communication can take place (i.e. grounding the bus periodically) without shutting down the MCU. Putting the capacitor after the diode will keep the transitions on the bus data sharp, while keeping the decay of power (voltage) to your MCU gradual. The lower power the device you use is the better to minimize drain on your capacitor, but pretty much any MCU will probably work for you. My preference is Atmel's AVRs, but TI MSP430s and Microchip's PICs are also good candidates for low power consumption.


You might consider adding a request to your custom slave's functions to say "OK, I'm going to need a lot of current for a little while here", and add a MOSFET pullup to your output. Then, you could turn this off for a few cycles, and see if the slave is still allowing the line to be resistively pulled up (like on p.3 figure 2 of the DS18S20 datasheet.) A lot of 1-wire devices aren't really 1-wire. If you don't need to interact with actual 1-wire parts and/or you control the master node, you can define your own specs and this should make things much easier.

Your job is made easier because your micro can probably handle between the 5V of the bus and decay all the way to ~2.6. Therefore, the aforementioned Schottky and capacitor setup should work, or even a silicon diode. Consider the following diode setups:

  • Silicon diode: This would be my first choice. As long as your micro and any peripherials can run at 4.3V, you will minimize your reverse current from tens to hundreds (and even up into mA when warm) on a Schottky down to tens of nano-amps
  • Schottky diode: Use only if the .4V between the standard diode and Schottky is significant for your application, but reverse current on the order of 100uA is acceptable.
  • Ideal diode: Try the LTC4411 or similar if cost is not an issue (Only $1.75, but more than a passive diode) and 20uA reverse current is acceptable. Refer to the MSP430 datasheet for power consumption. At 3V (Using a Li-ion battery rather than a leaky supercap, assuming that you might want to remove this device but retain RAM for lower power code execution), you can have a 100na (nano-amp, .1uA) hibernate mode requiring an external interrupt (like a pin change!)

The other option is to be miserly in power requirements, and use a battery. See this app note from Maxim. If you can keep your MSP430 in sleep mode (i.e., only wake on a pin change, like a 1-wire initialization pulse), you can average less than 1uA and a coin cell will last you for ten years (In theory.) How long do you want the device to last?


Use a capacitor to store the energy, and connect the negative end of the capacitor to ground, and connect a Schottky diode between the data line and the capacitor. Schottky diodes have a low forward drop.