13.8.6.3.5 Performance Level

The application can change the performance level on the fly, writing to the Performance Level Select bit in the Performance Level Configuration register (PLCFG.PLSEL).

When changing to a lower performance level, the bus frequency must be reduced before writing PLCFG.PLSEL in order to avoid exceeding the limit of the target performance level.

When changing to a higher performance level, the bus frequency can be increased only after the Performance Level Ready flag in the Interrupt Flag Status and Clear (INTFLAG.PLRDY) bit set to '1', indicating that the performance level transition is complete.

After a reset, the device starts in the lowest PL (lowest power consumption and lowest max frequency). The application can then switch to another PL at any time without any stop in the code execution. As shown in Figure 13-22, performance level transition is possible only when the device is in active mode.

The Performance Level Disable bit in the Performance Level Configuration register (PLCFG.PLDIS) can be used to freeze the performance level to PL0. This disables the performance level hardware mechanism in order to reduce both the power consumption and the wake-up start-up time from standby sleep mode.

Note: This bit, PLCFG.PLDIS, must be changed only when the current performance level is PL0.
Any attempt to modify this bit while the performance level is not PL0 is discarded, and a violation is reported to the PAC module. Any attempt to change the performance level to PLn (with n > 0) while PLCFG.PLDIS = 1 is discarded, and a violation is reported to the PAC module.
Figure 13-22. Sleep Modes and Performance Level Transitions