Driving daughter board to sleep with reset pin

I have a core hooked up to an MP3 breakout board (VS1053), and an RFID breakout board (RFC522). I also have a hall effect sensor that I use as a wakeup interrupt.

I’m trying to save power by putting everything to sleep. Here’s what’s happening:

  • When everything is running, it consumes 180mA
  • When I put just the core to sleep, it consumes 55mA (I believe because the RFID and MP3 board are still awake)
  • When I put just the RFID to sleep by driving it’s reset pin low, consumption goes from 180mA to about 165mA
  • When I then put the MP3 to sleep, current goes down to about 153mA

So far, so good. The problem is that if I put the RFID to sleep, then the MP3 to sleep, then the core to sleep, it still consumes 55mA.
My theory is that once I put the core to sleep, it doesn’t hold the reset pins of the daughter boards low. Maybe the go into high impedance mode, and the daughter boards wake back up?

Any thoughts? I need to get the whole thing down to under 2mA while sleeping.


After some more investigation, it looks like the VS1053. When I drive the reset pin low, current draw from the VS1053 goes from about 30mA down to 4mA. Then when I put the core to sleep, the VS1053 current draw jumps up to 55mA.

I’m not sure how to keep the VS1053 asleep after I put the core to sleep. Maybe an electronic latch switch or something?

Thanks for any help. I new at this :smile:

@rsteckler, perhaps you need a pull-down on the VS1053 to keep in reset mode and the Spark would pull it HIGH to let it run. That way when the Core is asleep, the VS1503 is in reset mode. Another approach is to power both the VS1053 and the RFID via a mosfet with the same idea. The mosfet is off until the Core actively turns it on, powering the devices. :smiley:

Awesome. I use pull-* resistors on my switches, but never thought to do that on the reset pins! That should work perfectly. I’ll also go look at mosfets, and learn about those :smile:

1 Like

This actually ended up being more complicated.
I think there is leakage from the DREQ pin (default high, even in sleep mode) and the Spark Core interrupt pin (D0 for me) that is default low when the spark core goes to sleep. I put a resistor inline between the DREQ on the VS1053 and my D0 GPIO and now the VS1053 consumes very little power when reset is driven low and the Spark core is powered down.

1 Like