Re: PIC24FJ128GA306 sleep mode current: 16+ mA current consumption
Hi dewalkes and others discussing about the problem of large current consumption in sleep mode,
I used the explorer16 with the pic24fj128ga010 chip and got the same problem recently.
In normal mode with a 8 Mhz clock operating, current consumption by the explorer16 was 19 mA. In sleep mode, current consumption reduced to 13 Mhz, indicating the shutting down of the clock saved 6 mA which is consistent with what is stated in the datasheet.
As the scenario appeared to indicate that something in the explorer16 board was drawing the significant large current, probably not due to the pic24fj128ga010 chip itself, I took out the chip (in a PIM package) from the explorer16 board and connected separate power, the primary crystal and the secondary crystal and run the same sleep mode program again. With that test, the processor in sleep mode draw was only 0.14 mA (140 uA) which is consistent with what the datasheet states bearing in mind that small amount of current was still needed to power the primary and secondary oscillators. I changed the power supply voltage from 3.3V to 3.0V, simulating what you mentioned to be the source of problem, now current draw became 0.18 mA which was larger but still was a reasonable figure.
Your past finding of the reason due to 3.0V power supply (instead of 3.3V) does not appear to make reasonable sense to me and my test was not able to validate that. I suspect that your problem of excessive current during sleep mode being solved was not due to the power supply voltage difference, but because of the fact that you cut all the IO pins and unnecessary connections in the development board which was equivalent to connecting the processor out from the development board as I just did. There may be a possibility that you thought that it was the power supply voltage change solved the problem but in fact, it was the other thing (cutting other unnecessary connections to other devices) that solved the problem.
My test and my solution shows that as the development board needs to power many accessories such as the USB port etc., it always draws significant large current even with the processor being put into sleep mode. After one's C program is being development board and with the processor being connected independently away from the development board, the problem will be solved.
I hope that my experience of solving this problem will be of help to anyone encountering similar problem.