PIC32 Sleep current PIC32-PINGUINO-OTG

In my previous entry regarding sleep current I had investigated the Pinguino board from Olimex. Time passed away, and I have ordered the PINGUINO-MICRO board. And the post was quite fast, since it was delivered in some days.

Link is here to the previous entry:
PIC32 Sleep current PIC32-PINGUINO-MICRO : http://kyrk.villamvadasz.hu/drupal-7.21/node/73
PIC32 Sleep current : http://kyrk.villamvadasz.hu/drupal-7.21/node/72
To the current board: https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO-OTG/

First lets start with a quick back look. In the first article I just investigated what PCB-s could be analyzed and set a rough estimation about what can be expected az a sleep current. Then the PINGUINO-MICRO board was chosen as first test object, since I had already one from it. Not surprising the board was delivering nearly that amount of current that was expected. Around 5mA. Now the PINGUINO-OTG board is arrived, now I can experiment with that also. Expectation is that this board will have a much smaller sleep current than the previous one, since the regulator on the board wont eat so much current. Now lets start the experimenting and see...

I decided to do a quick testing. First I just connected the board to 5V over the 5V+ and GND pins. On the board was running some kind of software (it is a fresh out of the box board). Current drawing where around 80mA somewhere. Looks plausible. Then I just press reset and the current dropped to 15mA. Then I just flashed my previous test software on the board, without any change. For some reason it was working good enough :) The sleep current was then 12,8mA

Type: with ICD3 / without ICD3
Reset: ----mA / 15mA
Run: ----mA / 88 mA
Sleep: ----mA / 12,8 mA

Just compare to the old PINGUINO-MICRO, there it was 6,1mA (vs. 12,8mA). Not even the expected level :(

Lets see why the current was 12,8mA instead of somewhere around 1000uA. Just look at the 5V input pint. It is powering a Resistor (4k7) a divider (3k + 1k) and a LED (330ohm). Estimated current drawn by this things are around 12mA. So what to do? Assuming the PCB will be powered by a LiPo, then the measurements should be also done on that voltage input. So lets connect the power supply to the LiPo connector and see how much it draws there. Now I changed the 5V to 4V5 down. Sadly my power supply only support 4V, 4,5V and 5V. Maybe this could be a point where it could be extended with a new feature (4V2).
Now my multimeter shows 49uA (!).

Here are the final results measured on the LiPo connector for 4V5 voltage.
Type: with ICD3 / without ICD3
Reset: ----mA / 3mA
Run: ----mA / 78 mA
Sleep: ----mA / 49uA

Using the previous calculation for run time:
Q = 1000mAh //charge
I = 49uA
t = Q/I = 1000mAh / 49uA = 20408h
So a 1000mAh LiPo battery with a discharge current of 49uA would last nearly 2,3 years (850 days). Lowering the discharge by 1uA to 48uA would give here 17 day plus of run time. Hmm. Not bad, it is really worth to do some optimization of the sleep current, since a few uA less can give already some extra weeks or days of run time.

The expectation are confirmed, this board does really need less current. The expected current range of about 40-50uA is meet. Even with the current test software it was delivering already this current. But newer than less, the test software must be adapted to the board hardware layout in terms of driving the pins to the correct state. Remember, this amount of current is comparable to a bad configured pin, so it is really makes sense to configure them correct. This are the new type of optimizations that can be explored with this board.