20.5.2.4 Selecting the Synchronous Clock Division Ratio

The main clock CLK_MAIN feeds an 8-bit prescaler, which can be used to generate the synchronous clocks. By default, the synchronous clocks run on the undivided main clock. The user can select a prescaler division for the CPU clock domain by writing the Division (DIV) bits in the CPU Clock Division register CPUDIV, resulting in a CPU clock domain frequency determined by this equation:

f C P U = f m a i n C P U D I V

Similarly, the clock for the Low Power and Backup Clock Domain can be divided by writing their respective LPDIV and BUPDIV register. To ensure correct operation, frequencies must be selected so that fCPU ≥ fLP ≥ fBUP. Also, frequencies must never exceed the specified maximum frequency for each clock domain given in the electrical characteristics specifications.

Similarly, the clock for the Backup Clock Domain can be divided by writing the BUPDIV register. To ensure correct operation, frequencies must be selected so that fCPU ≥ fBUP. Also, frequencies must never exceed the specified maximum frequency for each clock domain given in the electrical characteristics specifications.

If the application attempts to write forbidden values in CPUDIV, LPDIV, or BUPDIV registers, then these bad values are not used and a violation is reported to the PAC module.

Division bits (DIV) can be written without halting or disabling peripheral modules. Writing DIV bits allows a new clock setting to be written to all synchronous clocks belonging to the corresponding clock domain at the same time. Each clock domain can be changed without changing others. This way, it is possible to, for example, scale the CPU clock domain speed according to the required performance, while keeping the Backup Clock Domain frequency constant.

Figure 20-2. Synchronous Clock Selection and Prescaler