I am using the BQ24079T to control power for a wireless, battery powered sensor node. The MCU will operate in one of two modes: periodic sample mode where it takes sensor readings and then sleeps, or idle mode where it does nothing but sleep and wait for the next command. If it is in idle mode for too long, it should shut down completely to save battery power. To turn it on again, it would have to be attached to the charger.

I figured that an easy way to do this would be to use the SYSOFF pin on the charger to disconnect the battery from the system when commanded by the MCU. Here is my current circuit for this enter image description here.

The SYSOFF pin goes to an I/O expander (PCA9557)) chip which is held low as long as the device wants to stay powered. When it wants to turn off, the pin is released and pulled to VPP, turning VCO off.

Maximum possible battery life is very important for this project, so I am trying to eliminate as much load during sleep mode. All peripherals on the board are on switchable power and are turned off while the MCU is asleep. The only thing it cannot control power for is the charger chip itself and related circuitry.

The 200k pull-up on SYSOFF will constantly draw between 15 and 20 uA, depending on battery voltage, while the MCU is powered on, and the charger itself will draw around 6.5 uA. This is not a huge amount of current, but as a constant load, it amounts to several months from the 300 mAh Li-ion battery that I am using.

I was thinking that I could use a flip-flop or latch controlled by the MCU in place of the pull-up to reduce static load, but I am not sure how that would work.

How would you handle this?


2 Answers 2


I think you can fix it as follows:

Put a pulldown on sysoff, maybe 100k. Just make sure it is strong enough to overpower the internal 5M pullup. Also keep sysoff connected to your IO expander. It should be configured as an output driven low. But when you want to power down, have the expander drive the output high, which will overpower the 100k pulldown, and turn the system off.

Once the system is off, your rails will all collapse, so the IO expander will be dead, and the 100k pulldown will ensure that sysoff is now low so that startup will be possible the next time charger is attached. You will need to make sure that the IO never goes high during bootup or normal operation. For example, program it to be low before you program it to be an output.


Max input current for SYSOFF IIH=10μA (from p.6 of BQ24079T datasheet). I think, you're on the hook for up to 10μA, if you choose this charger IC.

Suppose, you devise a scheme with a flip-flop instead of a pull-up resistor. SYSOFF will still consume up to 10μA through the flip-flop (also add the flip-flop's quiescent current).

If you knew the min input current (or the leakage current) for the SYSOFF pin, you could make an educated choice of the larger pull-up resistance. Unfortunately, the datasheet doesn't show these currents. Still, you could experiment with various pull-up values (between 200kΩ and 1MΩ, perhaps).

Have a look at the block diagram on p.9 of the datasheet. Notice that the SYSOFF input has a high impedance buffer. The input impedance will be in series with 200kΩ. Notice also that SYSOFF has an internal ~5MΩ pull-up.

BQ24079T intended application is handheld devices (which get charged every other week). May be, it wasn't designed for months of ultra-low-power operation.

If you absolutely have to use BQ24079T and have to reduce the quiescent current. You could add another switch to your system, which would disconnect the BQ24079T and it's leakage paths. The switch itself should have a low quiescent current.

  • \$\begingroup\$ Ok, I see the dots, but I don't see how they are connected. \$\endgroup\$ Commented Oct 28, 2012 at 17:55
  • \$\begingroup\$ @NickHebner I've expanded my post. \$\endgroup\$ Commented Oct 28, 2012 at 20:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.