Power Management
Power Management is a critical requirement, especially for battery-powered applications. The pressure is high on modern devices to be able to offer more features and extended battery operational life - do more with less power and for longer.
With modules such as GPS, WIFI, GSM, and BLE the demand on the device's power reserves is high, with peak drain on the battery when establishing the connection. The modules mentioned are external and can just be disabled when not needed or not in use. A mobile phone, for example, provides the option to disable a specific communications module completely, and depending on the brand and model you may have behind-the-scenes software, "battery optimization settings" that may switch these modules off when not in use.
While older microcontrollers have power-saving features, for example, sleep mode this did not enable power saving for modules that were not needed or temporarily not in use. Sleep mode would power the while microcontroller down, pending reanimation when needed.
This section will look at the "power saving" options available when designing your system.
The list of methodologies discussed here will be limited to what is available in the PIC Microcontroller family. The information is also not intended to be exhaustive, however, it aims to look at the topic practically for what can be implemented using a PIC MCU.
This option puts the MCU to sleep, the whole MCU. This approach may be useful either for single-task applications or applications that have long intervals between tasks being run. For example, a weather station that only reads data once every 10 minutes, provides 6 samples an hour. However, the battery saving is lost the whole MCU not being available until the next power-up.
Sleep Mode requires a method to wake the microcontroller. This step would need to be implemented in software where the microcontroller is powered back up using a timer, and an interrupt or an external I/O initiates the action.
If you don't implement the "wake up" methodology, a reset would usually pull the MCU out of sleep, but this can usually only be done with human or user intervention.
The Peripheral Module Disable option enables the software to disable peripherals not required. When disabled, this will reduce power consumption from the default all-on, which is the MCU state when it powers up or recovers from a reset.
Read more here: PIC16F18877 Device Family๏ปฟ๏ปฟ