I successfully prototyped using the Adafruit TPL5110 breakout with a Teensy 3.2 (not LC). The power board controls power to the Teensy, an ultrasonic sensor, and a radio transmitter. Once I figured out how it really works, it works fine. Some things to be aware of with this TPL5110 design:
- It is VERY sensitive to the resistance on the DELAY pin at first power-up. Turn the system off and use a meter to measure the resistance to ground at this pin, and adjust the pot to the time you want based on the TPL5110 data sheet. For may case I needed 29K for a ~2 minute interval. In my final design I intended to cut the trace on the back of the board and use a multiturn trim pot to set the interval more precisely.
- The interval is determined only once on first power-up of the breakout board and cannot be changed after that. If you have a battery based power system you have to disconnect the battery to change the timer interval while the power is off.
- Keep in mind this device just times fixed intervals. It does not matter how long it takes for you to signal DONE and power down, the next interval will occur at the same moment no matter when you signaled DONE. Some people assume that the interval starts when DONE is signaled and the Teensy is turned off (sort of like the Snooze library), but that is now how it works. Once it starts, it will power ON the device(s) at 2 minute intervals (in my case) no matter when (or if) DONE is signaled.
In this photo the TPL5110 board is at the bottom and is the only place the source power is applied. The DRV pin supplies power to all the other devices, including the Teensy via the right side power rail. The middle module is a radio transmitter and takes 3.3V from the Teensy. In this prototype the DONE is signaled manually by briefly connecting the DONE pin (grey lead) to the power rail. When the Teensy software is complete, that will be driven from a digital output pin.
(Cannot get photo to show in this post, here is a link)
https://www.dropbox.com/s/vimrlvnt70ftejk/prototpye.jpg?dl=0
In this scenario, when the system is sleeping (TPL5110 DRV is off) current draw is less than 1uA (less than I can measure). The spec says around 50nA. The internal battery drain is probably more than this, so in effect it uses zero power when sleeping.
After getting all this to work I am second guessing my approach. I am not sure of the reliability of the TPL5110 board and if it fails to turn on the system you are hosed with no possible recovery short of manual intervention. Since this will be in a remote hard-to-access location, I am leaning toward using the Teensy deep sleep (snooze library) to power down the Teensy, and a MOSFET to turn off the other system devices (like the breakout board does) under control of the Teensy. Then the sleep intervals can be under software control and can be varied if needed without hardware intervention. From a power consumption point of view, my measurements show I can get the Teensy down to about 60uA during hibernate. That is 1000 times more than the TPL5110 but doing the math... if the system has even a small battery (2600mAh), this .06mA drain is 43,333 hours (about 5 years). So in effect, it does not matter and I can use the software solution with more flexibility and less hardware. BTW my Teensy current measurements (5V supply) were:
38mA
- Running, status LED on
1.2mA
- Sleep, status LED off
0.27mA
- Deep Sleep, status LED off
0.058mA
- Hibernate, status LED off
Still experimenting with the TPL5110 and the Snooze library to determine which is best for this application. I would be interested in anyone else's experience with this...