Hi fellow Arduino designers/users,
Following the design of the DIYino Prime v1 (LINK ), which is based on the Arduino Nano architecture and chipset (among else), I set a new target to myself: design a similar board, based on Nano, but one which can be operated with a very low current consumption in idle/sleep mode.
It is known that the major blocking point for doing so in the Nano is the LDO, which has a static current consumption of ~10mA (I can confirm). So even the Atmega328P is sent to sleep mode, the board still draws 10-20mA.
Another issue is the FTDI chipset FT232RL. It draws an unknown current, but it does not have any programming interface to put it to a low power mode. There is supposedly a USB suspend state, but it still can consume up to 2.5mA and I found no trace of it that the FT232RL enters this state whatsoever.
Apart from all these the DIYino has a number of other modules (an MPU6050 and a fully integrated DFPlayer), which raise the idle mode current even more.
So I spent a considerable time thinking about how I can reach my ambitious target of <1mA current draw for battery supplied applications.
The idea I came up with can be seen on the schamtics I attached in PDF.
-
To eliminate the power draw of the LDO in case the input voltage is >6V, I included a so called micro-power LDO from type LT1129IST-5. It does eliminate the 10mA for sure. Of course it comes with a price tag, the new LDO costs ~5$, while the UA78M05 is ~0.5$ per piece. But it’s worth the additional invest.
-
To keep down the power consumption of modules I cannot influence by programming them per se, I choose to include 2 p-channel mosfets as power switches. They control the power to the FTDI chip and the YX5200 (aka DFPlyer) chip. As the 3.3V output of the FTDI supplies the MPU6050, by switching off the supply of the FTDI the MPU will also be powered down.
And now to the results and open question:
- the concept works (well, sort of)
- the new LDO eliminates 10mA
- I can use digital I/Os to connect to the GPS1 and GPS2, so the Atmega328 has full control over the power switches, I can programatically unpower both FTDI and DFPlayer. The audio amp has an own shut-down pin, so I can use the same I/O to unpower the audio amp as for the DFPlayer.
- in deep sleep mode of the Atmega328P, after unpowering the FTDI and DFPlayer, I can get down to 2mA of current draw with a 7.4V supply on VIN (simulating 2xLi-Ion in series). Well, not yet there, still more than 1mA to go.
- in this state I observe the following: the 2 LEDs connected to the FTDI, indicating traffic over USB, keep blinking with a high frequency
- the 3.3V LDO of the FTDI outputs ~2.3V, although the FTDI is not supposed to be supplied
My first assumption was that the FTDI gets a back supply, and the only explanation I could find was through the Reset line, which is connected over a 1kOhm resistance to the 5V output of the main LDO. So in order to reduce the current I first removed the 1kOhm external pull-up. The current stayed the same, but I could not upload any sketches any more. Also I measured an open between Reset and 5V, which, considering that acc. Data Sheet the reset should have ~60kOhs of internal pull-up, is not logical. So I concluded that whatever resistance had been there must have evaporated due to…?
The 2nd observation was that the current stayed the same. Even if I replace the 1kOhm with 4.7kOhm or 10kOhm, in which case I’m able to upload, current is still 2mA.
Next ideas was to successively remove the LEDs. With both LEDs removed, current is still 2mA, although there is no visible sign of something consuming current any more.
To make things even more complicated, the current goes back from 2mA to ~400uA (!!!), under unknown circumstances. If it happens, I can wake-up the whole board, have all the functions working, going back to sleep mode will yield me again 400uA (which is more than satisfactory for me), but it’s hardly reproducible. Next time I do something or there is a full moon and the 2mA is there again…
So that is the current status, if anyone has an idea what I can do to reproducably reduce the current under 1mA, I would be very grateful for hints.
Thanks and Cheers: Protonerd
DIYino_Prime_v2.pdf (139 KB)