I would like to operate a PIC16F628A in sleep mode with less than 1 µA. For that I have switched off all ADC, peripherals, etc.. But about 7.5 µA is the lowest current I can achieve.

I have found a thread from 2019 created by WedaPashi that he had the same experience.

His last post was as follows:

My team figured it out. It was due to the modules that can be shut off using CONFIGx registers, such as NCO, BOR, etc. In MPP, those remained enabled. Changing them from the code did not have any effect. Later, we figured out that there is a built-in tool to configure these CONFIGx registers. Once configured properly, these can be included in source code as multiple #pragma's. These were set to OFF as desired in this tool, but a corresponding setting in 'System Module' in MPP was over-riding it, hence it remained enabled in MPP. When configured these using the configuration tool it showed a conflict. To resolve this conflict, we disabled them from MPP and the current consumption reduced to 100 nA.

It seems that some settings have been overwritten. I am using MPLAB and I am not sure what MPP stand for in this thread. Maybe someone can help understanding that response from WedaPashi - as it is most likely also the solution to my problem.

  • 1
    \$\begingroup\$ MPP sounds a lot like MCC Microchip Code Configurator. \$\endgroup\$
    – vini_i
    Apr 8 at 11:18

1 Answer 1


The PIC16F628A is old and is very different from the PIC16LF15345 mentioned in the article link you posted.

To achieve a guaranteed less than 1µA current in sleep all clocks must be stopped and VDD must be 3.0 volts.

This includes the WDT clock used to wake the controller from sleep.

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.