For a long time, low power was associated with low performance. And in certain cases, that may still be the case. However, with the RL78, in most situations, low power can be achieved without any trade-offs whatsoever for performance. The reality is that most applications don’t require the processor to be running full throttle at all times. With the RL78, there are options that give the ability to choose from multiple levels of peripheral availability and responsiveness. In this way, the designer can choose the best level that offers full performance with only a fraction of the power consumption.
While the power saving modes are incredibly important and effective, the run mode efficiency cannot be ignored either. All microcontrollers are rated at their power consumption per megahertz, a way to get a rough approximation of how much it will use at difference frequencies. The RL78 runs between 128 uA and 144 uA per MHz, coming to 4.6mA at 32MHz and 4.2uA with the 32kHz clock. As you can see, for non-calculation intensive applications, even full run can be very battery friendly. However, most of the time the RL78 will be needed at a faster clock cycle and, even at 4.2uA, it can do better.
The three power savings modes are Halt, Stop, and Snooze. Halt and Stop may be easily confused as they are literally synonyms in normal English usage. Personally, I keep them straight by thinking that if someone told me to Halt I would be confused, as it’s somewhat archaic, and probably keep going a bit. Stop, being more commonly used, is more intuitively understood to stop completely. Maybe that will help to remember between those two, maybe not. If you have a better way to distinguish them, I’d be happy to hear.
Stop mode is when the RL78 is completed stopped - the CPU, clock, and peripherals. This saves the most energy but requires either an external interrupt to wake it back up or an internal interrupt needs to be configured, which uses slightly more power. Also, perhaps the biggest trade-off for the Stop state is that when it returns to Run, it takes about 32 uS for the oscillator to stabilize, time where the processor can’t be working on anything. As stated, Halt isn’t as complete of a shutdown for the RL78 as a Stop. With Halt, everything stops except the CPU clock. With the CPU clock still going, peripherals, such as the ADC, serial port transmission, even the DMA, can still be running and doing what they need to do. When something happens, such as the ADC finishes a measurement, the microcontroller goes to Run mode, processes the results and then typically goes back to Halt mode.
Snooze mode is an interesting new feature that fits between the Halt and Run modes. In Snooze, the RL78 is in a similar state to Halt, where the clock and peripherals are still running. However, unlike Halt, when there is an interrupt of some sort, again using the ADC as an example, the measured value can be compared to predefined values, without involving the CPU. If the measured value falls outside the predefined parameters, the CPU will wake up and take action, otherwise, the RL78 will continue in Snooze. This is also applicable to the UART, allowing the reception of data without even waking up the CPU. As Snooze mode uses about 10% of the power as Run mode, reducing the frequency that the microcontroller needs to go to full Run mode can make significant power savings.
The flexibility of another low power state for the RL78 helps designers create something that will not frustrate customers with frequent charging or battery replacement. However, as you eke the last bit of power efficiency out of your microcontroller, make certain to examine the supporting circuitry as well and verify you aren’t scrounging to save nanoamps while wasting microamps with inefficient analog circuitry.