Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

how to make the PIC18 Consumption low as possible ??

Not open for further replies.


Member level 1
Jul 10, 2011
Reaction score
Trophy points
Activity points
Hi All ,

One question for electronic expertise,

I have PIC18f25k22 , which is a great microcontroller, I made small project which is connect to GSM modem and temperature sensor , the project will send me SMS every 20 Minutes, the pic18 will read temperature them send sms using gsm modem , then after that the pic18 will be switch off the modem , the current consumption when PIC18 + modem work is between 30~120mA. when i switch off the modem it go low as 5~10 mA. the pic18 will stop delay for 20m and then again switch on the modem and work same , my question is how i can reduce the current consumption when the pic is in delay . I use internal 16 MHz . NO LED used .

please help me out in this issue, can i go to low as 1 MA or less .


You need to analyze your circuit, find where the current consumption is, and then address it. For example, do you know how much power your voltage regulator is consuming? And do you really need a 16MHz clock for a simple circuit? Do you know how much current the PIC is expected to consume in sleep mode? (Did you check the datasheet). Also, are you even using the sleep capabilities? Have you checked to see how you can wake the device up, etc.
This is how I would go about it.

If high precision of your 20 minutes is NOT required then use the watchdog timer and put the device to sleep. If you need high precision then use the 32kHz secondary oscillator. If can run it at 3.3V then look at the LF versions - they are usually considerably lower current. You need to be very careful about shutting everything down correctly if you want minimum power.


Stay in sleep mode as much as you can. Use low freq oscillator/crystal. Use timer 1/3/5 or watchdog to wake up, do what you want with the AD, MODEM etc, and go back to sleep mode.

Reducing the clock frequency will make the current consumption to be very low. Check "Electrical characteristics section" in your datasheet.

Best wishes :)

thank you all for you great suggestions , first of all i will try 1 MHZ , and see where the power go

thanks all


thank you all , when i change it to internal 1 MHz , at 3.3v , it consume near to 1~2 mA .. this fine to me

thank you all


You can dynamically switch the clocks - run a lot lower until you need to do something then switch it to high speed then back again.


I think it'll be easy to make the program work like this:

Start -> Do operation -> Sleep -> Watchdog wakeup -> Repeat.

You can use a lower clock if your procedure doesn't need much processing power (like cryptography).
If you could post the schematic we could do a efficiency check on the power usage, maybe we can drop the current down to 500uA.

Not open for further replies.

Part and Inventory Search

Welcome to