9. Reset and Clock Control (RCC)

The RCC block manages the clock and reset generation for the whole microcontroller, which embeds two CPUs: an Arm® Cortex®-M7 and an Arm® Cortex®-M4, called CPU1 and CPU2, respectively.

The RCC block is located in the D3 domain (refer to Section 7: Power control (PWR) for a detailed description).

The operating modes this section refers to are defined in Section 7.6.1: Operating modes of the PWR block.

9.1 RCC main features

Reset block

Clock generation block

9.2 RCC block diagram

Figure 48 shows the RCC block diagram.

Figure 48. RCC Block diagram

RCC Block diagram showing internal clock sources (HSE, HSI, CSI, LSI, LSE), reset control logic, clock manager (CMU), system clock generation (SCGU), peripheral kernel clock selection (PKSU), and various output signals to CPU cores and peripherals.
RCC Block diagram showing internal clock sources (HSE, HSI, CSI, LSI, LSE), reset control logic, clock manager (CMU), system clock generation (SCGU), peripheral kernel clock selection (PKSU), and various output signals to CPU cores and peripherals.

9.3 RCC pins and internal signals

Table 54 lists the RCC inputs and output signals connected to package pins or balls.

Table 54. RCC input/output signals connected to package pins or balls

Signal nameSignal typeDescription
NRSTDigital input/outputSystem reset, can be used to provide reset to external devices
OSC32_INDigital input32 kHz oscillator input
OSC32_OUTDigital output32 kHz oscillator output
OSC_INDigital inputSystem oscillator input
Table 54. RCC input/output signals connected to package pins or balls (continued)
Signal nameSignal typeDescription
OSC_OUTDigital outputSystem oscillator output
MCO1Digital outputOutput clock 1 for external devices
MCO2Digital outputOutput clock 2 for external devices
I2S_CKINDigital inputExternal kernel clock input for digital audio interfaces: SPI/I2S, SAI, and DFSDM
ETH_MII_TX_CLKDigital inputExternal TX clock provided by the Ethernet MII interface
ETH_MII_RX_CLKDigital inputExternal RX clock provided by the Ethernet MII interface
ETH_RMII_REF_CLKDigital inputExternal reference clock provided by the Ethernet RMII interface
USB_PHY1Digital inputUSB clock input provided by the external USB PHY (OTG_HS_ULPI_CK)

The RCC exchanges a lot of internal signals with all components of the product, for that reason, the Table 54 only shows the most significant internal signals.

Table 55. RCC internal input/output signals
Signal nameSignal typeDescription
rcc_itDigital outputGeneral interrupt request line
rcc_hsecss_itDigital outputHSE clock security failure interrupt
rcc_lsecss_itDigital outputLSE clock security failure interrupt
rcc_ckfail_evtDigital outputEvent indicating that a HSE clock security failure is detected. This signal is connected to TIMERS
nresetDigital input/outputSystem reset
iwdg[2:1]_out_rstDigital inputReset line driven by the IWDG1 and IWDG2, indicating that a timeout occurred.
wwdg[2:1]_out_rstDigital inputReset line driven by the WWDG1 and WWDG2, indicating that a timeout occurred.
pwr_bor_rstDigital inputBrownout reset generated by the PWR block
pwr_por_rstDigital inputPower-on reset generated by the PWR block
pwr_vsw_rstDigital inputPower-on reset of the VSW domain generated by the PWR block
rcc_perx_rstDigital outputReset generated by the RCC for the peripherals.
pwr_d[3:1]_wkupDigital inputWake-up domain request generated by the PWR. Generally used to restore the clocks a domain when this domain exits from DStop
rcc_pwd_d[3:1]_reqDigital outputLow-Power request generated by the RCC. Generally used to ask to the PWR to set a domain into low-power mode, when a domain is in DStop.
pwr_hold[2:1]_ctrlDigital inputSignals generated by the PWR, in order to set one processor into CStop when exiting from system Stop mode.
Table 55. RCC internal input/output signals (continued) (continued)
Signal nameSignal typeDescription
c[2:1]_sleepDigital inputSignal generated by CPU1 or CPU2, indicating if the corresponding CPU is in CRun, CSleep or CStop.
c[2:1]_deepsleepDigital input
perx_ker_ckreqDigital inputSignal generated by some peripherals in order to request the activation of their kernel clock.
rcc_perx_ker_ckDigital outputKernel clock signals generated by the RCC, for some peripherals.
rcc_perx_bus_ckDigital outputBus interface clock signals generated by the RCC for peripherals.
rcc_bus_ckDigital outputClocks for APB (rcc_apb_ck), AHB (rcc_ahb_ck) and AXI (rcc_axi_ck) bridges generated by the RCC.
rcc_c[2:1]_ckDigital outputCPU1 and CPU2 clocks generated by the RCC.
rcc_fclk_c[2:1]Digital output

9.4 RCC reset block functional description

Several sources can generate a reset:

The reset scope depends on the source that generates the reset. Three reset categories exist:

9.4.1 Power-on/off reset

The power-on/off reset ( pwr_por_rst ) is generated by the power controller block (PWR). It is activated when the input voltage ( \( V_{DD} \) ) is below a threshold level. This is the most complete reset since it resets the whole circuit, except for the backup domain. The power-on/off reset function can be disabled through PDR_ON pin (see Section 7.5: Power supply supervision ).

Refer to Table 56: Reset distribution summary for details.

9.4.2 System reset

A system reset ( nreset ) resets all registers to their reset values unless otherwise specified in the register description.

A system reset can be generated from one of the following sources:

Note: The SYSRESETREQ bit in Cortex ® -M7 Application Interrupt and Reset Control Register must be set to force a software reset on the device. Refer to the Cortex ® -M7 with FPU technical reference manual for more details (see http://infocenter.arm.com ).

As shown in Figure 49 , some internal sources (such as pwr_por_rst , pwr_bor_rst , iwdg[2:1]_out_rst ) perform a system reset of the circuit, which is also propagated to the NRST pin to reset the connected external devices. The pulse generator guarantees a minimum reset pulse duration of 20 µs for each internal reset source. In case of an external reset, the reset pulse is generated while the NRST pin is asserted Low.

Note: It is not recommended to let the NRST pin unconnected. When it is not used, connect this pin to ground via a 10 to 100 nF capacitor ( \( C_R \) in Figure 49 ).

Figure 49. System reset circuit

Schematic diagram of the system reset circuit. An external NRST pin is connected to a capacitor CR to ground and a pull-up resistor RPU to VDD. The NRST signal enters the RCC block and is connected to an inverter. The output of the inverter passes through a 'Filter' block to become the 'nreset (System Reset)' signal. The NRST signal also branches into a 'Pulse generator (20 µs min)' block. The outputs of the 'Filter' block and the 'Pulse generator' are inputs to an 'OR' gate. The outputs of the 'OR' gate are connected to a list of reset signals: pwr_bor_rst, pwr_por_rst, iwdg1_out_rst, iwdg2_out_rst, wwdg1_out_rst, wwdg2_out_rst, lpwr1_rst, lpwr2_rst, SFT2RESET, and SFT1RESET. The diagram is labeled with 'MSV37849V3' in the bottom right corner.
Schematic diagram of the system reset circuit. An external NRST pin is connected to a capacitor CR to ground and a pull-up resistor RPU to VDD. The NRST signal enters the RCC block and is connected to an inverter. The output of the inverter passes through a 'Filter' block to become the 'nreset (System Reset)' signal. The NRST signal also branches into a 'Pulse generator (20 µs min)' block. The outputs of the 'Filter' block and the 'Pulse generator' are inputs to an 'OR' gate. The outputs of the 'OR' gate are connected to a list of reset signals: pwr_bor_rst, pwr_por_rst, iwdg1_out_rst, iwdg2_out_rst, wwdg1_out_rst, wwdg2_out_rst, lpwr1_rst, lpwr2_rst, SFT2RESET, and SFT1RESET. The diagram is labeled with 'MSV37849V3' in the bottom right corner.

9.4.3 Local resets

Domain reset

Some resets also dependent on the domain status. For example, when D1 domain exits from DStandby, it is reset ( d1_rst ). The same mechanism applies to D2.

When the system exits from Standby mode, an stby_rst reset is applied. The stby_rst signal generates a reset of the complete V CORE domain as long the V CORE voltage provided by the internal regulator is not valid.

Table 56 gives a detailed overview of reset sources and scopes.

Table 56. Reset distribution summary

Reset sourceReset nameD1 CPUD1 InterconnectD1 PeripheralsD1 DebugD1 WWDG1D2 CPUD2 InterconnectD2 PeripheralsD2 DebugD2 WWDG2D3 PeripheralsIWDG1IWDG2FLASHRTC domainBackup RAMSystem SupplyNRST pinComments
PinNRSTxxx-xxxx-xxxx----x
  • Resets D1 and D2 domains, and all their peripherals
  • Resets D3 domain peripherals
  • Resets V DD domain: IWDG[2:1], LDO...
  • Debug features, Flash memory, RTC and backup RAM are not reset

Table 56. Reset distribution summary (continued)

Reset sourceReset nameD1 CPUD1 InterconnectD1 PeripheralsD1 DebugD1 WWDG1D2 CPUD2 InterconnectD2 PeripheralsD2 DebugD2 WWDG2D3 PeripheralsIWDG1IWDG2FLASHRTC domainBackup RAMSystem SupplyNRST pinComments
PWRpwr_bor_rstxxx-xxxx-xxxx----x– Same as pin reset. The pin is asserted as well.
pwr_por_rstxxxxxxxxxxxxxx--xx– Same as pwr_bor_rst reset, plus:
Reset of the Flash memory digital block (including the option byte loading).
Reset of the debug block
lpwr2_rst
lpwr1_rst
xxx-xxxx-xxxx----x– The low-power mode security reset has the same scope than pwr_por_rst . Refer to Section 9.4.5: Low-power mode security reset (lpwr[2:1]_rst) for additional information.
RCCBDRST--------------x---– The backup domain reset can be triggered by software. Refer to Section 9.4.6: Backup domain reset for additional information
d1_rstxxxxx-------------– Resets D1 domain, and all its peripherals, when the domain exits DStandby mode.
d2_rst-----xxxxx--------– Resets D2 domain, and all its peripherals, when the domain exits DStandby mode.
stby_rstxxxxxxxxxxx-------– When the device exits Standby mode, a reset of the complete V CORE domain is performed as long the V CORE voltage is not valid. The V CORE is supplied by the internal regulator.
NRST signal is not asserted.
CPU1SFT1RESETxxx-xxxx-xxxx----x– This reset is generated by software when writing SYSRESETREQ bit located into AIRCR register of the Cortex®-M7 core.
– Same scope as pwr_bor_rst reset.
CPU2SFT2RESETxxx-xxxx-xxxx----x– This reset is generated by software when writing SYSRESETREQ bit located into AIRCR register of the Cortex®-M4.
– Same scope as pwr_bor_rst reset.

Table 56. Reset distribution summary (continued)

Reset sourceReset nameComments
D1 CPUD1 InterconnectD1 PeripheralsD1 DebugD1 WWDG1D2 CPUD2 InterconnectD2 PeripheralsD2 DebugD2 WWDG2D3 PeripheralsIWDG1IWDG2FLASHRTC domainBackup RAMSystem SupplyNRST pin
Backup domainpwr_vsw_rst--------------x----– This reset is generated by the backup domain when the V SW supply voltage is outside the operating range.
IWDG1iwdg1_out_rstxxx-xxxx-xxxx----x-– Same as pwr_bor_rst reset.
IWDG2iwdg2_out_rstxxx-xxxx-xxxx----x-– Same as pwr_bor_rst reset.
WWDG1wwdg1_out_rstxxx-xxxx-xxxx----x-– Same as pwr_bor_rst reset.
WWDG2wwdg2_out_rstxxx-xxxx-xxxx----x-– Same as pwr_bor_rst reset.

9.4.4 Reset source identification

Each CPU can identify the reset source by checking the reset flags in the RCC_C1_RSR and RCC_C2_RSR registers:

Each CPU can reset the flags of its own register by setting RMVF bit without interfering with the other CPU (refer to RCC reset status register (RCC_RSR) for a detailed description).

Table 57 shows how the status bits of RCC_RSR register behaves, according to the situation that generated the reset. For example when an IWDG1 timeout occurs (line #10), if the CPU is reading the RCC_RSR register during the boot phase, both PINRSTF and IWDG1RSTF bits are set, indicating that the IWDG1 also generated a pin reset.

Table 57. Reset source identification (RCC_RSR) (1)
#Situations Generating a ResetLPWR2RSTFLPWR1RSTFWWDG2RSTFWWDG1RSTFIWDG2RSTFIWDG1RSTFSFT2RSTFSFT1RSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTF
1Power-on reset (pwr_por_rst)0000000011111
2Pin reset (NRST)0000000001000
3Brownout reset (pwr_bor_rst)0000000001100
4System reset generated by CPU1 (STF1RESET)0000000101000
5System reset generated by CPU2 (STF2RESET)0000001001000
6WWDG1 reset (wwdg1_out_rst)0001000001000
7WWDG2 reset (wwdg2_out_rst)0010000001000
8IWDG1 reset (iwdg1_out_rst)0000010001000
9IWDG2 reset (iwdg2_out_rst)0000100001000
10D1 exits DStandby mode0000000000001
11D2 exits DStandby mode0000000000010
12D1 erroneously enters DStandby mode or CPU1 erroneously enters CStop mode0100000001000
13D2 erroneously enters DStandby mode or CPU2 erroneously enters CStop mode1000000001000

1. Grayed cells highlight the register bits that are set.

9.4.5 Low-power mode security reset (lpwr[2:1]_rst)

To prevent critical applications from mistakenly enter a low-power mode, two low-power mode security resets are available. When enabled through nRST_STOP_C[2:1] option bytes, a system reset is generated if the following conditions are met:

LPWR[2:1]RSTF bits in RCC reset status register (RCC_RSR) indicate that a low-power mode security reset occurred (see line #14 and #15 in Table 57 ).

lpwr1_rst is activated when a low-power mode security reset due to D1 or CPU1 occurred, while lpwr2_rst is activated when a low-power mode security reset due to D2 or CPU2 occurred.

Refer to Section 4.4: FLASH option bytes for additional information.

9.4.6 Backup domain reset

A backup domain reset is generated when one of the following events occurs:

There are two ways to reset the backup RAM:

Refer to Section 7.4.4: Backup domain section of PWR block for additional information.

9.4.7 Power-on and wakeup sequences

For detailed diagrams refer to Section 7.4.1: System supply startup in the PWR section.

The time interval between the event which exits the product from a low-power and the moment where the CPUs are able to execute code, depends on the system state and on its configuration. Figure 50 shows the most usual examples.

Power-on wakeup sequence

The power-on wakeup sequence shown in Figure 50 gives the most significant phases of the power-on sequence. It is the longest sequence since the circuit was not powered. Note that this sequence remains unchanged, whatever \( V_{BAT} \) was present or not.

Boot from pin reset

When a pin reset occurs, \( V_{DD} \) is still present. As a result:

Note: The boot sequence is similar for pwr_bor_rst, lpwrx_rst, STFxRESET, iwdgx_out_rst and wwdgx_out_rst.

Boot from system Standby

When waking up from system Standby, the reference voltage is stable since \( V_{DD} \) has not been removed. As a result, the regulator settling time is fast. Since \( V_{CORE} \) was not present, the restart delay for the HSI, the Flash memory power recovery and the option byte reloading cannot be skipped.

Restart from system Stop

When restarting from system Stop, \( V_{DD} \) is still present. As a result, the sequence is mainly composed of two steps:

  1. 1. Regulator settling time to reach VOS3 (default voltage)
  2. 2. HSI/CSI restart delay. This step can be skipped if HSIKERON or CSIKERON bit, in RCC source control register (RCC_CR) is set to '1'.

Boot from domain DStandby

The boot sequence of a domain from domain DStandby is mainly composed of two steps:

  1. 1. The power switch settling time (the regulator is already activated).
  2. 2. The Flash memory power recovery, if the domain which exits from DStandby is D1, otherwise this step is skipped.

Restart from domain DStop

The restart sequence of a domain from domain DStop is mainly composed of the handshake between the RCC, EXTI and PWR blocks.

Figure 50. Boot sequences versus system states

Timing diagrams showing boot sequences for various system states: Power-on wake-up, PAD Reset, Wake-up from system Standby, Re-start from system Stop, Wake-up from Domain DStandby, and Re-start from Domain DStop. A legend defines the timing parameters: REG + BandGap, REG_VOS3, REG, FL_PWR, FL_OPTB, ePOD, RUN, D, HSI/CSI.

The figure displays six timing diagrams illustrating boot sequences versus system states over time. Each diagram shows the sequence of events from a reset or wake-up event to the RUN state.

Legend:

MSV37850V2

Timing diagrams showing boot sequences for various system states: Power-on wake-up, PAD Reset, Wake-up from system Standby, Re-start from system Stop, Wake-up from Domain DStandby, and Re-start from Domain DStop. A legend defines the timing parameters: REG + BandGap, REG_VOS3, REG, FL_PWR, FL_OPTB, ePOD, RUN, D, HSI/CSI.

Hold boot function

It is possible to put one of the two CPUs on hold after a system reset or when the device exits from Standby. This function is controlled by two option bytes, BCM4 and BCM7, and two bits, BOOT_C1 and BOOT_C2, located in the RCC global control register (RCC_GCR) :

The hold boot function is provided in order to support configurations where one CPU is master of the system and shall complete the initialization of the whole device (system clock, voltage scaling...) before activating the second CPU.

Note: After a system reset or system Standby, the BOOT_C1 and BOOT_C2 bits are set to '0'.

Table 58. Boot enable Function (1)
BCM7BCM4BOOT_C1BOOT_C2CPU1 StateCPU2 StateComments
010XHOLDENABLEDAfter a system reset or System Standby, CPU2 will boot and CPU1 will remain on hold until CPU2 sets BOOT_C1 to '1'
1XENABLEDENABLEDWhen CPU2 writes BOOT_C1 to '1', CPU1 will boot as well
X0X0ENABLEDHOLDAfter a system reset or System Standby, CPU1 will boot, and CPU2 will remain on hold until CPU1 sets BOOT_C2 to '1'
X1ENABLEDENABLEDWhen CPU1 writes BOOT_C2 to '1', CPU2 will boot as well
11XXENABLEDENABLEDAfter a system reset or System Standby, CPU1 and CPU2 will boot.

1. Setting both BCM4 and BCM7 bits to '0' forces the boot from CPU1.

9.5 RCC clock block functional description

The RCC provides a wide choice of clock generators:

It offers a high flexibility for the application to select the appropriate clock for CPUs and peripherals, in particular for peripherals that require a specific clock such as Ethernet, USB OTG-FS and HS, SPI/I2S, SAI and SDMMC.

To optimize the power consumption, each clock source can be switched ON or OFF independently.

The RCC provides up to 3 PLLs; each of them can be configured with integer or fractional ratios.

As shown in the Figure 51 , the RCC offers 2 clock outputs (MCO1 and MCO2), with a great flexibility on the clock selection and frequency adjustment.

The SCGU block (System Clock Generation Unit) contains several prescalers used to configure the CPU and bus matrix clock frequencies.

The PKSU block (Peripheral Kernel clock Selection Unit) provides several dynamic switches allowing a large choice of kernel clock distribution to peripherals.

The PKEU (Peripheral Kernel clock Enable Unit) and SCEU (System Clock Enable Unit) blocks perform the peripheral kernel clock gating, and the bus interface/cores/bus matrix clock gating, respectively.

Figure 51. Top-level clock tree

Top-level clock tree diagram for RCC. It shows various clock sources (LSI, LSE, HSE, HSI, CSI, HSI48, OSC32, OSC) being processed through dividers, PLLs (PLL1, PLL2, PLL3), and multiplexers to provide system, peripheral, and USB clocks. The diagram is divided into functional blocks: VDD Domain (LSI, HSE, HSI, CSI, HSI48), VSW (Backup) (LSE), PLLs, and various clock output and distribution blocks (MCO1, MCO2, TPIU, SCGU, SCEU, PKSU, PKEU).

The diagram illustrates the top-level clock tree for the RCC. It shows the following components and connections:

Legend:

MSV39356V3

Top-level clock tree diagram for RCC. It shows various clock sources (LSI, LSE, HSE, HSI, CSI, HSI48, OSC32, OSC) being processed through dividers, PLLs (PLL1, PLL2, PLL3), and multiplexers to provide system, peripheral, and USB clocks. The diagram is divided into functional blocks: VDD Domain (LSI, HSE, HSI, CSI, HSI48), VSW (Backup) (LSE), PLLs, and various clock output and distribution blocks (MCO1, MCO2, TPIU, SCGU, SCEU, PKSU, PKEU).

9.5.1 Clock naming convention

The RCC provides clocks to the complete circuit. To avoid misunderstanding, the following terms are used in this document:

The peripheral clocks are the clocks provided by the RCC to the peripherals. Two kinds of clock are available:

A peripheral receives from the RCC a bus interface clock in order to access its registers, and thus control the peripheral operation. This clock is generally the AHB, APB or AXI clock depending on which bus the peripheral is connected to. Some peripherals only need a bus interface clock (e.g. RNG, TIMx).

Some peripherals also require a dedicated clock to handle the interface function. This clock is named “kernel clock”. As an example, peripherals such as SAI have to generate specific and accurate master clock frequencies, which require dedicated kernel clock frequencies. Another advantage of decoupling the bus interface clock from the specific interface needs, is that the bus clock can be changed without reprogramming the peripheral.

The CPU clock is the clock provided to the CPUs. It is derived from the system clock ( sys_ck ).

The bus matrix clocks are the clocks provided to the different bridges (APB, AHB or AXI). These clocks are derived from the system clock ( sys_ck ).

9.5.2 Oscillators description

HSE oscillator

The HSE block can generate a clock from two possible sources:

Figure 52. HSE/LSE clock source

Figure 52. HSE/LSE clock source. The diagram shows two configurations for the HSE/LSE oscillator block. On the left, the 'External clock configuration' shows the OSC32_IN and OSC_IN pins connected to an external clock source, and the OSC32_OUT and OSC_OUT pins connected to a GPIO. On the right, the 'Crystal/ceramic resonators configuration' shows the OSC32_IN and OSC_IN pins connected to a crystal/ceramic resonator, which is in turn connected to two load capacitors, C_L1 and C_L2, which are then connected to ground. The OSC32_OUT and OSC_OUT pins are also connected to ground. The diagram is labeled MSV39357V2.
Figure 52. HSE/LSE clock source. The diagram shows two configurations for the HSE/LSE oscillator block. On the left, the 'External clock configuration' shows the OSC32_IN and OSC_IN pins connected to an external clock source, and the OSC32_OUT and OSC_OUT pins connected to a GPIO. On the right, the 'Crystal/ceramic resonators configuration' shows the OSC32_IN and OSC_IN pins connected to a crystal/ceramic resonator, which is in turn connected to two load capacitors, C_L1 and C_L2, which are then connected to ground. The OSC32_OUT and OSC_OUT pins are also connected to ground. The diagram is labeled MSV39357V2.

External clock source (HSE bypass)

In this mode, an external clock source must be provided to OSC_IN pin. This mode is selected by setting the HSEBYP and HSEON bits of the RCC source control register (RCC_CR) to '1'. The external clock source (square, sinus or triangle) with ~50% duty cycle has to drive the OSC_IN pin.

External crystal/ceramic resonator

The oscillator is enabled by setting the HSEBYP bit to '0' and HSEON bit to '1'.

The HSE can be used when the product requires a very accurate high-speed clock.

The associated hardware configuration is shown in Figure 52 : the resonator and the load capacitors have to be placed as close as possible to the oscillator pins in order to minimize output distortion and startup stabilization time. The loading capacitance values must be adjusted according to the selected crystal or ceramic resonator. Refer to the electrical characteristics section of the datasheet for more details.

The HSERDY flag of the RCC source control register (RCC_CR) , indicates whether the HSE oscillator is stable or not. At startup, the hse_ck clock is not released until this bit is set by hardware. An interrupt can be generated if enabled in the RCC clock source interrupt enable register (RCC_CIER) .

The HSE can be switched ON and OFF through the HSEON bit. Note that the HSE cannot be switched OFF if one of the two conditions is met:

In that case the hardware does not allow programming the HSEON bit to '0'.

The HSE is automatically disabled by hardware, when the system enters Stop or Standby mode (refer to Section 9.5.7: Handling clock generators in Stop and Standby mode for additional information).

In addition, the HSE clock can be driven to the MCO1 and MCO2 outputs and used as clock source for other application components.

LSE oscillator

The LSE block can generate a clock from two possible sources:

External clock source (LSE bypass)

In this mode, an external clock source must be provided to OSC32_IN pin. The input clock can have a frequency up to 1 MHz. This mode is selected by setting the LSEBYP and LSEON bits of RCC Backup domain control register (RCC_BDCR) to '1'. The external clock signal (square, sinus or triangle) with ~50% duty cycle has to drive the OSC32_IN pin.

External crystal/ceramic resonator (LSE crystal)

The LSE clock is generated from a 32.768 kHz crystal or ceramic resonator. It has the advantage to provide a low-power highly accurate clock source to the real-time clock (RTC) for clock/calendar or other timing functions.

The LSERDY flag of the RCC Backup domain control register (RCC_BDCR) indicates whether the LSE crystal is stable or not. At startup, the LSE crystal output clock signal is not released until this bit is set by hardware. An interrupt can be generated if enabled in the RCC clock source interrupt enable register (RCC_CIER) .

The LSE oscillator is switched ON and OFF using the LSEON bit. The LSE remains enabled when the system enters Stop or Standby mode.

In addition, the LSE clock can be driven to the MCO1 output and used as clock source for other application components.

The LSE also offers a programmable driving capability (LSEDRV[1:0]) that can be used to modulate the amplifier driving capability. The driving capability cannot be changed when the LSE oscillator is ON.

HSI oscillator

The HSI block provides the default clock to the product.

The HSI is a high-speed internal RC oscillator which can be used directly as system clock, peripheral clock, or as PLL input. A prescaler allows the application to select an HSI output frequency of 8, 16, 32 or 64 MHz. This prescaler is controlled by the HSIDIV.

The HSI advantages are the following:

The HSI frequency, even with frequency calibration, is less accurate than an external crystal oscillator or ceramic resonator.

The HSI can be switched ON and OFF using the HSION bit. Note that the HSI cannot be switched OFF if one of the two conditions is met:

In that case the hardware does not allow programming the HSION bit to '0'.

Note that the HSIDIV cannot be changed if the HSI is selected as reference clock for at least one enabled PLL (PLLxON bit set to '1'). In that case the hardware does not update the HSIDIV with the new value. However it is possible to change the HSIDIV if the HSI is used directly as system clock.

The HSIRDY flag indicates if the HSI is stable or not. At startup, the HSI output clock is not released until this bit is set by hardware.

The HSI clock can also be used as a backup source (auxiliary clock) if the HSE fails (refer to Section : CSS on HSE ). The HSI can be disabled or not when the system enters Stop mode, please refer to Section 9.5.7: Handling clock generators in Stop and Standby mode for additional information.

In addition, the HSI clock can be driven to the MCO1 output and used as clock source for other application components.

Care must be taken when the HSI is used as kernel clock for communication peripherals, the application must take into account the following parameters:

Note: The HSI can remain enabled when the system is in Stop mode (see Section 9.5.7 for additional information ).

HSION, HSIRDY and HSIDIV bits are located in the RCC source control register (RCC_CR) .

HSI calibration

RC oscillator frequencies can vary from one chip to another due to manufacturing process variations. That is why each device is factory calibrated by STMicroelectronics to improve accuracy (refer to the product datasheet for more information).

After a power-on reset, the factory calibration value is loaded in the HSICAL[11:0] bits.

If the application is subject to voltage or temperature variations, this may affect the RC oscillator frequency. The user application can trim the HSI frequency using the HSITRIM[6:0] bits.

Note: HSICAL[11:0] and HSITRIM[6:0] bits are located in the RCC HSI configuration register (RCC_HSICFGR) .

CSI oscillator

The CSI is a low-power RC oscillator which can be used directly as system clock, peripheral clock, or PLL input.

The CSI advantages are the following:

The CSI provides a clock frequency of about 4 MHz, while the HSI is able to provide a clock up to 64 MHz.

CSI frequency, even with frequency calibration, is less accurate than an external crystal oscillator or ceramic resonator.

The CSI can be switched ON and OFF through the CSION bit. The CSIRDY flag indicates whether the CSI is stable or not. At startup, the CSI output clock is not released until this bit is set by hardware.

The CSI cannot be switched OFF if one of the two conditions is met:

In that case the hardware does not allow programming the CSION bit to '0'.

The CSI can be disabled or not when the system enters Stop mode (refer to Section 9.5.7: Handling clock generators in Stop and Standby mode for additional information).

In addition, the CSI clock can be driven to the MCO2 output and used as clock source for other application components.

Even if the CSI settling time is faster than the HSI, care must be taken when the CSI is used as kernel clock for communication peripherals: the application has to take into account the following parameters:

Note: CSION and CSIRDY bits are located in the RCC source control register (RCC_CR) .

CSI calibration

RC oscillator frequencies can vary from one chip to another due to manufacturing process variations, this is why each device is factory calibrated by STMicroelectronics to improve accuracy (refer to the product datasheet for more information).

After reset, the factory calibration value is loaded in the CSICAL[9:0] bits.

If the application is subject to voltage or temperature variations, this may affect the RC oscillator frequency. The user application can trim the CSI frequency using the CSITRIM[5:0] bits.

Note: CSICAL[9:0] and CSITRIM[5:0] bits are located into the RCC CSI configuration register (RCC_CSICFG)

HSI48 oscillator

The HSI48 is an RC oscillator that delivers a 48 MHz clock that can be used directly as kernel clock for some peripherals.

The internal HSI48 oscillator mainly aims at providing a high precision clock to the USB peripheral by means of a special Clock Recovery System (CRS) circuitry, which could use the USB SOF signal, the LSE, or an external signal, to automatically adjust the oscillator frequency on-the-fly, in very small granularity.

The HSI48 oscillator is disabled as soon as the system enters Stop or Standby mode. When the CRS is not used, this oscillator is free running and thus subject to manufacturing process variations. That is why each device is factory calibrated by STMicroelectronics to achieve an accuracy of ACC HSI48 (refer to the product datasheet for more information).

For more details on how to configure and use the CRS, please refer to Section 10: Clock recovery system (CRS) .

The HSI48RDY flag indicates whether the HSI48 oscillator is stable or not. At startup, the HSI48 output clock is not released until this bit is set by hardware.

The HSI48 can be switched ON and OFF using the HSI48ON bit.

The HSI48 clock can also be driven to the MCO1 multiplexer and used as clock source for other application components.

Note: HSI48ON and HSI48RDY bits are located in the RCC source control register (RCC_CR) .

LSI oscillator

The LSI acts as a low-power clock source that can be kept running when the system is in Stop or Standby mode for the independent watchdog (IWDG) and Auto-Wakeup Unit (AWU). The clock frequency is around 32 kHz. For more details, refer to the electrical characteristics section of the datasheet.

The LSI can be switched ON and OFF using the LSION bit. The LSIRDY flag indicates whether the LSI oscillator is stable or not. If an independent watchdog is started either by hardware or software, the LSI is forced ON and cannot be disabled.

The LSI remains enabled when the system enters Stop or Standby mode (refer to Section 9.5.7: Handling clock generators in Stop and Standby mode for additional information).

At LSI startup, the clock is not provided until the hardware sets the LSIRDY bit. An interrupt can be generated if enabled in the RCC clock source interrupt enable register (RCC_CIER) .

In addition, the LSI clock can be driven to the MCO2 output and used as a clock source for other application components.

Note: Bits LSION and LSIRDY are located into the RCC clock control and status register (RCC_CSR) .

9.5.3 Clock Security System (CSS)

CSS on HSE

The clock security system can be enabled by software via the HSECSSON bit. The HSECSSON bit can be enabled even when the HSEON is set to '0'.

The CSS on HSE is enabled by the hardware when the HSE is enabled and ready, and HSECSSON set to '1'.

The CSS on HSE is disabled when the HSE is disabled. As a result, this function does not work when the system is in Stop mode.

It is not possible to clear directly the HSECSSON bit by software.

The HSECSSON bit is cleared by hardware when a system reset occurs or when the system enters Standby mode (see Section 9.4.2: System reset ).

If a failure is detected on the HSE clock, the system automatically switches to the HSI in order to provide a safe clock. The HSE is then automatically disabled, a clock failure event is sent to the break inputs of advanced-control timers (TIM1, TIM8, TIM15, TIM16, and TIM17), and an interrupt is generated to inform the software about the failure (CSS interrupt: rcc_hsecss_it ), thus allowing the MCU to perform rescue operations. If the HSE output was used as clock source for PLLs when the failure occurred, the PLLs are also disabled.

If an HSE clock failure occurs when the CSS is enabled, the CSS generates an interrupt which causes the automatic generation of an NMI. The HSECSSF flag in RCC clock source interrupt flag register (RCC_CIFR) is set to '1' to allow the application to identify the failure source. The NMI routine is executed indefinitely until the HSECSSF bit is cleared. As a consequence, the application has to clear the HSECSSF flag in the NMI ISR by setting the HSECSSC bit in the RCC clock source interrupt clear register (RCC_CICR) .

CSS on LSE

A clock security system on the LSE oscillator can be enabled by software by programming the LSECSSON bit in the RCC Backup domain control register (RCC_BDCR) .

This bit can be disabled only by hardware when the following conditions are met:

LSECSSON bit must be written after the LSE is enabled (LSEON bit set by software) and ready (LSERDY set by hardware), and after the RTC clock has been selected through the RTCSEL bit.

The CSS on LSE works in all modes (Run, Stop and Standby) except VBAT.

If an LSE failure is detected, the LSE clock is no more delivered to the RTC but the value of RTCSEL, LSECSSON and LSEON bits are not changed by the hardware.

A wakeup is generated in Standby mode. In other modes an interrupt ( rcc_lsecss_it ) can be sent to wake up the software. The software must then disable the LSECSSON bit, stop the defective LSE (clear LSEON bit), and can change the RTC clock source (no clock or LSI or HSE) through RTCSEL bits, or take any required action to secure the application.

9.5.4 Clock output generation (MCO1/MCO2)

Two micro-controller clock output (MCO) pins, MCO1 and MCO2, are available. A clock source can be selected for each output. The selected clock can be divided thanks to configurable prescaler (refer to Figure 51 for additional information on signal selection).

MCO1 and MCO2 outputs are controlled via MCO1PRE[3:0], MCO1SEL[2:0], MCO2PRE[3:0] and MCO2SEL[2:0] located in the RCC clock configuration register (RCC_CFGR) .

The GPIO port corresponding to each MCO pin, has to be programmed in alternate function mode.

The clock provided to the MCOs outputs must not exceed the maximum pin speed (refer to the product datasheet for information on the supported pin speed).

9.5.5 PLL description

The RCC features three PLLs:

The PLLs integrated into the RCC are completely independent. They offer the following features:

Figure 53. PLL block diagram

Figure 53. PLL block diagram. The diagram shows the internal architecture of a PLL. A reference clock (refx_ck) is input and selected via a multiplexer (0 or 1) controlled by PLLxVCOSEL. The selected reference is fed into a PFD + CP block. The PFD + CP block also receives feedback from a divider (DIVNx) and a Sigma-Delta modulator (ΣΔ Modulator) via an SH_REG. The PFD + CP output is filtered by an LPF and fed into a VCO (VCOH or VCOL). The VCO output (vcox_ck) is divided by DIVPx, DIVQx, or DIVRx to produce pllx_p_ck, pllx_q_ck, and pllx_r_ck respectively. An LDO provides a 1V supply (VDDA). Configuration registers (PLLxRGE, PLLxFRACEN, FRACNx) are shown controlling the PLL parameters.

DIVPx = 2,4,6...128 when x = 1, and DIVPx = 1,2,3...128 for x = 2 or 3

MSV39366V2

Figure 53. PLL block diagram. The diagram shows the internal architecture of a PLL. A reference clock (refx_ck) is input and selected via a multiplexer (0 or 1) controlled by PLLxVCOSEL. The selected reference is fed into a PFD + CP block. The PFD + CP block also receives feedback from a divider (DIVNx) and a Sigma-Delta modulator (ΣΔ Modulator) via an SH_REG. The PFD + CP output is filtered by an LPF and fed into a VCO (VCOH or VCOL). The VCO output (vcox_ck) is divided by DIVPx, DIVQx, or DIVRx to produce pllx_p_ck, pllx_q_ck, and pllx_r_ck respectively. An LDO provides a 1V supply (VDDA). Configuration registers (PLLxRGE, PLLxFRACEN, FRACNx) are shown controlling the PLL parameters.

The PLLs are controlled via RCC_PLLxDIVR, RCC_PLLxFRACR, RCC_PLLCFGGR and RCC_CR registers.

The frequency of the reference clock provided to the PLLs ( refx_ck ) must range from 1 to 16 MHz. The user application has to program properly the DIVMx dividers of the RCC PLLs clock source selection register (RCC_PLLCKSELR) in order to match this condition. In addition, the PLLxRGE of the RCC PLL configuration register (RCC_PLLCFGGR) field must be set according to the reference input frequency to guarantee an optimal performance of the PLL.

The user application can then configure the proper VCO: if the frequency of the reference clock is lower or equal to 2 MHz, then VCOL must be selected, otherwise VCOH must be chosen. To reduce the power consumption, it is recommended to configure the VCO output to the lowest frequency.

DIVNx loop divider has to be programmed to achieve the expected frequency at VCO output. In addition, the VCO output range must be respected.

The PLLs operate in integer mode when the value of SH_REG (FRACNx shadow register) is set to '0'. The SH_REG is updated with the FRACNx value when PLLxFRACEN bit goes from '0' to '1'. The Sigma-Delta modulator is designed in order to minimize the jitter impact while allowing very small frequency steps.

The PLLs can be enabled by setting PLLxON to '1'. The bits PLLxRDY indicate that the PLL is ready (i.e. locked).

Note: Before enabling the PLLs, make sure that the reference frequency ( refx_ck ) provided to the PLL is stable, so the hardware does not allow changing DIVMx when the PLLx is ON and it is also not possible to change PLLSRC when one of the PLL is ON.

The hardware prevents writing PLL1ON to '0' if the PLL1 is currently used to deliver the system clock. There are other hardware protections on the clock generators (refer to sections HSE oscillator , HSI oscillator and CSI oscillator ).

The following PLL parameters cannot be changed once the PLL is enabled: DIVNx, PLLxRGE, PLLxVCOSEL, DIVPx, DIVQx, DIVRx, DIVPxEN, DIVQxEN and DIVRxEN.

To insure an optimal behavior of the PLL when one of the post-divider (DIVP, DIVQ or DIVR) is not used, the application shall set the enable bit (DIVyEN) as well as the corresponding post-divider bits (DIVP, DIVQ or DIVR) to '0'.

If the above rules are not respected, the PLL output frequency is not guaranteed.

Output frequency computation

When the PLL is configured in integer mode (SH_REG = '0'), the VCO frequency ( \( F_{VCO} \) ) is given by the following expression:

\[ F_{VCO} = F_{REF\_CK} \times DIVN \]

\[ F_{PLL\_y\_CK} = (F_{VCO} / (DIVy + 1)) \text{ with } y = P, Q \text{ or } R \]

When the PLL is configured in fractional mode (SH_REG different from '0'), the DIVN divider must be initialized before enabling the PLLs. However, it is possible to change the value of FRACNx on-the-fly without disturbing the PLL output.

This feature can be used either to generate a specific frequency from any crystal value with a good accuracy, or to fine-tune the frequency on-the-fly.

For each PLL, the VCO frequency is given by the following formula:

\[ F_{VCO} = F_{ref\_ck} \times \left( DIVN + \frac{FRACN}{2^{(13)}} \right) \]

Note: For PLL1, DIVP can only take odd values.

The PLLs are disabled by hardware when:

PLL initialization phase

Figure 54 shows the recommended PLL initialization sequence in integer and fractional mode. The PLLx are supposed to be disabled at the start of the initialization sequence:

  1. 1. Initialize the PLLs registers according to the required frequency.
    • – Set PLLxFRACEN of RCC PLL configuration register (RCC_PLLCFGR) to '0' for integer mode.
    • – For fractional mode, set FRACN to the required initial value (FracInitValue) and then set PLLxFRACEN to '1'.
  2. 2. Once the PLLxON bit is set to '1', the user application has to wait until PLLxRDY bit is set to '1'. If the PLLx is in fractional mode, the PLLxFRACEN bit must not be set back to '0' as long as PLLxRDY = '0'.
  3. 3. Once the PLLxRDY bit is set to '1', the PLLx is ready to be used.
  4. 4. If the application intends to tune the PLLx frequency on-the-fly (possible only in fractional mode), then:
    1. a) PLLxFRACEN must be set to '0',
      When PLLxFRACEN = '0', the Sigma-Delta modulator is still operating with the value latched into SH_REG.
      Application must wait for 3 refx_ck clock periods (PLLxFRACEN bit propagation delay)
    2. b) A new value must be uploaded into PLLxFRACR (FracValue(n)).
    3. c) PLLxFRACEN must be set to '1', in order to latch the content of PLLxFRACR into its shadow register.
      The new value is considered after 3 clock periods of refx_ck (PLLxFRACEN bit propagation delay)

Note: When the PLLxRDY goes to '1', it means that the difference between the PLLx output frequency and the target value is lower than \( \pm 2\% \) .

Figure 54. PLLs Initialization Flowchart

Flowcharts for PLL enable sequence in integer and fractional modes.
graph TD
    subgraph IntegerMode [ ]
        I1([PLL enable sequence
integer mode]) --> I2[Select clock source (RCC_CKSELR)
- (PLLSRC)] I2 --> I3[Init pre-divider (RCC_CKSELR)
- DIVMx] I3 --> I4["PLLx config (RCC_PLLCFGR)
- PLLxVCOSEL, PLLxRGE
- PLLxFRACEN = 0
- DIVPxEN, DIVQxEN, DIVRxEN
Init PLLx dividers (RCC_PLLxDIVR)
- DIVNx, DIVPx, DIVQx, DIVRx"] I4 --> I5[Enable PLLx (RCC_CR)
- PLLxON = 1] I5 --> I6{PLLxRDY = 1 ?} I6 -- No --> I6 I6 -- Yes --> I7([Ready for use in integer
mode]) end subgraph FractionalMode [ ] F1([PLL enable sequence
fractional mode]) --> F2[Select clock source (RCC_CKSELR)
- (PLLSRC)] F2 --> F3[Init pre-divider (RCC_CKSELR)
- DIVMx] F3 --> F4["Init fractional value (RCC_PLLxFRACR)
- FRACN = FracInitValue
PLLx config (RCC_PLLCFGR)
- PLLxVCOSEL, PLLxRGE
- PLLxFRACEN = 1
- DIVPxEN, DIVQxEN, DIVRxEN
Init PLLx dividers (RCC_PLLxDIVR)
- DIVNx, DIVPx, DIVQx, DIVRx"] F4 --> F5[Enable PLLx (RCC_CR)
- PLLxON = 1] F5 --> F6{PLLxRDY = 1 ?} F6 -- No --> F6 F6 -- Yes --> F7([Ready for use in
fractional mode]) end F7 --> F8["Disable fractional mode (RCC_PLLCFGR)
- PLLxFRACEN = 0
Init fractional value (RCC_PLLxFRACR)
- FRACN = FracValue(n)
Enable fractional mode (RCC_PLLCFGR)
- PLLxFRACEN = 1"] F8 --> F9([Ready for use in
fractional mode]) F9 --> F8 style IntegerMode fill:none,stroke:none style FractionalMode fill:none,stroke:none

Can be repeated
for each PLL

Value update
on-the-fly

Flowcharts for PLL enable sequence in integer and fractional modes.

9.5.6 System clock (sys_ck)

System clock selection

After a system reset, the HSI is selected as system clock and all PLLs are switched OFF. When a clock source is used for the system clock, it is not possible for the software to disable the selected source via the xxxON bits.

Of course, the system clock can be stopped by the hardware when the System enters Stop or Standby mode.

When the system is running, the user application can select the system clock ( sys_ck ) among the 4 following sources:

This function is controlled by programming the RCC clock configuration register (RCC_CFGR) . A switch from one clock source to another occurs only if the target clock source is ready (clock stable after startup delay or PLL locked). If a clock source that is not yet ready is selected, the switch occurs when the clock source is ready.

The SWS status bits in the RCC clock configuration register (RCC_CFGR) indicate which clock is currently used as system clock. The other status bits in the RCC_CR register indicate which clock(s) is (are) ready.

System clock generation

Figure 55 shows a simplified view of the clock distribution for the CPUs and busses. All the dividers shown in the block diagram can be changed on-the-fly without generating timing violations. This feature is a very simply solution to adapt the busses frequencies to the application needs, thus optimizing the power consumption.

The D1CPRE divider can be used to adjust CPU1 clock. However this also impacts the clock frequency of all bus matrix, CPU2, and HRTIM.

In the same way, HPRE divider can be used to adjust the clock for D1 domain bus matrix, but this also impacts the clock frequency of bus matrix of D2 and D3 domains, and CPU2.

In addition the CPU clock frequency can be equal to the bus matrix clock frequency, but the maximum frequency for the bus matrix is limited to 200 MHz.

Most of the prescalers are controlled via RCC_D1CFGR, RCC_D2CFGR and RCC_D3CFGR registers.

Figure 55. Core and bus clock generation

Block diagram of Core and bus clock generation (RCC) showing System Clock Generation (SCGU) and various clock outputs for D1, D2, and D3 domains.

The diagram illustrates the clock generation architecture within the RCC block. The main component is the System Clock Generation (SCGU). The input sys_ck is connected to a G1 block, which then feeds into a prescaler block labeled D1CPRE (1) with divisors +1,2,4,8,...,512 . The output of this prescaler is labeled 480 MHz Max and is connected to a multiplexer. This multiplexer also has a sys_d1cpres_ck input. The output of the multiplexer is connected to another prescaler block labeled HPRE (1) with divisors +1,2,4,8,...,512 . The output of this prescaler is labeled 240 MHz Max and is connected to a series of multiplexers and prescalers.

From the 240 MHz Max output, the clock is distributed to several paths:

A vertical block labeled SCEU (System Clock Enabling) is shown on the right side of the SCGU, indicating the control of these clock signals.

Legend:

MSV39368V2

Block diagram of Core and bus clock generation (RCC) showing System Clock Generation (SCGU) and various clock outputs for D1, D2, and D3 domains.

This block also provides the clock for the timers ( rcc_timx_ker_ck and rcc_timy_ker_ck ). The frequency of the timers clock depends on the APB prescaler corresponding to the bus to which the timer is connected, and on TIMPRE bit. Table 59 shows how to select the timer clock frequency.

Table 59. Ratio between clock timer and pclk

D2PPRE1 (1)
D2PPRE2
TIMPRE
(2)
\( F_{rcc\_timx\_ker\_ck} \)
\( F_{rcc\_timy\_ker\_ck} \)
\( F_{rcc\_pclk1} \)
\( F_{rcc\_pclk2} \)
Comments
0xx0\( F_{rcc\_hclk1} \)\( F_{rcc\_hclk1} \)The timer clock is equal to the bus clock.
1000\( F_{rcc\_hclk1} \)\( F_{rcc\_hclk1} / 2 \)The timer clock is twice as fast as the bus clock.
1010\( F_{rcc\_hclk1} / 2 \)\( F_{rcc\_hclk1} / 4 \)
1100\( F_{rcc\_hclk1} / 4 \)\( F_{rcc\_hclk1} / 8 \)
1110\( F_{rcc\_hclk1} / 8 \)\( F_{rcc\_hclk1} / 16 \)
0xx1\( F_{rcc\_hclk1} \)\( F_{rcc\_hclk1} \)The timer clock is equal to the bus clock.
1001\( F_{rcc\_hclk1} \)\( F_{rcc\_hclk1} / 2 \)The timer clock is twice as fast as the bus clock.
1011\( F_{rcc\_hclk1} \)\( F_{rcc\_hclk1} / 4 \)The timer clock is 4 times faster than the bus clock.
1101\( F_{rcc\_hclk1} / 2 \)\( F_{rcc\_hclk1} / 8 \)
1111\( F_{rcc\_hclk1} / 4 \)\( F_{rcc\_hclk1} / 16 \)

1. D2PPRE1 and D2PPRE2 belong to RCC domain 2 clock configuration register (RCC_D2CFGR) .

2. TIMPRE belongs to RCC clock configuration register (RCC_CFGR) .

9.5.7 Handling clock generators in Stop and Standby mode

When the whole system enters Stop mode, all the clocks (system and kernel clocks) are stopped as well as the following clock sources:

The content of the RCC registers is not altered except for PLL1ON, PLL2ON, PLL3ON, HSEON and HSI48ON which are set to '0'.

Exiting Stop mode

When the microcontroller exits system Stop mode via a wake-up event, the application can select which oscillator (HSI and/or CSI) will be used to restart. The STOPWUCK bit selects the oscillator used as system clock. The STOPKERWUCK bit selects the oscillator used as kernel clock for peripherals. The STOPKERWUCK bit is useful if after a system Stop a peripheral needs a kernel clock generated by an oscillator different from the one used for the system clock.

All these bits belong to the RCC clock configuration register (RCC_CFGR) . Table 60 gives a detailed description of their behavior.

Table 60. STOPWUCK and STOPKERWUCK description

STOPWUCKSTOPKERWUCKActivated oscillator when the system exits Stop modeDistributed clocks when System exits Stop mode
System ClockKernel Clock
00HSIHSIHSI
1HSI and CSIHSI and/or CSI
10CSICSICSI
1

During Stop mode

There are two specific cases where the HSI or CSI can be enabled during system Stop mode:

HSIKERON and CSIKERON bits belong to RCC source control register (RCC_CR) . Table 61 gives a detailed description of their behavior.

Table 61. HSIKERON and CSIKERON behavior

HSIKERON (CSIKERON)HSI (CSI) state during Stop modeHSI (CSI) Setting time
0OFF\( t_{su(HSI)} \) ( \( t_{su(CSI)} \) ) (1)
1Running and gatedImmediate
  1. 1. \( t_{su(HSI)} \) and \( t_{su(CSI)} \) are the startup times of the HSI and CSI oscillators (see refer to the product datasheet for the values of these parameters).

When the microcontroller exits system Standby mode, the HSI is selected as system and kernel clock, the RCC registers are reset to their initial values except for the RCC_RSR and RCC_BDCR registers.

Note as well that the HSI and CSI outputs provide two clock paths (see Figure 51 ):

When a peripheral requests the kernel clock in system Stop mode, only the path providing the hsi_ker_ck or csi_ker_ck is activated.

Caution: It is not guaranteed that a CPU will get automatically the same clock frequencies when leaving CStop mode: this mainly depends on the System state. For example CPU2 can switch from time to time from CRun to CStop mode. If the system does not go to Stop or Standby mode, then the system clock is not stopped and CPU2 will operate from it when

leaving CStop mode. However, if the system enters Stop while CPU2 is in CStop mode, then CPU2 will operate from HSI or CSI when it left the CStop mode.

9.5.8 Kernel clock selection

Some peripherals are designed to work with two different clock domains that operate asynchronously:

The benefit of having peripherals supporting these two clock domains is that the user application has more freedom to choose optimized clock frequency for the CPUs, bus matrix and for the kernel part of the peripheral.

As a consequence, the user application can change the bus frequency without reprogramming the peripherals. As an example an on-going transfer with UART will not be disturbed if its APB clock is changed on-the-fly.

Table 62 shows the kernel clock that the RCC can deliver to the peripherals. Each row of Table 62 represents a MUX and the peripherals connected to its output. The columns starting from number 4 represent the clock sources. Column 3 gives the maximum allowed frequency at each MUX output. It is up to the user to respect these requirements.

STMicroelectronics logo
STMicroelectronics logo

Table 62. Kernel clock distribution overview

PeripheralsClock mux control bitsMaximum allowed frequency [MHz]DomainClock Sources
VOS0VOS1VOS2VOS3pll1_q_ckpll2_p_ckpll2_q_ckpll2_r_ckpll3_p_ckpll3_q_ckpll3_r_cksys_ckbus clocks (1)hse_ckhsi_ker_ckcsi_ker_ckhsi48_cklse_cklsi_ckper_ck (2)I2S_CKINdsi_phy_ckUSB_PHY1Disabled
DSIDSISEL133 (3)133 (3)100 (3)66 (3)D110
LTDC-1501507550x
FMCFMCSSEL30025020013312Q3
QUADSPIQSPISEL25020015010012Q3
SDMMC1SDMMCSEL250 (5)200 (5)150 (5)100 (5)Q1
SDMMC2250200150100
DFSDM1 AclkSAI1SEL250200150100D2Q1243
DFSDM1 clkDFSDM1SEL2502001501001Q
FDCANFDCANSEL1251007550120
HDMI-CECCECSEL666666332 (4)01
I2C1,2,3I2C123SEL12510075501Q23
LPTIM1LPTIM1SEL125100755012Q345
TIM[8:1][17:12]-240200150100x
HRTIM-480400300200x
RNGRNGSEL2502001501001Q23
SAI1SAI1SEL15015011375Q1243
SAI2SAI23SEL15015011375Q1243
SAI315015011375
SPDIFRXSPDIFSEL250200150100Q123
SPI(I2S)1,2,3SPI123SEL200200150100Q1243

Table 62. Kernel clock distribution overview (continued)

PeripheralsClock mux control bitsMaximum allowed frequency [MHz]DomainClock Sources
VOS0VOS1VOS2VOS3pll1_q_ckpll2_p_ckpll2_q_ckpll2_r_ckpll3_p_ckpll3_q_ckpll3_r_cksys_ckbus clocks (1)hse_ckhsi_ker_ckcsi_ker_ckhsi48_cklse_cklsi_ckper_ck (2)i2S_CKINdsi_phy_ckUSB_PHY1Disabled
SPI4,5SPI45SEL1251007550D2120534
SWPMISWPSEL125100755001
USART1,6USART16SEL1251007550120345
USART2,3
UART4,5,7,8
USART234578SEL1251007550120345
USB1OTG
USB2OTG
USBSEL666666631230
USB1ULPI-60606060x
ADC1,2, 3ADCSEL160 (5)160 (5)60 (5)40 (5)012
I2C4I2C4SEL12510075501023
LPTIM2LPTIM2SEL1251007550D3120345
LPTIM3,4,5LPTIM345SEL1251007550120345
LPUART1LPUART1SEL1251007550120345
SAI4_ASAI4ASEL150150757501243
SAI4_BSAI4BSEL150150757501243
SPI6SPI6SEL1251007550120534
RTC/AWU (6)RTCSEL--1-VSW3120

1. The bus clocks are the bus interface clocks to which the peripherals are connected, it can be APB, AHB or AXI clocks.

2. The per_ck clock could be hse_ck, hsi_ker_ck or csi_ker_ck according to CKPERSEL selection.

3. For byte lane clock frequency ( \( F_{blclk\_ck} \) ).

4. Clock CSI divided by 122.

5. With a duty cycle close to 50%, meaning that DIV[P/Q/R]x values shall be even. For SDMMCx, the duty cycle shall be 50% when supporting DDR.

6. The RTC is not functional in \( V_{BAT} \) mode when the clock source is lsi_ck or hse_ck.

Figure 56 to Figure 65 provide a more detailed description of kernel clock distribution. To simplify the drawings, the bus interface clocks (pclk, hclk) are not represented, even if they are gated with enable signals. Refer to Section 9.5.11: Peripheral clock gating control for more details.

To reduce the amount of switches, some peripherals share the same kernel clock source. Nevertheless, all peripherals have their dedicated enable signal.

Peripherals dedicated to audio applications

The audio peripherals generally need specific accurate frequencies, except for SPDIFRX. As shown in Figure 56 , the kernel clock of the SAIs or SPI(I2S)s can be generated by:

Note: The SPDIFRX does not require a specific frequency, but only a kernel clock frequency high enough to make the peripheral work properly. Refer to the SPDIFRX description for more details.

DFSDM1 can use the same clock as SAI1A. This is useful when DFSDM1 is used for audio applications.

To improve the flexibility, SAI4 can use different clock for each sub-block.

The SPI/I2S1, 2, and 3 share the same kernel clock source (see Figure 57 ).

Figure 56. Kernel clock distribution for SAI4 and DFSDM1

Figure 56: Kernel clock distribution for SAI4 and DFSDM1. This block diagram shows the internal clock distribution within the RCC (Reset and Clock Control) block for various peripherals. On the left, several multiplexers (MUXes) are shown, each with four inputs (0: pll1_q_ck, 1: pll2_p_ck, 2: pll3_p_ck, 3: I2S_CKIN, 4: per_ck). The MUXes are controlled by SAI4ASEL, SAI4BSEL, SAI23SEL, DFSDM1SEL, and SAI1SEL. The outputs of these MUXes are connected to 'Logic' blocks. Each Logic block also receives enable signals (e.g., SAI4MEN, SAI4LPEN, SAI[3:2]EN, SAI[3:2]LPEN, DFSDMEN, DFSDMLPEN, SAI1EN, SAI1LPEN). The outputs of the Logic blocks are connected to the peripherals: SAI4 (sai_a_ker_ck, sai_b_ker_ck), SAI2,3 (sai_a_ker_ck, sai_b_ker_ck), DFSDM (clk, Aclk), and SAI1 (sai_a_ker_ck, sai_b_ker_ck). The diagram also shows the PKSU and PKEU blocks. A legend at the bottom left indicates that a red 'D' in a switch symbol represents a dynamic switch that is glitch-free.

[D] The switch is dynamic: the transition between two inputs is glitch-free

MSV39369V3

Figure 56: Kernel clock distribution for SAI4 and DFSDM1. This block diagram shows the internal clock distribution within the RCC (Reset and Clock Control) block for various peripherals. On the left, several multiplexers (MUXes) are shown, each with four inputs (0: pll1_q_ck, 1: pll2_p_ck, 2: pll3_p_ck, 3: I2S_CKIN, 4: per_ck). The MUXes are controlled by SAI4ASEL, SAI4BSEL, SAI23SEL, DFSDM1SEL, and SAI1SEL. The outputs of these MUXes are connected to 'Logic' blocks. Each Logic block also receives enable signals (e.g., SAI4MEN, SAI4LPEN, SAI[3:2]EN, SAI[3:2]LPEN, DFSDMEN, DFSDMLPEN, SAI1EN, SAI1LPEN). The outputs of the Logic blocks are connected to the peripherals: SAI4 (sai_a_ker_ck, sai_b_ker_ck), SAI2,3 (sai_a_ker_ck, sai_b_ker_ck), DFSDM (clk, Aclk), and SAI1 (sai_a_ker_ck, sai_b_ker_ck). The diagram also shows the PKSU and PKEU blocks. A legend at the bottom left indicates that a red 'D' in a switch symbol represents a dynamic switch that is glitch-free.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripherals. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .

Peripherals dedicated to control and data transfer

Peripherals such as SPIs, I2Cs, UARTs do not need a specific kernel clock frequency but a clock fast enough to generate the correct baud rate, or the required bit clock on the serial interface. For that purpose the source can be selected among:

Note: UARTs also need the LSE clock when high baud rates are not required.

Figure 57. Kernel clock distribution for SPIs and SPI/I2S

Schematic diagram of kernel clock distribution for SPIs and SPI/I2S. It shows four multiplexers (MUX) selecting clock sources for SPDIF-RX, SPI/I2S[3:1], SPI[5:4], and SPI6. Each MUX is controlled by a specific register (SPDIFSEL, I2S123SEL, SPI45SEL, SPI6SEL) and its output is connected to a 'Logic' block. The 'Logic' block also receives enable signals (SPDIFRXEN, SPI[3:1]EN, SPI[5:4]EN, SPI6AMEN) and low-power enable signals (SPDIFRXPEN, SPI[3:1]LPEN, SPI[5:4]LPEN, SPI6LPEN). The output of the 'Logic' block is the kernel clock (e.g., spdifrx_ker_ck). The diagram is divided into three main sections: RCC (Reset and Clock Control), PKSU (Peripheral Clock Switching Unit), and PKEU (Peripheral Clock Enable Unit). A legend indicates that 'D' represents a dynamic switch that is glitch-free.

D The switch is dynamic: the transition between two inputs is glitch-free

MSV39370V2

Schematic diagram of kernel clock distribution for SPIs and SPI/I2S. It shows four multiplexers (MUX) selecting clock sources for SPDIF-RX, SPI/I2S[3:1], SPI[5:4], and SPI6. Each MUX is controlled by a specific register (SPDIFSEL, I2S123SEL, SPI45SEL, SPI6SEL) and its output is connected to a 'Logic' block. The 'Logic' block also receives enable signals (SPDIFRXEN, SPI[3:1]EN, SPI[5:4]EN, SPI6AMEN) and low-power enable signals (SPDIFRXPEN, SPI[3:1]LPEN, SPI[5:4]LPEN, SPI6LPEN). The output of the 'Logic' block is the kernel clock (e.g., spdifrx_ker_ck). The diagram is divided into three main sections: RCC (Reset and Clock Control), PKSU (Peripheral Clock Switching Unit), and PKEU (Peripheral Clock Enable Unit). A legend indicates that 'D' represents a dynamic switch that is glitch-free.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .

Figure 58. Kernel clock distribution for I2Cs

Figure 58: Kernel clock distribution for I2Cs. The diagram shows the RCC block containing two MUXes (PKSU) and two Logic blocks (PKEU). The top MUX (I2C4SEL) selects between rcc_pclk4, pll3_r_ck, hsi_ker_ck, and csi_ker_ck. Its output is connected to the I2C4 Logic block, which also receives I2C4AMEN, I2C4EN, and I2C4LPEN signals. The output of the Logic block is connected to the I2C4 peripheral, which has i2c_ker_ck_req and i2c_ker_ck pins. The bottom MUX (I2C123SEL) selects between rcc_pclk1, pll3_r_ck, hsi_ker_ck, and csi_ker_ck. Its output is connected to the I2C[3:1] Logic block, which also receives I2C[3:1]EN and I2C[3:1]LPEN signals. The output of the Logic block is connected to the I2C[3:1] peripheral, which has i2c_ker_ck_req and i2c_ker_ck pins. A note indicates that the switch is dynamic and glitch-free.

D The switch is dynamic: the transition between two inputs is glitch-free

MSV39371V2

Figure 58: Kernel clock distribution for I2Cs. The diagram shows the RCC block containing two MUXes (PKSU) and two Logic blocks (PKEU). The top MUX (I2C4SEL) selects between rcc_pclk4, pll3_r_ck, hsi_ker_ck, and csi_ker_ck. Its output is connected to the I2C4 Logic block, which also receives I2C4AMEN, I2C4EN, and I2C4LPEN signals. The output of the Logic block is connected to the I2C4 peripheral, which has i2c_ker_ck_req and i2c_ker_ck pins. The bottom MUX (I2C123SEL) selects between rcc_pclk1, pll3_r_ck, hsi_ker_ck, and csi_ker_ck. Its output is connected to the I2C[3:1] Logic block, which also receives I2C[3:1]EN and I2C[3:1]LPEN signals. The output of the Logic block is connected to the I2C[3:1] peripheral, which has i2c_ker_ck_req and i2c_ker_ck pins. A note indicates that the switch is dynamic and glitch-free.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral, for details on each enable cell, refer to Section 9.5.11: Peripheral clock gating control .

Figure 59. Kernel clock distribution for USARTs, USARTs and LPUART1

Figure 59: Kernel clock distribution for USARTs, USARTs and LPUART1. The diagram shows the RCC block containing three MUXes (PKSU) and five Logic blocks (PKEU). The top MUX (USART16SEL) selects between rcc_pclk2, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, and lse_ck. Its output is connected to the USART1 and USART6 Logic blocks. The USART1 Logic block receives USART1EN, USART1LPEN and outputs to the USART1 peripheral (usart_ker_ck_req, usart_ker_ck). The USART6 Logic block receives USART6EN, USART6LPEN and outputs to the USART6 peripheral (usart_ker_ck_req, usart_ker_ck). The second MUX (USART234578SEL) selects between rcc_pclk1, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, and lse_ck. Its output is connected to the USART[3:2], UART[5:4], and UART[8:7] Logic blocks. The USART[3:2] Logic block receives USART[3:2]EN, USART[3:2]LPEN and outputs to the USART[3:2] peripheral (usart_ker_ck_req, usart_ker_ck). The UART[5:4] Logic block receives UART[5:4]EN, UART[5:4]LPEN and outputs to the UART[5:4] peripheral (uart_ker_ck_req, uart_ker_ck). The UART[8:7] Logic block receives UART[8:7]EN, UART[8:7]LPEN and outputs to the UART[8:7] peripheral (uart_ker_ck_req, uart_ker_ck). The bottom MUX (LPUART1SEL) selects between rcc_pclk4, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, and lse_ck. Its output is connected to the LPUART1 Logic block, which also receives LPUART1AMEN, LPUART1EN, and LPUART1LPEN signals. The output of the Logic block is connected to the LPUART1 peripheral, which has lpuart_ker_ck_req and lpusart_ker_ck pins. A note indicates that the switch is dynamic and glitch-free.

D The switch is dynamic: the transition between two inputs is glitch-free

MSV39372V2

Figure 59: Kernel clock distribution for USARTs, USARTs and LPUART1. The diagram shows the RCC block containing three MUXes (PKSU) and five Logic blocks (PKEU). The top MUX (USART16SEL) selects between rcc_pclk2, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, and lse_ck. Its output is connected to the USART1 and USART6 Logic blocks. The USART1 Logic block receives USART1EN, USART1LPEN and outputs to the USART1 peripheral (usart_ker_ck_req, usart_ker_ck). The USART6 Logic block receives USART6EN, USART6LPEN and outputs to the USART6 peripheral (usart_ker_ck_req, usart_ker_ck). The second MUX (USART234578SEL) selects between rcc_pclk1, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, and lse_ck. Its output is connected to the USART[3:2], UART[5:4], and UART[8:7] Logic blocks. The USART[3:2] Logic block receives USART[3:2]EN, USART[3:2]LPEN and outputs to the USART[3:2] peripheral (usart_ker_ck_req, usart_ker_ck). The UART[5:4] Logic block receives UART[5:4]EN, UART[5:4]LPEN and outputs to the UART[5:4] peripheral (uart_ker_ck_req, uart_ker_ck). The UART[8:7] Logic block receives UART[8:7]EN, UART[8:7]LPEN and outputs to the UART[8:7] peripheral (uart_ker_ck_req, uart_ker_ck). The bottom MUX (LPUART1SEL) selects between rcc_pclk4, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, and lse_ck. Its output is connected to the LPUART1 Logic block, which also receives LPUART1AMEN, LPUART1EN, and LPUART1LPEN signals. The output of the Logic block is connected to the LPUART1 peripheral, which has lpuart_ker_ck_req and lpusart_ker_ck pins. A note indicates that the switch is dynamic and glitch-free.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral, for details on each enable cell, refer to Section 9.5.11: Peripheral clock gating control .

Section 9.5.11: Peripheral clock gating control.

The DSI block has its own PLL which operates directly from the hse_ck.

Figure 60. Kernel clock distribution for DSI and LTDC

Figure 60: Kernel clock distribution for DSI and LTDC. The diagram shows the RCC block containing PKSU and PKEU units. The PKSU unit has a 2-to-1 MUX (D) selecting between pll2_q_ck and DSISRC for the dsiphy_ck output. The PKEU unit contains logic gates for LTDCEN/LTDCLPEN and DSIEN/DSILPEN. The LTDC output receives ltdc_ker_ck. The DSI output receives blclk_ck (up to 62 MHz) and rxclkesc_ck (up to 20 MHz) from a DSI PLL. The DSI PLL is fed by hse_ck. A legend indicates that 'D' represents a dynamic switch with glitch-free transition.
Figure 60: Kernel clock distribution for DSI and LTDC. The diagram shows the RCC block containing PKSU and PKEU units. The PKSU unit has a 2-to-1 MUX (D) selecting between pll2_q_ck and DSISRC for the dsiphy_ck output. The PKEU unit contains logic gates for LTDCEN/LTDCLPEN and DSIEN/DSILPEN. The LTDC output receives ltdc_ker_ck. The DSI output receives blclk_ck (up to 62 MHz) and rxclkesc_ck (up to 20 MHz) from a DSI PLL. The DSI PLL is fed by hse_ck. A legend indicates that 'D' represents a dynamic switch with glitch-free transition.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .

The FMC, QUADSPI and SDMMC1/2 can also use a clock different from the bus interface clock for more flexibility.

Figure 61. Kernel clock distribution for SDMMC, QUADSPI and FMC

Figure 61: Kernel clock distribution for SDMMC, QUADSPI and FMC. The diagram shows the RCC block with three 4-to-1 MUXes (D) for SDMMC, QUADSPI, and FMC. The SDMMC MUX selects between SDMMC SRC, pll1_q_ck, pll2_r_ck, and per_ck. The QUADSPI MUX selects between QSPI SRC, rcc_hclk3, pll1_q_ck, and per_ck. The FMC MUX selects between FMCSRC, rcc_hclk3, pll1_q_ck, and per_ck. Each MUX output goes through a logic gate (enabled by SDMMCEN/SDMMC LPEN, QSPIEN/QSPILPEN, or FMCPEN/FMCLPEN) to produce the kernel clock (sdmmc_ker_ck, quadspi_ker_ck, or fmc_ker_ck) for the respective peripheral. A legend indicates that 'D' represents a dynamic switch with glitch-free transition.
Figure 61: Kernel clock distribution for SDMMC, QUADSPI and FMC. The diagram shows the RCC block with three 4-to-1 MUXes (D) for SDMMC, QUADSPI, and FMC. The SDMMC MUX selects between SDMMC SRC, pll1_q_ck, pll2_r_ck, and per_ck. The QUADSPI MUX selects between QSPI SRC, rcc_hclk3, pll1_q_ck, and per_ck. The FMC MUX selects between FMCSRC, rcc_hclk3, pll1_q_ck, and per_ck. Each MUX output goes through a logic gate (enabled by SDMMCEN/SDMMC LPEN, QSPIEN/QSPILPEN, or FMCPEN/FMCLPEN) to produce the kernel clock (sdmmc_ker_ck, quadspi_ker_ck, or fmc_ker_ck) for the respective peripheral. A legend indicates that 'D' represents a dynamic switch with glitch-free transition.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .

refer to Section 9.5.11: Peripheral clock gating control .

Figure 62 shows the clock distribution for the USB blocks. The USB1ULPI blocks receive its clock from the external PHY.

The USBxOTG blocks receive the clock for USB communications which can be selected among different sources thanks to the MUX controlled by USBSEL.

Figure 62. Kernel clock distribution For USB (2)

Figure 62. Kernel clock distribution For USB (2). The diagram shows the clock distribution for USB blocks. On the left, the RCC (Reset and Clock Control) block contains a MUX (PKSU) with four inputs: 0 (USBSEL), 1 (pll1_q_ck), 2 (pll3_q_ck), and 3 (hsi48_ck). The MUX output is connected to a 'Logic' block. This 'Logic' block has two enable inputs: USB1OTGEN<sup>(1)</sup> and USB1OTGLPEN<sup>(1)</sup>. The output of this 'Logic' block is connected to the USB1OTG (OTG_HS1) block. Below the first 'Logic' block, there is another 'Logic' block with enable inputs: USB2OTGEN<sup>(1)</sup> and USB2OTGLPEN<sup>(1)</sup>. Its output is connected to the USB2OTG (OTG_HS2) block. Below that, a third 'Logic' block is shown within a PKEU (Power Key Enable Unit) block. This 'Logic' block has enable inputs: USB1ULPIEN<sup>(1)</sup> and USB1ULPILPEN<sup>(1)</sup>. Its output is connected to the USB1ULPI (OTG_HS1) block, which is labeled 'ck_ulpi'. An external input USB_PHY1 (OTG_HS_ULPI_CK) is also connected to the USB1ULPI block. A legend at the bottom left indicates that the switch symbol (D) represents a dynamic switch where the transition between two inputs is glitch-free. The diagram is labeled MSv39375V4 in the bottom right corner.
Figure 62. Kernel clock distribution For USB (2). The diagram shows the clock distribution for USB blocks. On the left, the RCC (Reset and Clock Control) block contains a MUX (PKSU) with four inputs: 0 (USBSEL), 1 (pll1_q_ck), 2 (pll3_q_ck), and 3 (hsi48_ck). The MUX output is connected to a 'Logic' block. This 'Logic' block has two enable inputs: USB1OTGEN (1) and USB1OTGLPEN (1) . The output of this 'Logic' block is connected to the USB1OTG (OTG_HS1) block. Below the first 'Logic' block, there is another 'Logic' block with enable inputs: USB2OTGEN (1) and USB2OTGLPEN (1) . Its output is connected to the USB2OTG (OTG_HS2) block. Below that, a third 'Logic' block is shown within a PKEU (Power Key Enable Unit) block. This 'Logic' block has enable inputs: USB1ULPIEN (1) and USB1ULPILPEN (1) . Its output is connected to the USB1ULPI (OTG_HS1) block, which is labeled 'ck_ulpi'. An external input USB_PHY1 (OTG_HS_ULPI_CK) is also connected to the USB1ULPI block. A legend at the bottom left indicates that the switch symbol (D) represents a dynamic switch where the transition between two inputs is glitch-free. The diagram is labeled MSv39375V4 in the bottom right corner.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .

The Ethernet transmit and receive clocks shall be provided from an external Ethernet PHY. The clock selection for the RX and TX path is controlled via the SYSCFG block.

Figure 63. Kernel clock distribution for Ethernet

Figure 63: Kernel clock distribution for Ethernet. This block diagram shows the clock paths from external pins and internal sources to the ETH1 peripheral. It includes the RCC block containing PKSU and PKEU sub-blocks. Inputs include ETH_MII_TX_CLK, ETH_MII_RX_CLK/ETH_RMII_REF_CLK, and rcc_hclk1. The diagram shows multiplexers with dynamic switching (D), a divider (/2, 20), and gating logic controlled by signals like ETH1TXEN, ETH1RXEN, and ETH1MACEN. Outputs to ETH1 include eth_mii_tx_clk, eth_mii_rx_clk, eth_rmii_ref_clk, and hclk_i. A legend explains that 'D' represents a dynamic glitch-free switch.
Figure 63: Kernel clock distribution for Ethernet. This block diagram shows the clock paths from external pins and internal sources to the ETH1 peripheral. It includes the RCC block containing PKSU and PKEU sub-blocks. Inputs include ETH_MII_TX_CLK, ETH_MII_RX_CLK/ETH_RMII_REF_CLK, and rcc_hclk1. The diagram shows multiplexers with dynamic switching (D), a divider (/2, 20), and gating logic controlled by signals like ETH1TXEN, ETH1RXEN, and ETH1MACEN. Outputs to ETH1 include eth_mii_tx_clk, eth_mii_rx_clk, eth_rmii_ref_clk, and hclk_i. A legend explains that 'D' represents a dynamic glitch-free switch.

MSV39376V3

  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .
Figure 64. Kernel clock distribution For ADCs, SWPMI, RNG and FDCAN (2) Figure 64: Kernel clock distribution for ADCs, SWPMI, RNG and FDCAN. The diagram shows the RCC (Reset and Clock Control) block on the left, which contains four multiplexers (MUX) for selecting clock sources. The MUXes are labeled ADCSEL, SWPSEL, RNGSEL, and FDCANSEL. Each MUX has multiple inputs and one output. The outputs of the MUXes are connected to logic blocks (AND gates) that also receive enable signals (ADC3AMEN, ADC3EN, ADC3LPEN, ADC12EN, ADC12LPEN, SWPEN, SWPLPEN, RNGEN, RNGLPEN, FDCANEN, FDCANLPEN). The outputs of the logic blocks are connected to the peripheral blocks: ADC3, ADC12, SWPMI, RNG, and FDCAN. The legend indicates that the switch is dynamic and the transition between two inputs is glitch-free.

The diagram illustrates the kernel clock distribution for various peripherals within the RCC (Reset and Clock Control) block. The RCC contains four multiplexers (MUX) for selecting clock sources, each with a dynamic switch (indicated by a red 'D' box).

The legend indicates:
D The switch is dynamic: the transition between two inputs is glitch-free.

MSV39387V4

Figure 64: Kernel clock distribution for ADCs, SWPMI, RNG and FDCAN. The diagram shows the RCC (Reset and Clock Control) block on the left, which contains four multiplexers (MUX) for selecting clock sources. The MUXes are labeled ADCSEL, SWPSEL, RNGSEL, and FDCANSEL. Each MUX has multiple inputs and one output. The outputs of the MUXes are connected to logic blocks (AND gates) that also receive enable signals (ADC3AMEN, ADC3EN, ADC3LPEN, ADC12EN, ADC12LPEN, SWPEN, SWPLPEN, RNGEN, RNGLPEN, FDCANEN, FDCANLPEN). The outputs of the logic blocks are connected to the peripheral blocks: ADC3, ADC12, SWPMI, RNG, and FDCAN. The legend indicates that the switch is dynamic and the transition between two inputs is glitch-free.
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset.
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .

Figure 65. Kernel clock distribution for LPTIMs and HDMI-CEC (2)

Schematic diagram showing kernel clock distribution for LPTIMs and HDMI-CEC. It includes RCC blocks, multiplexers (MUX), logic gates, and peripheral blocks like HDMI-CEC, LPTIM1, LPTIM2, and LPTIM[5:3].

The diagram illustrates the kernel clock distribution for LPTIMs and HDMI-CEC. It shows several clock sources and their selection paths:

The diagram is divided into two main regions: RCC (left) and PKEU (right). The PKSU region is also indicated. A legend at the bottom left states: D The switch is dynamic: the transition between two inputs is glitch-free. The diagram code MSV39388V2 is shown at the bottom right.

Schematic diagram showing kernel clock distribution for LPTIMs and HDMI-CEC. It includes RCC blocks, multiplexers (MUX), logic gates, and peripheral blocks like HDMI-CEC, LPTIM1, LPTIM2, and LPTIM[5:3].
  1. 1. There is one enable bit and one low-power enable bit from each CPU. X represents the selected MUX input after a system reset
  2. 2. This figure does not show the connection of the bus interface clock to the peripheral. For details on each enable cell, please refer to Section 9.5.11: Peripheral clock gating control .

RTC/AWU clock

The rtc_ck clock source can be:

The source clock is selected by programming the RTCSEL[1:0] bits in the RCC Backup domain control register (RCC_BDCR) and the RTCPRE[5:0] bits in the RCC clock configuration register (RCC_CFGR) .

This selection cannot be modified without resetting the Backup domain.

If the LSE is selected as RTC clock, the RTC will work normally even if the backup or the \( V_{DD} \) supply disappears.

The LSE clock is in the Backup domain, whereas the other oscillators are not. As a consequence:

The rtc_ck clock is enabled through RTCEN bit located in the RCC Backup domain control register (RCC_BDCR) .

The RTC bus interface clock (APB clock) is enabled through RTCAPBEN and RTCAPBLPEN bits located in RCC_APB4ENR/LPENR registers.

Note: To read the RTC calendar register when the APB clock frequency is less than seven times the RTC clock frequency ( \( F_{APB} < 7 \times F_{RTCLK} \) ), the software must read the calendar time and date registers twice. The data are correct if the second read access to RTC_TR gives the same result than the first one. Otherwise a third read access must be performed.

Watchdog clocks

The RCC provides the clock for the four watchdog blocks available on the circuit. The two independent watchdogs (IWDG1 and IWDG2) are connected to the LSI. The two window watchdogs (WWDG1 and WWDG2) are connected to the APB clock.

If an independent watchdog is started by either hardware option or software access, the LSI is forced ON and cannot be disabled. After the LSI oscillator setup delay, the clock is provided to the IWDGs.

Caution: Before enabling WWDG1/WWDG2, the application must set the WW1RSC/WW2RSC bit to '1'. If the WW1RSC/WW2RSC remains at '0' when the WWDG1/2 is enabled, the WWDG1/2 behavior is not guaranteed. The WW1RSC and WW2RSC bits are located in RCC global control register (RCC_GCR) .

Clock frequency measurement using TIMx

Most of the clock source generator frequencies can be measured by means of the input capture of TIMx.

The primary purpose of having the LSE connected to a TIMx input capture is to be able to accurately measure the HSI or CSI. This requires to use the HSI or CSI as system clock source either directly or via PLL1. The number of system clock counts between consecutive edges of the LSE signal gives a measurement of the internal clock period. Taking advantage of the high precision of LSE crystals (typically a few tens of ppm) we can determine the internal clock frequency with the same resolution, and trim the

source to compensate for manufacturing-process and/or temperature- and voltage-related frequency deviations.

The basic concept consists in providing a relative measurement (e.g. HSI/LSE ratio): the precision is therefore tightly linked to the ratio between the two clock sources. The greater the ratio is, the more accurate the measurement is.

The HSI and CSI oscillators have dedicated user-accessible calibration bits for this purpose (see RCC HSI configuration register (RCC_HSI CFGR) and RCC CSI configuration register (RCC_CSI CFGR) ).

When the HSI or CSI are used via the PLLx, the system clock can also be fine-tuned by using the fractional divider of the PLLs.

The LSI frequency can also be measured: this is useful for applications that do not have a crystal. The ultralow power LSI oscillator has a large manufacturing process deviation. By measuring it versus the HSI clock source, it is possible to determine its frequency with the precision of the HSI. The measured value can be used to have more accurate RTC time base timeouts (when LSI is used as the RTC clock source) and/or an IWDG timeout with an acceptable accuracy.

9.5.9 General clock concept overview

The RCC handles the distribution of the CPUs, bus interface and peripheral clocks for the system (D1, D2 and D3 domains), according to the operating mode of each function (refer to Section 9.5.1: Clock naming convention for details on clock definitions).

For each peripheral, the application can control the activation/deactivation of its kernel and bus interface clock. Prior to use a peripheral, the CPU has to enable it (by setting PERxEN to '1'), and define if this peripheral remains active in CSleep mode (by setting PERxLPEN to '1'). This is called 'allocation' of a peripheral to a CPU (refer to Section 9.5.10: Peripheral allocation for more details).

The peripheral allocation is used by the RCC to automatically control the clock gating according to the CPU and domain modes, and by the PWR to control the supply voltages of D1, D2 and D3 domains. For example if CPU1 enables a peripheral and decides that the kernel clock of this peripheral shall be gated when it goes to CSleep, then CPU2 state has no effect on the clock gating of this peripheral, but the clock gating will obey to CPU1 state. This is true if CPU2 did not allocate this peripheral as well.

Each CPU has dedicated registers where it can allocate individually the peripherals it intends to use in the application.

Figure 66 gives an example of peripheral allocation:

Note: SRAM4, IWDG1, IWDG2 and RCC are common resources and are implicitly allocated to both CPU1 and CPU2.

Some memories are implicitly allocated to a given CPU (see Figure 66 ). Refer to Section : Memory handling for more details.

Figure 66. Peripheral allocation example

Diagram showing peripheral allocation across three power domains (D1, D2, D3) for two CPUs (CPU1, CPU2).

The diagram illustrates the peripheral allocation for two CPUs, CPU1 and CPU2, across three power domains: D1, D2, and D3. The allocation is based on the CPU's System Support (SS) blocks and the Bus Matrix they connect to.

Legend:

MSV39389V2

Diagram showing peripheral allocation across three power domains (D1, D2, D3) for two CPUs (CPU1, CPU2).
  1. 1. CPU1_SS and CPU2_SS can be spread over the three power domains.

When CPU1 enters CStop mode, the RCC automatically disables the bus interface and kernel clocks of all the peripherals of the CPU1_SS as well as the CPU clock. If CPU2 is always in CRun mode, then the bus matrix 1 is still clocked as well as the CPU2_SS allocated peripherals (ART, FLASH) which are physically connected to this bus matrix. The PLLs, if enabled, are not disabled by the RCC since CPU2 and D3 are still running.

Then, if CPU2 enters CStop mode, the bus matrix 1 is no longer clocked, and the D1 domain can enter DStop as well. In this scenario, D2 domain will also enter DStop mode. D1 and D2 domains will enter DStandby mode if they are allowed to.

A wakeup event will be able to exit D1 and D2 domain from DStandby or DStop mode.

Two additional functions are available to reduce power consumption:

D3 domain Autonomous mode

The Autonomous mode allows to deliver the peripheral clocks to peripherals located in D3, even if the CPU to which they are allocated is in CStop mode. When a peripheral has its autonomous bit enabled, it receives its peripheral clocks according to D3 domain state, if the CPU to which it is allocated is in CStop mode:

The Autonomous mode does not prevent the D3 domain to enter DStop or DStandby mode.

The autonomous bits are located in RCC D3 Autonomous mode register (RCC_D3AMR) .

For example, CPU1 and CPU2 can enter CStop mode, while the SAI4 is filling the SRAM4 with data received from an external device via DMA1. When the amount of received data is reached, the CPU2 can be activated by a wakeup event. This can be done by setting the SAI4, the DMA1, and SRAM4 in Autonomous mode, while keeping D3 in DRun mode (RUN_D3 set to '1'). In this example, the RCC does not switch off the PLLs as the D3 domain is always in DRun mode.

It is possible to go a step further with power consumption reduction by combining the Autonomous mode with the capability of some peripherals (UARTs, I2Cs) to request the kernel clock on their own, without waking-up the CPUs. For example, if the system is expecting messages via I2C4, the whole system can be put in Stop mode. When the I2C4 peripheral detects a START bit, it will generate a “kernel clock request”. This request enables the HSI or CSI, and a kernel clock is provided only to the requester (in our example the I2C4). The I2C4 then decodes the incoming message. Several cases are then possible:

Please refer to the description of EXTI block in order see which peripheral is able to perform a wake-up event to which domain.

Memory handling

Both CPUs can access all the memory areas available in the product:

As shown in Figure 66 , FLASH, AXISRAM, ITCM, DTCM1 and DTCM2 are implicitly allocated to CPU1. As a result, there is no enable bit allowing CPU1 to allocate these memories.

In the same way, SRAM1, SRAM2 and SRAM3 are implicitly allocated to CPU2, and CPU2 does not need enable bits to allocate them.

The SRAM4 does not need enable bit at all since D3 domain cannot be in DStop or DStandby mode when one of the CPU is running.

The BKPRAM has a dedicated enable bit for each CPU in order to gate the bus interface clock. The CPUs needs to enable the BKPRAM prior to use it.

When CPU1 wants to access a memory area located into D2 domain, the memory must be enabled via RCC AHB2 clock register (RCC_AHB2ENR) . Enabling the memory insures that this memory will still be operating even if CPU2 enters CStop mode.

The same mechanism exists when CPU2 wants to use a memory located into D1 domain.

Note: When a domain is in DRun mode, the memories located into this domain operate for both CPUs, even if memory enable bits are not set (except for the BKPRAM). The memory enable bits prevent the domain where the memory is located to enter DStop mode. The memory interface clocks (Flash and RAM interfaces) can be stopped by software during CSleep mode (via DxSRAMyLPEN bits).

Refer to Peripheral clock gating control and CPU and bus matrix clock gating control sections for details on clock enabling.

System states overview

Table 63 gives an overview of the system states with respect to CPU1, CPU2 and D3 states.

Table 63. System states overview

System StateD1 StateD2 StateD3 State
RunDRun/DStop/DStandbyDRun/DStop/DStandbyDRun
StopDStop/DStandbyDStop/ DStandbyDStop
StandbyDStandbyDStandbyDStandby

9.5.10 Peripheral allocation

Each CPU can allocate a peripheral and hence control its kernel and bus interface clock. Each CPU has dedicated registers in order to perform this peripheral allocation. A peripheral is allocated when its PERxEN bit is set to '1' by the CPU1 and/or CPU2.

CPU1 can allocate a peripheral for itself by setting the dedicated PERxEN bit in:

CPU1 can also allocate a peripheral for CPU2 by setting the dedicated PERxEN bit in registers RCC_C2_DnxxxxENR.

In the same way, CPU2 can allocate a peripheral for itself by setting the dedicated PERxEN bit in:

CPU2 can also allocate a peripheral for CPU1 by setting the dedicated PERxEN bit in registers RCC_C1_DnxxxxENR.

A similar mechanism is implemented to control the peripheral clocks when the CPUs are in CSleep mode (PERxLPEN bits).

Refer to Section 9.7.1: Register mapping overview for additional information.

Note: When CPU1 or CPU2 access RCC_DnxxxxxENR registers, the hardware detects which CPU did the access (core_id) in order to allocate the peripheral to the right CPU.

The peripheral allocation bits (PERxEN bits) are used by the hardware to provide the kernel and bus interface clocks to the peripherals. However they are also used to link peripherals to a CPU (CPU sub-system). In this way, the hardware is able to safely gate the peripheral clocks and bus matrix clocks according to CPU states. The PWR block also uses this information to control properly the domain states.

Clock switches and gating

The input selected by the kernel clock switches can be changed dynamically without generating spurs or timing violation. As a consequence, switching from the original to the new input can only be performed if a clock is present on both inputs. If it not the case, no clock will be provided to the peripheral. To recover from this situation, the user has to provide a valid clock to both inputs.

During the transition from one input to another, the kernel clock provided to the peripheral will be gated, in the worst case, during 2 clock cycles of the previously selected clock and 2 clock cycles of the new selected clock. As shown in Figure 67 , both input clocks shall be present during transition time.

Figure 67. Kernel Clock switching

Figure 67. Kernel Clock switching. The diagram shows four waveforms: PERxSRC (a control signal), in0_ck (input clock 0), in1_ck (input clock 1), and rcc_perx_ker_ck (kernel clock provided to PERx). The rcc_perx_ker_ck waveform is shown switching from in0_ck to in1_ck. A 'Transition time' is indicated between the two clocks. A shaded area on the right of the rcc_perx_ker_ck waveform contains the text 'In this area ck_in0 clock can be disabled'. To the right of the waveforms is a logic diagram showing a multiplexer (MUX) with inputs in0_ck (0) and in1_ck (1). The MUX output is rcc_perx_ker_ck. The MUX is controlled by PERxSRC. A red square on the MUX output indicates a glitch or transition point.
Figure 67. Kernel Clock switching. The diagram shows four waveforms: PERxSRC (a control signal), in0_ck (input clock 0), in1_ck (input clock 1), and rcc_perx_ker_ck (kernel clock provided to PERx). The rcc_perx_ker_ck waveform is shown switching from in0_ck to in1_ck. A 'Transition time' is indicated between the two clocks. A shaded area on the right of the rcc_perx_ker_ck waveform contains the text 'In this area ck_in0 clock can be disabled'. To the right of the waveforms is a logic diagram showing a multiplexer (MUX) with inputs in0_ck (0) and in1_ck (1). The MUX output is rcc_perx_ker_ck. The MUX is controlled by PERxSRC. A red square on the MUX output indicates a glitch or transition point.

In the same way, the clock gating logic synchronizes the enable command (coming generally from a kernel clock request or PERxEN bits) with the selected clock, in order to avoid generation of spurs.

Note: Both the kernel clock and the bus interface clock are affected by this re-synchronization delay.

In addition, the clock enabling delay may strongly increase if the application is enabling for the first time a peripheral which is not located in the same domain. This is due to the fact that the domain where the peripheral is located could be in DStop or DStandby mode. The domain must be switched to DRun mode before the application can use this peripheral.

As an example, if CPU1 enables a peripheral located in the D2 domain while the D2 domain is in DStop/DStandby mode, then the power controller (PWR) has first to provide a supply voltage to D2, then the RCC has to wait for an acknowledge from the

PWR before enabling the clocks of the D2 domain. To handle properly this situation the RCC and the PWR blocks feature four flags:

The following sequence can be followed to avoid this issue:

  1. Enable the peripheral clocks (i.e. allocate the peripheral) by writing the corresponding PERxEN bit to '1' in the RCC_xxxxENR register,
  2. Read back the RCC_xxxxENR register to make sure that the previous write operation is not pending into a write buffer.
  3. If the peripheral is located in a different domain, perform the two next steps:
    Read DxCKRDY until it is set to '1'.
    Write SBF_Dx to zero and read-back the value, in order to check if the domain where the peripheral is located is still in DStandby. If the corresponding bit is read at '1', it means that the domain is still in DStandby. Repeat this operation until SBF_Dx is equal to '0', then continue the other steps.
  4. Perform a dummy read operation into a register of the enabled peripheral. This operation will take at least 2 clock cycles, which is equal to the max delay of the enable command.
  5. The peripheral can then be used.

Note: When the bus interface clock is not active, read or write accesses to the peripheral registers are not supported. A read access will return invalid data. A write access will be ignored and will not create any bus errors.

9.5.11 Peripheral clock gating control

As mentioned previously, each peripheral requires a bus interface clock, named rcc_perx_bus_ck (for peripheral 'x'). This clock can be an APB, AHB or AXI clock, according to which bus the peripheral is connected.

The clocks used as bus interface for peripherals located in D1 domain, could be rcc_aclk , rcc_hclk3 or rcc_pclk3 , depending on the bus connected to each peripheral. For simplicity sake, these clocks are named rcc_bus_d1_ck .

In the same way, the signal named rcc_bus_d2_ck represents rcc_hclk1 , rcc_hclk2 , rcc_pclk1 or rcc_pclk2 , depending on the bus connected to each peripheral of D2 domain.

Similarly, the signal rcc_bus_d3_ck represents rcc_hclk4 or rcc_pclk4 for peripherals located in D3.

Some peripherals (SAI, UART...) also require a dedicated clock for their communication interface. This clock is generally asynchronous with respect to the bus interface clock. It is named kernel clock ( perx_ker_ckreq ). Both clocks can be gated according to several conditions detailed hereafter.

As shown in Figure 68 , enabling the kernel and bus interface clocks of each peripheral depends on several input signals:

Refer to Section 9.5.10: Peripheral allocation for more details.

Figure 68. Peripheral kernel clock enable logic details

Schematic diagram of peripheral kernel clock enable logic details showing SCGU, SCEU, PKSU, PKEU, and PERx blocks with their respective inputs and outputs.

The diagram illustrates the internal logic for peripheral kernel clock enabling within the RCC (Reset and Clock Control) block. It is divided into two main functional paths: System Clock Enabling (SCEU) and Peripheral Kernel Clock Enabling (PKEU).

A note at the bottom right indicates: "When the peripheral offers the feature" for the perx_ker_ckreq signal. The diagram is identified by the code MSv39391V1.

Schematic diagram of peripheral kernel clock enable logic details showing SCGU, SCEU, PKSU, PKEU, and PERx blocks with their respective inputs and outputs.

Table 64 gives a detailed description of the enabling logic of the peripheral clocks for peripherals located in D1 or D2 domain and allocated by CPU1. A similar logic applies to CPU2.

Table 64. Peripheral clock enabling for D1 and D2 peripherals

C1_PERxENC1_PERxLPENPERxSRCperx_ker_ckreqCPU1 Statercc_perx_ker_c1_enrcc_perx_bus_d1_enComments
0XXXX00No clock provided to the peripheral, because PERxEN='0'
1XXXCRun11Kernel and bus interface clocks are provided to the peripheral, because the CPU1 is in CRun, and PERxEN='1'
10XXCSleep00No clock provided to the peripheral, because the CPU1 is in CSleep, and PERxLPEN='0'
11XX11Kernel and bus interface clocks are provided to the peripheral, because CPU1 is in CSleep, and PERxLPEN='1'
10XXCStop00No clock provided to the peripheral because the PERxLPEN bit is set to '0'.
11no lsi_ck and no lse_ck and no hsi_ker_ck and no csi_ker_ckX00No clock provided to the peripheral because CPU1 is in CStop and lse_ck or lsi_ck or hsi_ker_ck or csi_ker_ck are not selected.
11lsi_ck or lse_ckX1
(1)
0Kernel clock is provided to the peripheral because PERxEN = PERxLPEN='1' and lsi_ck or lse_ck are selected.
The bus interface clock is no provided as the CPU is in CStop
11hsi_ker_ck or csi_ker_ck110Kernel clock is provided to the peripheral because req_ker_perx = '1', and PERxEN = PERxLPEN='1' and hsi_ker_ck or csi_ker_ck are selected.
The bus interface clock is no provided as the CPU is in CStop
11hsi_ker_ck or csi_ker_ck000No clock provided to the peripheral because CPU1 is in CStop, and no kernel clock request pending
  1. 1. For RNG block, the kernel clock is not delivered if the CPU to which it is allocated is in CStop mode, even if the clock selected is lsi_ck or lse_ck.

As a summary, we can state that the kernel clock is provided to the peripherals located on domains D1 and D2 when the following conditions are met:

  1. 1. The CPU to which the peripheral is allocated is in CRun mode.
  2. 2. The CPU to which the peripheral is allocated is in CSleep mode and PERxLPEN = '1'.
  3. 3. The CPU to which the peripheral is allocated is in CStop mode, with PERxLPEN = '1', the peripheral generates a kernel clock request, and the selected clock is hsi_ker_ck or csi_ker_ck .
  4. 4. The CPU to which the peripheral is allocated is in CStop mode, with PERxLPEN = '1', and the kernel source clock of the peripheral is lse_ck or lsi_ck .

The bus interface clock will be provided to the peripherals only when conditions 1 or 2 are met.

Table 65 gives a detailed description of the enabling logic of the kernel clock for all peripherals located in D3 and allocated by CPU1. A similar logic applies to CPU2.

Table 65. Peripheral clock enabling for D3 peripherals (1)

C1_PERxENC1_PERxLPENPERxAMENPERxSRCperx_ker_ckreqCPU1 StateD3 State=
>
rcc_perx_ker_d3_enrcc_perx_bus_d3_enComments
0XXXXAnyAny=
>
00No clock provided to the peripheral, as C1_PERxEN='0'
1XXXXCRunDRun=
>
11Kernel and bus interface clocks are provided to the peripheral, because the CPU1 is in CRun, and C1_PERxEN='1'
10XXXCSleep=
>
00No clock provided to the peripheral, because the CPU1 is in CSleep, and C1_PERxLPEN='0'
11XXXDRun=
>
11Kernel and bus interface clocks are provided to the peripheral, because the CPU1 is in CSleep, and C1_PERxLPEN='1'
1X0XXCStop=
>
00As the CPU1 is in CStop, and C1_PERxEN='1', then the kernel clock gating depends on D3 state and PERxAMEN bits. No clock provided to the peripheral because PERxAMEN = '0'.
1X1XXDStop=
>
11The kernel and bus interface clocks are provided because even if the CPU to which the peripheral is allocated is in CStop mode, D3 is in DRun mode, with C1_PERxEN and PERxAMEN bits set to '1'.
1X1not lse_ck and not lsi_ck0=
>
00No clock provided to the peripheral, because D3 is in DStop, req_ker_perx = '0', and lse_ck or lsi_ck are not selected.
Table 65. Peripheral clock enabling for D3 peripherals (1) (continued)
C1_PERxENC1_PERxLPENPERxAMENPERxSRCperx_ker_ckreqCPU1 StateD3 Statercc_perx_ker_d3_enrcc_perx_bus_d3_enComments
1X1not hsi_ker_ck and not csi_ker_ck and not lse_ck and not lsi_ck100
1X1hsi_ker_ck or csi_ker_ck110
1X1lse_ck or lsi_ckX10

1. The above table is given for the peripherals allocated by CPU1. A similar truth table is applicable in the case of peripherals allocated by CPU2.

As a summary, we can state that the kernel clock is provided to the peripherals of D3 if the following conditions are met:

  1. 1. The CPU to which the peripheral is allocated is in CRun mode.
  2. 2. The CPU to which the peripheral is allocated is in CSleep mode and PERxLPEN = '1'.
  3. 3. The CPU to which the peripheral is allocated is in CStop mode and D3 domain is in DRun mode with PERxAMEN = '1'.
  4. 4. The CPU to which the peripheral is allocated is in CStop mode, D3 domain is in DStop mode with PERxAMEN = '1', the peripheral is generating a kernel clock request and the kernel clock source is hsi_ker_ck or csi_ker_ck .
  5. 5. The CPU to which the peripheral is allocated is in CStop mode, D3 domain is in DStop mode with PERxAMEN = '1', and the kernel clock source of the peripheral is lse_ck or lsi_ck .

The bus interface clock will be provided to the peripherals only when condition 1, 2 or 3 is met.

Note: When they are set to '1', the autonomous bits indicate that the associated peripheral will receive a kernel clock according to D3 state, and not according to the mode of the CPU to which it is allocated.

Only I2C, U(S)ART and LPUART peripherals are able to request the kernel clock. This feature gives to the peripheral the capability to transfer data with an optimal power consumption.

The autonomous bits dedicated to some peripherals located in D3 domain allow the data transfer with external devices without activating the CPUs.

In order for the LPTIMER to operate with Ise_ck or Isi_ck when the circuit is in Stop mode, the user application has to select the Isi_ck or Ise_ck input via LPTIMxSEL fields, and set bit LPTIMxAMEN and LPTIMxLPEN to '1'.

9.5.12 CPU and bus matrix clock gating control

For each domain it is possible to control the activation/deactivation of the CPU clock and bus matrix clock.

For information about convention naming, refer to Section 9.5.11: Peripheral clock gating control .

Table 66. Domain bus clock enabling for D1 peripherals

c2_per_alloc_d1 (1)CPU1 StateCPU2 Statercc_c1_ckrcc_bus_d1_ckComments
XCRunX=>enabledenabledCPU and bus matrix clock are provided to D1, because CPU1 is in CRun.
XCSleepX=>disabledenabledD1 bus matrix and CPU clocks are stopped because CPU1 is in CSleep.
0CStopX=>disableddisabledNo clock provided to D1, because there is no peripheral located on D1 enabled via RCC_C2_xxxENR registers.
1CStopCRun=>disabledenabledBus matrix clock provided to D1, CPU clock stopped, because at least one peripheral located on D1 is enabled via RCC_C2_xxxENR registers, and CPU2 is not in CStop mode.
1CStopCSleep=>
XCStopCStop=>disableddisabledNo clock provided to D1, because CPU2 is in CStop.

1. c2_per_alloc_d1 represents a logic OR of all RCC_C2_xxxENR.PERxEN bits, for peripherals located in D1 domain.

Table 67 shows the conditions which enable or disable the bus matrix clock on D3.

Table 67. Domain bus clock enabling for D3 peripherals

PWR_D1CR.RUN_D3PWR_D2CR.RUN_D3D3 StateCPU1 StateCPU2 Statercc_bus_d3_ckComments
XXDRunCRunX==>enabledWhen CPU1 or CPU2 are not in CStop mode, D3 domain is in DRun and the bus matrix clock is enabled.
XXDRunXCRun
XXDRunCSleepX
XXDRunXCSleep
00DStopCStopCStop==>disabledWhen there is no request to run D3, and both CPU are in CStop mode then the bus matrix clock is disabled.
00DRunCStopCStop==>enabledWhen both CPUs are in CStop mode, if there is a request to run D3 via an enabled wake-up request, then the bus matrix clock is enabled.
1XDRunXX==>enabledWhen bits D1CR.RUN_D3 or D2CR.RUN_D3 are set to '1', then the bus matrix clock is enabled, independently to other conditions.
X1DRunXX

Note: When all peripherals connected to a same APB bus are disabled, the APB clock bridge is automatically gated as well to reduce the power consumption.

As shown in the Figure 69 , the enabling of the core and bus clock of each domain depends on several input signals:

Figure 69. Bus clock enable logic

Figure 69. Bus clock enable logic diagram. The diagram shows the internal logic of the RCC (Reset and Clock Control) block. On the left, the 'sys_ck' input is connected to an AND gate. The output of this AND gate is connected to the 'SCGU (System clock generation)' block. The SCGU block has two outputs, 'run_c1' and 'run_c2', which are connected to AND gates. The 'run_c1' output is connected to an AND gate that also receives inputs from 'c1_deepsleep' and 'c2_deepsleep'. The output of this AND gate is 'rcc_c1_ck'. The 'run_c2' output is connected to an AND gate that also receives inputs from 'c1_deepsleep' and 'c2_deepsleep'. The output of this AND gate is 'rcc_c2_ck'. The 'sys_ck' input is also connected to an OR gate. The output of the OR gate is connected to three AND gates. The first AND gate also receives inputs from 'd3_deepsleep', 'PWR_D1CR.RUN_D3', and 'PWR_D2CR.RUN_D3'. The output of this AND gate is 'rcc_busclk_d1'. The second AND gate also receives inputs from 'c2_per_alloc_d1', 'CPU1 Mode (c1_sleep, c1_deepsleep)', and 'CPU2 Mode (c2_sleep, c2_deepsleep)'. The output of this AND gate is 'rcc_busclk_d2'. The third AND gate also receives inputs from 'c1_per_alloc_d2', 'CPU1 Mode (c1_sleep, c1_deepsleep)', and 'CPU2 Mode (c2_sleep, c2_deepsleep)'. The output of this AND gate is 'rcc_busclk_d3'. The 'SCGU' block also has a 'Logic function' block that receives inputs from 'c1_deepsleep', 'c2_deepsleep', 'd3_deepsleep', 'PWR_D1CR.RUN_D3', and 'PWR_D2CR.RUN_D3'. The output of this 'Logic function' block is connected to the 'rcc_busclk_d1' AND gate. There are also 'Logic function D1' and 'Logic function D2' blocks that receive inputs from 'c2_per_alloc_d1', 'c1_per_alloc_d2', 'CPU1 Mode (c1_sleep, c1_deepsleep)', and 'CPU2 Mode (c2_sleep, c2_deepsleep)'. The output of 'Logic function D1' is connected to the 'rcc_busclk_d2' AND gate, and the output of 'Logic function D2' is connected to the 'rcc_busclk_d3' AND gate. Below the diagram, there are two notes: 'run_c1(2) are a combination of NOT c1(2)_deepsleep and NOT c1(2)_sleep' and 'rcc_bus_dx represents the clocks for the bus matrix and the peripheral bus interface for domain x'. The diagram is labeled 'MSv39392V1' in the bottom right corner.

run_c1(2) are a combination of NOT c1(2)_deepsleep and NOT c1(2)_sleep

rcc_bus_dx represents the clocks for the bus matrix and the peripheral bus interface for domain x

MSv39392V1

Figure 69. Bus clock enable logic diagram. The diagram shows the internal logic of the RCC (Reset and Clock Control) block. On the left, the 'sys_ck' input is connected to an AND gate. The output of this AND gate is connected to the 'SCGU (System clock generation)' block. The SCGU block has two outputs, 'run_c1' and 'run_c2', which are connected to AND gates. The 'run_c1' output is connected to an AND gate that also receives inputs from 'c1_deepsleep' and 'c2_deepsleep'. The output of this AND gate is 'rcc_c1_ck'. The 'run_c2' output is connected to an AND gate that also receives inputs from 'c1_deepsleep' and 'c2_deepsleep'. The output of this AND gate is 'rcc_c2_ck'. The 'sys_ck' input is also connected to an OR gate. The output of the OR gate is connected to three AND gates. The first AND gate also receives inputs from 'd3_deepsleep', 'PWR_D1CR.RUN_D3', and 'PWR_D2CR.RUN_D3'. The output of this AND gate is 'rcc_busclk_d1'. The second AND gate also receives inputs from 'c2_per_alloc_d1', 'CPU1 Mode (c1_sleep, c1_deepsleep)', and 'CPU2 Mode (c2_sleep, c2_deepsleep)'. The output of this AND gate is 'rcc_busclk_d2'. The third AND gate also receives inputs from 'c1_per_alloc_d2', 'CPU1 Mode (c1_sleep, c1_deepsleep)', and 'CPU2 Mode (c2_sleep, c2_deepsleep)'. The output of this AND gate is 'rcc_busclk_d3'. The 'SCGU' block also has a 'Logic function' block that receives inputs from 'c1_deepsleep', 'c2_deepsleep', 'd3_deepsleep', 'PWR_D1CR.RUN_D3', and 'PWR_D2CR.RUN_D3'. The output of this 'Logic function' block is connected to the 'rcc_busclk_d1' AND gate. There are also 'Logic function D1' and 'Logic function D2' blocks that receive inputs from 'c2_per_alloc_d1', 'c1_per_alloc_d2', 'CPU1 Mode (c1_sleep, c1_deepsleep)', and 'CPU2 Mode (c2_sleep, c2_deepsleep)'. The output of 'Logic function D1' is connected to the 'rcc_busclk_d2' AND gate, and the output of 'Logic function D2' is connected to the 'rcc_busclk_d3' AND gate. Below the diagram, there are two notes: 'run_c1(2) are a combination of NOT c1(2)_deepsleep and NOT c1(2)_sleep' and 'rcc_bus_dx represents the clocks for the bus matrix and the peripheral bus interface for domain x'. The diagram is labeled 'MSv39392V1' in the bottom right corner.

CRun or CSleep, the corresponding bus matrix clock is provided to the D2 domain, and the CPU2 clock is stopped.

9.6 RCC Interrupts

The RCC provides 3 interrupt lines:

The interrupt enable is controlled via RCC clock source interrupt enable register (RCC_CIER) , except for the HSE CSS failure. When the HSE CSS feature is enabled, it is not possible to mask the interrupt generation.

The interrupt flags can be checked via RCC clock source interrupt flag register (RCC_CIFR) , and those flags can be cleared via RCC clock source interrupt clear register (RCC_CICR) .

Note: The interrupt flags are not relevant if the corresponding interrupt enable bit is not set.

Table 68 gives a summary of the interrupt sources, and the way to control them.

Table 68. Interrupt sources and control

Interrupt SourceDescriptionInterrupt enableAction to clear interruptInterrupt Line
LSIRDYFLSI readyLSIRDYIESet LSIRDYC to '1'rcc_it
LSERDYFLSE readyLSERDYIESet LSERDYC to '1'
HSIDRYFHSI readyHSIDRYIESet HSIRDYC to '1'
HSERDYFHSE readyHSERDYIESet HSERDYC to '1'
CSIRDYFCSI readyCSIRDYIESet CSIRDYC to '1'
HSI48RDYFHSI48 readyHSI48RDYIESet HSI48RDYC to '1'
PLL1RDYFPLL1 readyPLL1RDYIESet PLL1RDYC to '1'
PLL2RDYFPLL2 readyPLL2RDYIESet PLL2RDYC to '1'
PLL3RDYFPLL3 readyPLL3RDYIESet PLL3RDYC to '1'
LSECSSFLSE Clock security system failureLSECSSFIE (1)Set LSECSSC to '1'rcc_lsecss_it
HSECSSFHSE Clock security system failure(2)Set HSECSSC to '1'rcc_hsecss_it

1. The security system feature must also be enabled (LSECSSON = '1'), in order to generate interrupts.

2. It is not possible to mask this interrupt when the security system feature is enabled (HSECSSON = '1').

9.7 RCC registers

9.7.1 Register mapping overview

The RCC register map is divided into 4 sections.

Note: Any master can access the Common register bank, CPU1 register bank and CPU2 register bank. However, the “same address bank” can only be accessed by CPU1 or CPU2.

Figure 70 shows the RCC mapping overview.

Figure 70. RCC mapping overview

Memory map diagram of RCC registers showing address ranges and accessibility for CPU1, CPU2, and common masters.

The diagram illustrates the RCC register map from address 0x000 to 0x1FF. It is divided into four functional sections indicated by brackets on the right:

Registers marked with diagonal hatching (RCC_C2_APB4LPENR, RCC_C1_APB4LPENR, and RCC_APB4LPENR) are dual-access registers. The diagram also shows ellipses indicating other registers in the sequence. The identifier MSV39393V1 is present in the bottom right corner.

Memory map diagram of RCC registers showing address ranges and accessibility for CPU1, CPU2, and common masters.

9.7.2 RCC source control register (RCC_CR)

Address offset: 0x000

Reset value: 0x0000 0001

31302928272625242322212019181716
Res.Res.PLL3RDYPLL3ONPLL2RDYPLL2ONPLL1RDYPLL1ONRes.Res.Res.Res.HSEOCSSONHSEBYPHSERDYHSEON
rrwrrwrrwrsrwrrw
1514131211109876543210
D2CKRDYD1CKRDYHSI48RDYHSI48ONRes.Res.CSIKERONCSIRDYCSIONRes.HSIDIVFHSIDIV[1:0]rwHSIRDYHSIKERONHSION
rrrrwrwrrwrrrwrw

Bits 31:30 Reserved, must be kept at reset value.

Bit 29 PLL3RDY : PLL3 clock ready flag

Set by hardware to indicate that the PLL3 is locked.

0: PLL3 unlocked (default after reset)

1: PLL3 locked

Bit 28 PLL3ON : PLL3 enable

Set and cleared by software to enable PLL3.

Cleared by hardware when entering Stop or Standby mode.

0: PLL3 OFF (default after reset)

1: PLL3 ON

Bit 27 PLL2RDY : PLL2 clock ready flag

Set by hardware to indicate that the PLL2 is locked.

0: PLL2 unlocked (default after reset)

1: PLL2 locked

Bit 26 PLL2ON : PLL2 enable

Set and cleared by software to enable PLL2.

Cleared by hardware when entering Stop or Standby mode.

0: PLL2 OFF (default after reset)

1: PLL2 ON

Bit 25 PLL1RDY : PLL1 clock ready flag

Set by hardware to indicate that the PLL1 is locked.

0: PLL1 unlocked (default after reset)

1: PLL1 locked

Bit 24 PLL1ON : PLL1 enable

Set and cleared by software to enable PLL1.

Cleared by hardware when entering Stop or Standby mode. Note that the hardware prevents writing this bit to '0', if the PLL1 output is used as the system clock.

0: PLL1 OFF (default after reset)

1: PLL1 ON

Bits 23:20 Reserved, must be kept at reset value.

Bit 19 HSECSSON: HSE Clock Security System enable

Set by software to enable Clock Security System on HSE.

This bit is “set only” (disabled by a system reset or when the system enters in Standby mode).

When HSECSSON is set, the clock detector is enabled by hardware when the HSE is ready and disabled by hardware if an oscillator failure is detected.

0: Clock Security System on HSE OFF (Clock detector OFF) (default after reset)

1: Clock Security System on HSE ON (Clock detector ON if the HSE oscillator is stable, OFF if not).

Bit 18 HSEBYP: HSE clock bypass

Set and cleared by software to bypass the oscillator with an external clock. The external clock must be enabled with the HSEON bit, to be used by the device.

The HSEBYP bit can be written only if the HSE oscillator is disabled.

0: HSE oscillator not bypassed (default after reset)

1: HSE oscillator bypassed with an external clock

Bit 17 HSERDY: HSE clock ready flag

Set by hardware to indicate that the HSE oscillator is stable.

0: HSE clock is not ready (default after reset)

1: HSE clock is ready

Bit 16 HSEON: HSE clock enable

Set and cleared by software.

Cleared by hardware to stop the HSE when entering Stop or Standby mode.

This bit cannot be cleared if the HSE is used directly (via SW mux) as system clock or if the HSE is selected as reference clock for PLL1 with PLL1 enabled (PLL1ON bit set to ‘1’).

0: HSE is OFF (default after reset)

1: HSE is ON

Bit 15 D2CKRDY: D2 domain clocks ready flag

Set by hardware to indicate that the D2 domain clocks (CPU, bus and peripheral) are available.

0: D2 domain clocks are not available (default after reset)

1: D2 domain clocks are available

Bit 14 D1CKRDY: D1 domain clocks ready flag

Set by hardware to indicate that the D1 domain clocks (CPU, bus and peripheral) are available.

0: D1 domain clocks are not available (default after reset)

1: D1 domain clocks are available

Bit 13 HSI48RDY: HSI48 clock ready flag

Set by hardware to indicate that the HSI48 oscillator is stable.

0: HSI48 clock is not ready (default after reset)

1: HSI48 clock is ready

Bit 12 HSI48ON: HSI48 clock enable

Set by software and cleared by software or by the hardware when the system enters to Stop or Standby mode.

0: HSI48 is OFF (default after reset)

1: HSI48 is ON

Bits 11:10 Reserved, must be kept at reset value.

Bit 9 CSIKERON : CSI clock enable in Stop mode

Set and reset by software to force the CSI to ON, even in Stop mode, in order to be quickly available as kernel clock for some peripherals. This bit has no effect on the value of CSION.

0: no effect on CSI (default after reset)

1: CSI is forced to ON even in Stop mode

Bit 8 CSIRDY : CSI clock ready flag

Set by hardware to indicate that the CSI oscillator is stable. This bit is activated only if the RC is enabled by CSION (it is not activated if the CSI is enabled by CSIKERON or by a peripheral request).

0: CSI clock is not ready (default after reset)

1: CSI clock is ready

Bit 7 CSION : CSI clock enable

Set and reset by software to enable/disable CSI clock for system and/or peripheral.

Set by hardware to force the CSI to ON when the system leaves Stop mode, if STOPWUCK = '1' or STOPKERWUCK = '1'.

This bit cannot be cleared if the CSI is used directly (via SW mux) as system clock or if the CSI is selected as reference clock for PLL1 with PLL1 enabled (PLL1ON bit set to '1').

0: CSI is OFF (default after reset)

1: CSI is ON

Bit 6 Reserved, must be kept at reset value.

Bit 5 HSIDIVF : HSI divider flag

Set and reset by hardware.

As a write operation to HSIDIV has not an immediate effect on the frequency, this flag indicates the current status of the HSI divider. HSIDIVF will go immediately to '0' when HSIDIV value is changed, and will be set back to '1' when the output frequency matches the value programmed into HSIDIV.

0: new division ratio not yet propagated to hsi(_ker)_ck (default after reset)

1: hsi(_ker)_ck clock frequency reflects the new HSIDIV value

Bits 4:3 HSIDIV[1:0] : HSI clock divider

Set and reset by software.

These bits allow selecting a division ratio in order to configure the wanted HSI clock frequency. The HSIDIV cannot be changed if the HSI is selected as reference clock for at least one enabled PLL (PLLxON bit set to '1'). In that case, the new HSIDIV value is ignored.

00: Division by 1, hsi(_ker)_ck = 64 MHz (default after reset)

01: Division by 2, hsi(_ker)_ck = 32 MHz

10: Division by 4, hsi(_ker)_ck = 16 MHz

11: Division by 8, hsi(_ker)_ck = 8 MHz

Bit 2 HSIRDY: HSI clock ready flag

Set by hardware to indicate that the HSI oscillator is stable.

0: HSI clock is not ready (default after reset)

1: HSI clock is ready

Bit 1 HSIKERON: High Speed Internal clock enable in Stop mode

Set and reset by software to force the HSI to ON, even in Stop mode, in order to be quickly available as kernel clock for peripherals. This bit has no effect on the value of HSION.

0: no effect on HSI (default after reset)

1: HSI is forced to ON even in Stop mode

Bit 0 HSION: High Speed Internal clock enable

Set and cleared by software.

Set by hardware to force the HSI to ON when the product leaves Stop mode, if STOPWUCK = '0' or STOPKERWUCK = '0'.

Set by hardware to force the HSI to ON when the product leaves Standby mode or in case of a failure of the HSE which is used as the system clock source.

This bit cannot be cleared if the HSI is used directly (via SW mux) as system clock or if the HSI is selected as reference clock for PLL1 with PLL1 enabled (PLL1ON bit set to '1').

0: HSI is OFF

1: HSI is ON (default after reset)

9.7.3 RCC HSI configuration register (RCC_HSICFGR)

Address offset: 0x004

Reset value: 0x4000 0xxx

31302928272625242322212019181716
Res.HSITRIM[6:0]Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.HSICAL[11:0]
rrrrrrrrrrrr

Bit 31 Reserved, must be kept at reset value.

Bits 30:24 HSITRIM[6:0] : HSI clock trimming

Set by software to adjust calibration.

HSITRIM field is added to the engineering Option Bytes loaded during reset phase (FLASH_HSI_opt) in order to form the calibration trimming value.

HSICAL = HSITRIM + FLASH_HSI_opt.

Note: The reset value of the field is 0x40.

Bits 23:12 Reserved, must be kept at reset value.

Bits 11:0 HSICAL[11:0] : HSI clock calibration

Set by hardware by option byte loading during system reset nreset .

Adjusted by software through trimming bits HSITRIM.

This field represents the sum of engineering Option Byte calibration value and HSITRIM bits value.

9.7.4 RCC clock recovery RC register (RCC_CRRCR)

Address offset: 0x008

Reset value: 0x0000 0xxx

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.HSI48CAL[9:0]
rrrrrrrrrr

Bits 31:10 Reserved, must be kept at reset value.

Bits 9:0 HSI48CAL[9:0] : Internal RC 48 MHz clock calibration

Set by hardware by option byte loading during system reset nreset .

Read-only.

9.7.5 RCC CSI configuration register (RCC_CSICFGR)

Address offset: 0x00C

Reset value: 0x2000 00xx

31302928272625242322212019181716
Res.Res.CSITRIM[5:0]Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.CSICAL[9:0]
rrrrrrrrrr

Bits 31:30 Reserved, must be kept at reset value.

Bits 29:24 CSITRIM[5:0] : CSI clock trimming

Set by software to adjust calibration.

CSITRIM bitfield is added to the engineering option bytes loaded during the reset phase (FLASH_CSI_opt) in order to build the calibration trimming value.

CSICAL = CSITRIM + FLASH_CSI_opt.

Note: The reset value of this bitfield is 0x10.

Bits 23:8 Reserved, must be kept at reset value.

Bits 9:0 CSICAL[9:0] : CSI clock calibration

Set by hardware by option byte loading during system reset nreset .

Adjusted by software through trimming bits CSITRIM.

This bitfield represents the sum of the engineering option byte calibration value and CSITRIM value.

9.7.6 RCC clock configuration register (RCC_CFGR)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
MCO2SEL[2:0]MCO2PRE[3:0]MCO1SEL[2:0]MCO1PRE[3:0]Res.Res.
rwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
TIMPREHRTIMSELRTCPRE[5:0]STOPKERWUCKSTOPWUCKSWS[2:0]SW[2:0]
rwrwrw
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:29 MCO2SEL[2:0]: Micro-controller clock output 2

Set and cleared by software. Clock source selection may generate glitches on MCO2.

It is highly recommended to configure these bits only after reset, before enabling the external oscillators and the PLLs.

000: System clock selected ( sys_ck ) (default after reset)

001: PLL2 oscillator clock selected ( pll2_p_ck )

010: HSE clock selected ( hse_ck )

011: PLL1 clock selected ( pll1_p_ck )

100: CSI clock selected ( csi_ck )

101: LSI clock selected ( lsi_ck )

others: reserved

Bits 28:25 MCO2PRE[3:0]: MCO2 prescaler

Set and cleared by software to configure the prescaler of the MCO2. Modification of this prescaler may generate glitches on MCO2. It is highly recommended to change this prescaler only after reset, before enabling the external oscillators and the PLLs.

0000: prescaler disabled (default after reset)

0001: division by 1 (bypass)

0010: division by 2

0011: division by 3

0100: division by 4

...

1111: division by 15

Bits 24:22 MCO1SEL[2:0]: Micro-controller clock output 1

Set and cleared by software. Clock source selection may generate glitches on MCO1.

It is highly recommended to configure these bits only after reset, before enabling the external oscillators and the PLLs.

000: HSI clock selected ( hsi_ck ) (default after reset)

001: LSE oscillator clock selected ( lse_ck )

010: HSE clock selected ( hse_ck )

011: PLL1 clock selected ( pll1_q_ck )

100: HSI48 clock selected ( hsi48_ck )

others: reserved

Bits 21:18 MCO1PRE[3:0] : MCO1 prescaler

Set and cleared by software to configure the prescaler of the MCO1. Modification of this prescaler may generate glitches on MCO1. It is highly recommended to change this prescaler only after reset, before enabling the external oscillators and the PLLs.

0000: prescaler disabled (default after reset)

0001: division by 1 (bypass)

0010: division by 2

0011: division by 3

0100: division by 4

...

1111: division by 15

Bits 17:16 Reserved, must be kept at reset value.

Bit 15 TIMPRE : Timers clocks prescaler selection

This bit is set and reset by software to control the clock frequency of all the timers connected to APB1 and APB2 domains.

0: The Timers kernel clock is equal to rcc_hclk1 if D2PPREx is corresponding to division by 1 or 2, else it is equal to \( 2 \times F_{\text{rcc\_pclkx\_d2}} \) (default after reset)

1: The Timers kernel clock is equal to rcc_hclk1 if D2PPREx is corresponding to division by 1, 2 or 4, else it is equal to \( 4 \times F_{\text{rcc\_pclkx\_d2}} \)

Please refer to Table 59: Ratio between clock timer and pclk

Bit 14 HRTIMSEL : High Resolution Timer clock prescaler selection

This bit is set and reset by software to control the clock frequency of high resolution the timer (HRTIM).

0: The HRTIM prescaler clock source is the same as other timers. (default after reset)

1: The HRTIM prescaler clock source is the CPU1 clock ( rcc_c1_ck ).

Bits 13:8 RTCPRE[5:0] : HSE division factor for RTC clock

Set and cleared by software to divide the HSE to generate a clock for RTC.

Caution: The software has to set these bits correctly to ensure that the clock supplied to the RTC is lower than 1 MHz. These bits must be configured if needed before selecting the RTC clock source.

000000: no clock (default after reset)

000001: no clock

000010: HSE/2

000011: HSE/3

000100: HSE/4

...

111110: HSE/62

111111: HSE/63

Bit 7 STOPKERWUCK : Kernel clock selection after a wake up from system Stop

Set and reset by software to select the Kernel wakeup clock from system Stop.

0: The HSI is selected as wake up clock from system Stop (default after reset)

1: The CSI is selected as wake up clock from system Stop

See Section 9.5.7: Handling clock generators in Stop and Standby mode for details.

Bit 6 STOPWUCK : System clock selection after a wake up from system Stop

Set and reset by software to select the system wakeup clock from system Stop.

The selected clock is also used as emergency clock for the Clock Security System on HSE.

0: The HSI is selected as wake up clock from system Stop (default after reset)

1: The CSI is selected as wake up clock from system Stop

See Section 9.5.7: Handling clock generators in Stop and Standby mode for details.

Caution: STOPWUCK must not be modified when the Clock Security System is enabled (by HSECSSON bit) and the system clock is HSE (SWS="10") or a switch on HSE is requested (SW="10").

Bits 5:3 SWS[2:0] : System clock switch status

Set and reset by hardware to indicate which clock source is used as system clock.

000: HSI used as system clock ( hsi_ck ) (default after reset)

001: CSI used as system clock ( csi_ck )

010: HSE used as system clock ( hse_ck )

011: PLL1 used as system clock ( pll1_p_ck )

others: Reserved

Bits 2:0 SW[2:0] : System clock switch

Set and reset by software to select system clock source ( sys_ck ).

Set by hardware in order to:

000: HSI selected as system clock ( hsi_ck ) (default after reset)

001: CSI selected as system clock ( csi_ck )

010: HSE selected as system clock ( hse_ck )

011: PLL1 selected as system clock ( pll1_p_ck )

others: Reserved

9.7.7 RCC domain 1 clock configuration register (RCC_D1CFGR)

Address offset: 0x018

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.D1CPRE[3:0]Res.D1PPRE[2:0]HPRE[3:0]
rwrwrwrwrwrwrwrwrwrwrw

Bits 31:12 Reserved, must be kept at reset value.

Bits 11:8 D1CPRE[3:0] : D1 domain Core prescaler

Set and reset by software to control D1 domain CPU clock division factor.

Changing this division ratio has an impact on the frequency of CPU1 clock, all bus matrix clocks and CPU2 clock.

The clocks are divided by the new prescaler factor. This factor ranges from 1 to 16 periods of the slowest APB clock among rcc_pclk[4:1] after D1CPRE update. The application can check if the new division factor is taken into account by reading back this register.

0xxx: sys_ck not divided (default after reset)

1000: sys_ck divided by 2

1001: sys_ck divided by 4

1010: sys_ck divided by 8

1011: sys_ck divided by 16

1100: sys_ck divided by 64

1101: sys_ck divided by 128

1110: sys_ck divided by 256

1111: sys_ck divided by 512

Bit 7 Reserved, must be kept at reset value.

Bits 6:4 D1PPRE[2:0] : D1 domain APB3 prescaler

Set and reset by software to control the division factor of rcc_pclk3 .

The clock is divided by the new prescaler factor from 1 to 16 cycles of rcc_hclk3 after D1PPRE write.

0xx: rcc_pclk3 = rcc_hclk3 (default after reset)

100: rcc_pclk3 = rcc_hclk3 / 2

101: rcc_pclk3 = rcc_hclk3 / 4

110: rcc_pclk3 = rcc_hclk3 / 8

111: rcc_pclk3 = rcc_hclk3 / 16

Bits 3:0 HPRE[3:0] : D1 domain AHB prescaler

Set and reset by software to control the division factor of rcc_hclk3 and rcc_aclk . Changing this division ratio has an impact on the frequency of all bus matrix clocks and CPU2 clock.

0xxx: rcc_hclk3 = sys_d1cpres_ck (default after reset)

1000: rcc_hclk3 = sys_d1cpres_ck / 2

1001: rcc_hclk3 = sys_d1cpres_ck / 4

1010: rcc_hclk3 = sys_d1cpres_ck / 8

1011: rcc_hclk3 = sys_d1cpres_ck / 16

1100: rcc_hclk3 = sys_d1cpres_ck / 64

1101: rcc_hclk3 = sys_d1cpres_ck / 128

1110: rcc_hclk3 = sys_d1cpres_ck / 256

1111: rcc_hclk3 = sys_d1cpres_ck / 512

Note: The clocks are divided by the new prescaler factor from 1 to 16 periods of the slowest APB clock among rcc_pclk[4:1] after HPRE update.

Note: Note also that rcc_hclk3 = rcc_aclk .

Caution: Care must be taken when using the voltage scaling. Due to the propagation delay of the new division factor, after a prescaler factor change and before lowering the \( V_{CORE} \) voltage, this register must be read in order to check that the new prescaler value has been taken into account.

Depending on the clock source frequency and the voltage range, the software application has to program a correct value in HPRE to make sure that the system frequency does not exceed the maximum frequency.

9.7.8 RCC domain 2 clock configuration register (RCC_D2CFGR)

Address offset: 0x01C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.D2PPRE2[2:0]Res.D2PPRE1[2:0]Res.Res.Res.Res.
rwrwrwrwrwrw

Bits 31:11 Reserved, must be kept at reset value.

Bits 10:8 D2PPRE2[2:0] : D2 domain APB2 prescaler

Set and reset by software to control D2 domain APB2 clock division factor.

The clock is divided by the new prescaler factor from 1 to 16 cycles of rcc_hclk1 after D2PPRE2 write.

0xx: rcc_pclk2 = rcc_hclk1 (default after reset)

100: rcc_pclk2 = rcc_hclk1 / 2

101: rcc_pclk2 = rcc_hclk1 / 4

110: rcc_pclk2 = rcc_hclk1 / 8

111: rcc_pclk2 = rcc_hclk1 / 16

Bit 7 Reserved, must be kept at reset value.

Bits 6:4 D2PPRE1[2:0] : D2 domain APB1 prescaler

Set and reset by software to control D2 domain APB1 clock division factor.

The clock is divided by the new prescaler factor from 1 to 16 cycles of rcc_hclk1 after D2PPRE1 write.

0xx: rcc_pclk1 = rcc_hclk1 (default after reset)

100: rcc_pclk1 = rcc_hclk1 / 2

101: rcc_pclk1 = rcc_hclk1 / 4

110: rcc_pclk1 = rcc_hclk1 / 8

111: rcc_pclk1 = rcc_hclk1 / 16

Bits 3:0 Reserved, must be kept at reset value.

9.7.9 RCC domain 3 clock configuration register (RCC_D3CFGR)

Address offset: 0x020

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.D3PPRE[2:0]Res.
rwrwrw

Bits 31:7 Reserved, must be kept at reset value.

Bits 6:4 D3PPRE[2:0] : D3 domain APB4 prescaler

Set and reset by software to control D3 domain APB4 clock division factor.

The clock is divided by the new prescaler factor from 1 to 16 cycles of rcc_hclk4 after D3PPRE write.

0xx: rcc_pclk4 = rcc_hclk4 (default after reset)

100: rcc_pclk4 = rcc_hclk4 / 2

101: rcc_pclk4 = rcc_hclk4 / 4

110: rcc_pclk4 = rcc_hclk4 / 8

111: rcc_pclk4 = rcc_hclk4 / 16

Bits 3:0 Reserved, must be kept at reset value.

9.7.10 RCC PLLs clock source selection register (RCC_PLLCKSEL R )

Address offset: 0x028

Reset value: 0x0202 0200

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.DIVM3[5:0]Res.Res.DIVM2[5:4]
rwrwrwrwrwrwrwrw
1514131211109876543210
DIVM2[3:0]Res.Res.DIVM1[5:0]Res.Res.PLL SRC [1:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bits 25:20 DIVM3[5:0] : Prescaler for PLL3

Set and cleared by software to configure the prescaler of the PLL3.

The hardware does not allow any modification of this prescaler when PLL3 is enabled (PLL3ON = '1').

In order to save power when PLL3 is not used, the value of DIVM3 must be set to '0'.

000000: prescaler disabled

000001: division by 1 (bypass)

000010: division by 2

000011: division by 3

...

100000: division by 32 (default after reset)

...

111111: division by 63

Bits 19:18 Reserved, must be kept at reset value.

Bits 17:12 DIVM2[5:0] : Prescaler for PLL2

Set and cleared by software to configure the prescaler of the PLL2.

The hardware does not allow any modification of this prescaler when PLL2 is enabled (PLL2ON = '1').

In order to save power when PLL2 is not used, the value of DIVM2 must be set to '0'.

000000: prescaler disabled

000001: division by 1 (bypass)

000010: division by 2

000011: division by 3

...

100000: division by 32 (default after reset)

...

111111: division by 63

Bits 11:10 Reserved, must be kept at reset value.

Bits 9:4 DIVM1[5:0] : Prescaler for PLL1

Set and cleared by software to configure the prescaler of the PLL1.

The hardware does not allow any modification of this prescaler when PLL1 is enabled (PLL1ON = '1').

In order to save power when PLL1 is not used, the value of DIVM1 must be set to '0'.

000000: prescaler disabled

000001: division by 1 (bypass)

000010: division by 2

000011: division by 3

...

100000: division by 32 (default after reset)

...

111111: division by 63

Bits 3:2 Reserved, must be kept at reset value.

Bits 1:0 PLL SRC[1:0] : DIVMx and PLLs clock source selection

Set and reset by software to select the PLL clock source.

These bits can be written only when all PLLs are disabled.

In order to save power, when no PLL is used, the value of PLL SRC must be set to '11'.

00: HSI selected as PLL clock ( hsi_ck ) (default after reset)

01: CSI selected as PLL clock ( csi_ck )

10: HSE selected as PLL clock ( hse_ck )

11: No clock send to DIVMx divider and PLLs

9.7.11 RCC PLL configuration register (RCC_PLLCFGR)

Address offset: 0x02C

Reset value: 0x01FF 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.DIVR3ENDIVQ3ENDIVP3ENDIVR2ENDIVQ2ENDIVP2ENDIVR1ENDIVQ1ENDIVP1EN
1514131211109876543210
Res.Res.Res.Res.PLL3RGE[[1:0]]PLL3VCOSELPLL3FRACENPLL2RGE[[1:0]]PLL2VCOSELPLL2FRACENPLL1RGE[[1:0]]PLL1VCOSELPLL1FRACEN
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:25 Reserved, must be kept at reset value.

Bit 24 DIVR3EN : PLL3 DIVR divider output enable

Set and reset by software to enable the pll3_r_ck output of the PLL3.

To save power, DIVR3EN and DIVR3 bits must be set to '0' when the pll3_r_ck is not used.

This bit can be written only when the PLL3 is disabled (PLL3ON = '0' and PLL3RDY = '0').

0: pll3_r_ck output is disabled

1: pll3_r_ck output is enabled (default after reset)

Bit 23 DIVQ3EN : PLL3 DIVQ divider output enable

Set and reset by software to enable the pll3_q_ck output of the PLL3.

To save power, DIVR3EN and DIVR3 bits must be set to '0' when the pll3_r_ck is not used.

This bit can be written only when the PLL3 is disabled (PLL3ON = '0' and PLL3RDY = '0').

0: pll3_q_ck output is disabled

1: pll3_q_ck output is enabled (default after reset)

Bit 22 DIVP3EN : PLL3 DIVP divider output enable

Set and reset by software to enable the pll3_p_ck output of the PLL3.

This bit can be written only when the PLL3 is disabled (PLL3ON = '0' and PLL3RDY = '0').

To save power, DIVR3EN and DIVR3 bits must be set to '0' when the pll3_r_ck is not used.

0: pll3_p_ck output is disabled

1: pll3_p_ck output is enabled (default after reset)

Bit 21 DIVR2EN : PLL2 DIVR divider output enable

Set and reset by software to enable the pll2_r_ck output of the PLL2.

To save power, DIVR3EN and DIVR3 bits must be set to '0' when the pll3_r_ck is not used.

This bit can be written only when the PLL2 is disabled (PLL2ON = '0' and PLL2RDY = '0').

0: pll2_r_ck output is disabled

1: pll2_r_ck output is enabled (default after reset)

Bit 20 DIVQ2EN : PLL2 DIVQ divider output enable

Set and reset by software to enable the pll2_q_ck output of the PLL2.

To save power, DIVR3EN and DIVR3 bits must be set to '0' when the pll3_r_ck is not used.

This bit can be written only when the PLL2 is disabled (PLL2ON = '0' and PLL2RDY = '0').

0: pll2_q_ck output is disabled

1: pll2_q_ck output is enabled (default after reset)

Bit 19 DIVP2EN : PLL2 DIVP divider output enable

Set and reset by software to enable the pll2_p_ck output of the PLL2.

This bit can be written only when the PLL2 is disabled (PLL2ON = '0' and PLL2RDY = '0').

To save power, DIVR3EN and DIVR3 bits must be set to '0' when the pll3_r_ck is not used.

0: pll2_p_ck output is disabled

1: pll2_p_ck output is enabled (default after reset)

Bit 18 DIVR1EN : PLL1 DIVR divider output enable

Set and reset by software to enable the pll1_r_ck output of the PLL1.

To save power, DIVR3EN and DIVR3 bits must be set to '0' when the pll3_r_ck is not used.

This bit can be written only when the PLL1 is disabled (PLL1ON = '0' and PLL1RDY = '0').

0: pll1_r_ck output is disabled

1: pll1_r_ck output is enabled (default after reset)

Bit 17 DIVQ1EN : PLL1 DIVQ divider output enable

Set and reset by software to enable the pll1_q_ck output of the PLL1.

In order to save power, when the pll1_q_ck output of the PLL1 is not used, the pll1_q_ck must be disabled.

This bit can be written only when the PLL1 is disabled (PLL1ON = '0' and PLL1RDY = '0').

0: pll1_q_ck output is disabled

1: pll1_q_ck output is enabled (default after reset)

Bit 16 DIVP1EN : PLL1 DIVP divider output enable

Set and reset by software to enable the pll1_p_ck output of the PLL1.

This bit can be written only when the PLL1 is disabled (PLL1ON = '0' and PLL1RDY = '0').

In order to save power, when the pll1_p_ck output of the PLL1 is not used, the pll1_p_ck must be disabled.

0: pll1_p_ck output is disabled

1: pll1_p_ck output is enabled (default after reset)

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:10 PLL3RGE[1:0] : PLL3 input frequency range

Set and reset by software to select the proper reference frequency range used for PLL3.

These bits must be written before enabling the PLL3.

00: The PLL3 input ( ref3_ck ) clock range frequency is between 1 and 2 MHz (default after reset)

01: The PLL3 input ( ref3_ck ) clock range frequency is between 2 and 4 MHz

10: The PLL3 input ( ref3_ck ) clock range frequency is between 4 and 8 MHz

11: The PLL3 input ( ref3_ck ) clock range frequency is between 8 and 16 MHz

Bit 9 PLL3VCOSEL : PLL3 VCO selection

Set and reset by software to select the proper VCO frequency range used for PLL3.

This bit must be written before enabling the PLL3.

0: Wide VCO range: 192 to 960 MHz (default after reset)

1: Medium VCO range: 150 to 420 MHz

Bit 8 PLL3FRACEN : PLL3 fractional latch enable

Set and reset by software to latch the content of FRACN3 into the Sigma-Delta modulator.

In order to latch the FRACN3 value into the Sigma-Delta modulator, PLL3FRACEN must be set to '0', then set to '1': the transition 0 to 1 transfers the content of FRACN3 into the modulator. Please refer to Section : PLL initialization phase for additional information.

Bits 7:6 PLL2RGE[1:0]: PLL2 input frequency range

Set and reset by software to select the proper reference frequency range used for PLL2.

These bits must be written before enabling the PLL2.

00: The PLL2 input ( ref2_ck ) clock range frequency is between 1 and 2 MHz (default after reset)

01: The PLL2 input ( ref2_ck ) clock range frequency is between 2 and 4 MHz

10: The PLL2 input ( ref2_ck ) clock range frequency is between 4 and 8 MHz

11: The PLL2 input ( ref2_ck ) clock range frequency is between 8 and 16 MHz

Bit 5 PLL2VCOSEL: PLL2 VCO selection

Set and reset by software to select the proper VCO frequency range used for PLL2.

This bit must be written before enabling the PLL2.

0: Wide VCO range: 192 to 960 MHz (default after reset)

1: Medium VCO range: 150 to 420 MHz

Bit 4 PLL2FRACEN: PLL2 fractional latch enable

Set and reset by software to latch the content of FRACN2 into the Sigma-Delta modulator.

In order to latch the FRACN2 value into the Sigma-Delta modulator, PLL2FRACEN must be set to '0', then set to '1': the transition 0 to 1 transfers the content of FRACN2 into the modulator. Please refer to Section : PLL initialization phase for additional information.

Bits 3:2 PLL1RGE[1:0]: PLL1 input frequency range

Set and reset by software to select the proper reference frequency range used for PLL1.

This bit must be written before enabling the PLL1.

00: The PLL1 input ( ref1_ck ) clock range frequency is between 1 and 2 MHz (default after reset)

01: The PLL1 input ( ref1_ck ) clock range frequency is between 2 and 4 MHz

10: The PLL1 input ( ref1_ck ) clock range frequency is between 4 and 8 MHz

11: The PLL1 input ( ref1_ck ) clock range frequency is between 8 and 16 MHz

Bit 1 PLL1VCOSEL: PLL1 VCO selection

Set and reset by software to select the proper VCO frequency range used for PLL1.

These bits must be written before enabling the PLL1.

0: Wide VCO range: 192 to 960 MHz (default after reset)

1: Medium VCO range: 150 to 420 MHz

Bit 0 PLL1FRACEN: PLL1 fractional latch enable

Set and reset by software to latch the content of FRACN1 into the Sigma-Delta modulator.

In order to latch the FRACN1 value into the Sigma-Delta modulator, PLL1FRACEN must be set to '0', then set to '1': the transition 0 to 1 transfers the content of FRACN1 into the modulator. Please refer to Section : PLL initialization phase for additional information.

9.7.12 RCC PLL1 dividers configuration register (RCC_PLL1DIVR)

Address offset: 0x030

Reset value: 0x0101 0280

31302928272625242322212019181716
Res.DIVR1[6:0]Res.DIVQ1[6:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
DIVP1[6:0]DIVN1[8:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bits 30:24 DIVR1[6:0] : PLL1 DIVR division factor

Set and reset by software to control the frequency of the pll1_r_ck clock.

These bits can be written only when the PLL1 is disabled (PLL1ON = '0' and PLL1RDY = '0').

0000000: not allowed

0000001: pll1_r_ck = vco1_ck / 2 (default after reset)

0000010: pll1_r_ck = vco1_ck / 3

0000011: pll1_r_ck = vco1_ck / 4

...

1111111: pll1_r_ck = vco1_ck / 128

Bit 23 Reserved, must be kept at reset value.

Bits 22:16 DIVQ1[6:0] : PLL1 DIVQ division factor

Set and reset by software to control the frequency of the pll1_q_ck clock.

These bits can be written only when the PLL1 is disabled (PLL1ON = '0' and PLL1RDY = '0').

0000000: pll1_q_ck = vco1_ck

0000001: pll1_q_ck = vco1_ck / 2 (default after reset)

0000010: pll1_q_ck = vco1_ck / 3

0000011: pll1_q_ck = vco1_ck / 4

...

1111111: pll1_q_ck = vco1_ck / 128

Bits 15:9 DIVP1[6:0] : PLL1 DIVP division factor

Set and reset by software to control the frequency of the pll1_p_ck clock.

These bits can be written only when the PLL1 is disabled (PLL1ON = '0' and PLL1RDY = '0').

Note that odd division factors are not allowed.

0000000: pll1_p_ck = vco1_ck

0000001: pll1_p_ck = vco1_ck / 2 (default after reset)

0000010: Not allowed

0000011: pll1_p_ck = vco1_ck / 4

...

1111111: pll1_p_ck = vco1_ck / 128

Bits 8:0 DIVN1[8:0] : Multiplication factor for PLL1 VCO

Set and reset by software to control the multiplication factor of the VCO.

These bits can be written only when the PLL is disabled (PLL1ON = '0' and PLL1RDY = '0').

0x003: DIVN1 = 4

0x004: DIVN1 = 5

0x005: DIVN1 = 6

...

0x080: DIVN1 = 129 (default after reset)

...

0x1FF: DIVN1 = 512

Others: wrong configurations

Caution: The software has to set correctly these bits to insure that the VCO output frequency is between its valid frequency range, which is:

VCO output frequency = \( F_{ref1\_ck} \times DIVN1 \) , when fractional value 0 has been loaded into FRACN1, with:

9.7.13 RCC PLL1 fractional divider register (RCC_PLL1FRACR)

Address offset: 0x034

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
FRACN1[12:0]Res.Res.Res.
rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:16 Reserved, must be kept at reset value.

Bits 15:3 FRACN1[12:0] : Fractional part of the multiplication factor for PLL1 VCO

Set and reset by software to control the fractional part of the multiplication factor of the VCO.
These bits can be written at any time, allowing dynamic fine-tuning of the PLL1 VCO.

Caution: The software has to set correctly these bits to insure that the VCO output frequency is between its valid frequency range, which is:

VCO output frequency = \( F_{ref1\_ck} \times (DIVN1 + (FRACN1 / 2^{13})) \) , with

To change the FRACN value on-the-fly even if the PLL is enabled, the application has to proceed as follow:

where ref1_ck, ref2_ck, or ref3_ck are used depending on FRACNx bit index

Bits 2:0 Reserved, must be kept at reset value.

9.7.14 RCC PLL2 dividers configuration register (RCC_PLL2DIVR)

Address offset: 0x038

Reset value: 0x0101 0280

31302928272625242322212019181716
Res.DIVR2[6:0]Res.DIVQ2[6:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
DIVP2[6:0]DIVN2[8:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bits 30:24 DIVR2[6:0] : PLL2 DIVR division factor

Set and reset by software to control the frequency of the pll2_r_ck clock.

These bits can be written only when the PLL2 is disabled (PLL2ON = '0' and PLL2RDY = '0').

0000000: pll2_r_ck = vco2_ck

0000001: pll2_r_ck = vco2_ck / 2 (default after reset)

0000010: pll2_r_ck = vco2_ck / 3

0000011: pll2_r_ck = vco2_ck / 4

...

1111111: pll2_r_ck = vco2_ck / 128

Bit 23 Reserved, must be kept at reset value.

Bits 22:16 DIVQ2[6:0] : PLL2 DIVQ division factor

Set and reset by software to control the frequency of the pll2_q_ck clock.

These bits can be written only when the PLL2 is disabled (PLL2ON = '0' and PLL2RDY = '0').

0000000: pll2_q_ck = vco2_ck

0000001: pll2_q_ck = vco2_ck / 2 (default after reset)

0000010: pll2_q_ck = vco2_ck / 3

0000011: pll2_q_ck = vco2_ck / 4

...

1111111: pll2_q_ck = vco2_ck / 128

Bits 15:9 DIVP2[6:0] : PLL2 DIVP division factor

Set and reset by software to control the frequency of the pll2_p_ck clock.

These bits can be written only when the PLL2 is disabled (PLL2ON = '0' and PLL2RDY = '0').

0000000: pll2_p_ck = vco2_ck

0000001: pll2_p_ck = vco2_ck / 2 (default after reset)

0000010: pll2_p_ck = vco2_ck / 3

0000011: pll2_p_ck = vco2_ck / 4

...

1111111: pll2_p_ck = vco2_ck / 128

Bits 8:0 DIVN2[8:0] : Multiplication factor for PLL2 VCO

Set and reset by software to control the multiplication factor of the VCO.

These bits can be written only when the PLL is disabled (PLL2ON = '0' and PLL2RDY = '0').

Caution: The software has to set correctly these bits to insure that the VCO output frequency is between its valid frequency range, which is:

VCO output frequency = \( F_{ref2\_ck} \times DIVN2 \) , when fractional value 0 has been loaded into FRACN2, with

0x003: DIVN2 = 4

0x004: DIVN2 = 5

0x005: DIVN2 = 6

...

0x080: DIVN2 = 129 (default after reset)

...

0x1FF: DIVN2 = 512

Others: wrong configurations

9.7.15 RCC PLL2 fractional divider register (RCC_PLL2FRACR)

Address offset: 0x03C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
FRACN2[12:0]Res.Res.Res.
rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:16 Reserved, must be kept at reset value.

Bits 15:3 FRACN2[12:0] : Fractional part of the multiplication factor for PLL2 VCO

Set and reset by software to control the fractional part of the multiplication factor of the VCO.

These bits can be written at any time, allowing dynamic fine-tuning of the PLL2 VCO.

Caution: The software has to set correctly these bits to insure that the VCO output frequency is between its valid frequency range, which is:

VCO output frequency = \( F_{ref2\_ck} \times (DIVN2 + (FRACN2 / 2^{13})) \) , with

In order to change the FRACN value on-the-fly even if the PLL is enabled, the application has to proceed as follow:

Bits 2:0 Reserved, must be kept at reset value.

9.7.16 RCC PLL3 dividers configuration register (RCC_PLL3DIVR)

Address offset: 0x040

Reset value: 0x0101 0280

31302928272625242322212019181716
Res.DIVR3[6:0]Res.DIVQ3[6:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
DIVP3[6:0]DIVN3[8:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bits 30:24 DIVR3[6:0] : PLL3 DIVR division factor

Set and reset by software to control the frequency of the pll3_r_ck clock.

These bits can be written only when the PLL3 is disabled (PLL3ON = '0' and PLL3RDY = '0').

0000000: pll3_r_ck = vco3_ck

0000001: pll3_r_ck = vco3_ck / 2 (default after reset)

0000010: pll3_r_ck = vco3_ck / 3

0000011: pll3_r_ck = vco3_ck / 4

...

1111111: pll3_r_ck = vco3_ck / 128

Bit 23 Reserved, must be kept at reset value.

Bits 22:16 DIVQ3[6:0] : PLL3 DIVQ division factor

Set and reset by software to control the frequency of the pll3_q_ck clock.

These bits can be written only when the PLL3 is disabled (PLL3ON = '0' and PLL3RDY = '0').

0000000: pll3_q_ck = vco3_ck

0000001: pll3_q_ck = vco3_ck / 2 (default after reset)

0000010: pll3_q_ck = vco3_ck / 3

0000011: pll3_q_ck = vco3_ck / 4

...

1111111: pll3_q_ck = vco3_ck / 128

Bits 15:9 DIVP3[6:0] : PLL3 DIVP division factor

Set and reset by software to control the frequency of the pll3_p_ck clock.

These bits can be written only when the PLL3 is disabled (PLL3ON = '0' and PLL3RDY = '0').

0000000: pll3_p_ck = vco3_ck

0000001: pll3_p_ck = vco3_ck / 2 (default after reset)

0000010: pll3_p_ck = vco3_ck / 3

0000011: pll3_p_ck = vco3_ck / 4

...

1111111: pll3_p_ck = vco3_ck / 128

Bits 8:0 DIVN3[7:0] : Multiplication factor for PLL3 VCO

Set and reset by software to control the multiplication factor of the VCO.

These bits can be written only when the PLL is disabled (PLL3ON = '0' and PLL3RDY = '0').

Caution: The software has to set correctly these bits to insure that the VCO output frequency is between its valid frequency range, which is:

VCO output frequency = \( F_{\text{ref3\_ck}} \times \text{DIVN3} \) , when fractional value 0 has been loaded into FRACN3, with

0x003: DIVN3 = 4

0x004: DIVN3 = 5

0x005: DIVN3 = 6

...

0x080: DIVN3 = 129 (default after reset)

...

0x1FF: DIVN3 = 512

Others: wrong configurations

9.7.17 RCC PLL3 fractional divider register (RCC_PLL3FRACR)

Address offset: 0x044

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
FRACN3[12:0]Res.Res.Res.
rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:16 Reserved, must be kept at reset value.

Bits 15:3 FRACN3[12:0] : Fractional part of the multiplication factor for PLL3 VCO

Set and reset by software to control the fractional part of the multiplication factor of the VCO.
These bits can be written at any time, allowing dynamic fine-tuning of the PLL3 VCO.

Caution: The software has to set correctly these bits to insure that the VCO output frequency is between its valid frequency range, which is:

VCO output frequency = \( F_{ref3\_ck} \times (DIVN3 + (FRACN3 / 2^{13})) \) , with

In order to change the FRACN value on-the-fly even if the PLL is enabled, the application has to proceed as follow:

Bits 2:0 Reserved, must be kept at reset value.

9.7.18 RCC domain 1 kernel clock configuration register (RCC_D1CCIPR)

Address offset: 0x04C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.CKPERSEL[1:0] (1)Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMCSEL (1)
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.DSISEL (1)Res.Res.QSPISEL[1:0] (1)Res.Res.Res.Res.FMCSEL[1:0] (1)
rwrwrwrw
  1. Changing the clock source on-the-fly is allowed and will not generate any timing violation. However the user has to make use that both the previous and the new clock sources are present during the switching, and during the whole transition time. Please refer to Section : Clock switches and gating .

Bits 31:30 Reserved, must be kept at reset value.

Bits 29:28 CKPERSEL[1:0] : per_ck clock source selection

Bits 27:17 Reserved, must be kept at reset value.

Bit 16 SDMMCSEL : SDMMC kernel clock source selection

Bits 15:9 Reserved, must be kept at reset value.

Bit 8 DSISEL : DSI kernel clock source selection

Bits 7:6 Reserved, must be kept at reset value.

Bits 5:4 QSPISEL[1:0] : QUADSPI kernel clock source selection

Bits 3:2 Reserved, must be kept at reset value.

Bits 1:0 FMCSEL[1:0] : FMC kernel clock source selection

9.7.19 RCC domain 2 kernel clock configuration register (RCC_D2CCIP1R)

Address offset: 0x050

Reset value: 0x0000 0000

31302928272625242322212019181716
SWPSEL (1)Res.FDCANSEL[1:0] (1)Res.Res.Res.DFSDM1SEL (1)Res.Res.SPDIFSEL[1:0] (1)Res.SPI45SEL[2:0] (1)
rwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.SPI123SEL[2:0] (1)Res.Res.Res.SAI23SEL[2:0] (1)Res.Res.Res.SAI1SEL[2:0] (1)
rwrwrwrwrwrwrwrwrw
  1. 1. Changing the clock source on-the-fly is allowed and will not generate any timing violation. However the user has to make sure that both the previous and the new clock sources are present during the switching, and for the whole transition time. Please refer to Section : Clock switches and gating .

Bit 31 SWPSEL : SWPMI kernel clock source selection

Set and reset by software.

0: pclk is selected as SWPMI kernel clock (default after reset)

1: hsi_ker_ck clock is selected as SWPMI kernel clock

Bit 30 Reserved, must be kept at reset value.

Bits 29:28 FDCANSEL : FDCAN kernel clock source selection

Set and reset by software.

00: hse_ck clock is selected as FDCAN kernel clock (default after reset)

01: pll1_q_ck clock is selected as FDCAN kernel clock

10: pll2_q_ck clock is selected as FDCAN kernel clock

11: reserved, the kernel clock is disabled

Bits 27:25 Reserved, must be kept at reset value.

Bit 24 DFSDM1SEL : DFSDM1 kernel CIk clock source selection

Set and reset by software.

Note: the DFSDM1 Aclk Clock Source Selection is done by SAI1SEL.

0: rcc_pclk2 is selected as DFSDM1 CIk kernel clock (default after reset)

1: sys_ck clock is selected as DFSDM1 CIk kernel clock

Bits 23:22 Reserved, must be kept at reset value.

Bits 21:20 SPDIFSEL[1:0] : SPDIFRX kernel clock source selection

00: pll1_q_ck clock selected as SPDIFRX kernel clock (default after reset)

01: pll2_r_ck clock selected as SPDIFRX kernel clock

10: pll3_r_ck clock selected as SPDIFRX kernel clock

11: hsi_ker_ck clock selected as SPDIFRX kernel clock

Bit 19 Reserved, must be kept at reset value.

Bits 18:16 SPI45SEL[2:0] : SPI4 and 5 kernel clock source selection

Set and reset by software.

000: APB clock is selected as kernel clock (default after reset)

001: pll2_q_ck clock is selected as kernel clock

010: pll3_q_ck clock is selected as kernel clock

011: hsi_ker_ck clock is selected as kernel clock

100: csi_ker_ck clock is selected as kernel clock

101: hse_ck clock is selected as kernel clock

others: reserved, the kernel clock is disabled

Bit 15 Reserved, must be kept at reset value.

Bits 14:12 SPI123SEL[2:0] : SPI/I2S1,2 and 3 kernel clock source selection

Set and reset by software.

Caution: If the selected clock is the external clock and this clock is stopped, it will not be possible to switch to another clock. Refer to Section : Clock switches and gating for additional information.

000: pll1_q_ck clock selected as SPI/I2S1,2 and 3 kernel clock (default after reset)

001: pll2_p_ck clock selected as SPI/I2S1,2 and 3 kernel clock

010: pll3_p_ck clock selected as SPI/I2S1,2 and 3 kernel clock

011: I2S_CKIN clock selected as SPI/I2S1,2 and 3 kernel clock

100: per_ck clock selected as SPI/I2S1,2 and 3 kernel clock

others: reserved, the kernel clock is disabled

Note: I2S_CKIN is an external clock taken from a pin.

Bits 11:9 Reserved, must be kept at reset value.

Bits 8:6 SAI23SEL[2:0] : SAI2 and SAI3 kernel clock source selection

Set and reset by software.

Caution: If the selected clock is the external clock and this clock is stopped, it will not be possible to switch to another clock. Refer to Section : Clock switches and gating for additional information.

000: pll1_q_ck clock selected as SAI2 and SAI3 kernel clock (default after reset)

001: pll2_p_ck clock selected as SAI2 and SAI3 kernel clock

010: pll3_p_ck clock selected as SAI2 and SAI3 kernel clock

011: I2S_CKIN clock selected as SAI2 and SAI3 kernel clock

100: per_ck clock selected as SAI2 and SAI3 kernel clock

others: reserved, the kernel clock is disabled

Note: I2S_CKIN is an external clock taken from a pin.

Bits 5:3 Reserved, must be kept at reset value.

Bits 2:0 SAI1SEL[2:0] : SAI1 and DFSDM1 kernel Aclk clock source selection

Set and reset by software.

Caution: If the selected clock is the external clock and this clock is stopped, it will not be possible to switch to another clock. Refer to Section : Clock switches and gating for additional information.

Note: DFSDM1 Clock Source Selection is done by DFSDM1SEL.

000: pll1_q_ck clock selected as SAI1 and DFSDM1 Aclk kernel clock (default after reset)

001: pll2_p_ck clock selected as SAI1 and DFSDM1 Aclk kernel clock

010: pll3_p_ck clock selected as SAI1 and DFSDM1 Aclk kernel clock

011: I2S_CKIN clock selected as SAI1 and DFSDM1 Aclk kernel clock

100: per_ck clock selected as SAI1 and DFSDM1 Aclk kernel clock

others: reserved, the kernel clock is disabled

Note: I2S_CKIN is an external clock taken from a pin.

9.7.20 RCC domain 2 kernel clock configuration register (RCC_D2CCIP2R)

Address offset: 0x054

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.LPTIM1SEL[2:0] (1)Res.Res.Res.Res.CECSEL[1:0] (1)USBSEL[1:0] (1)Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.I2C123SEL[1:0] (1)Res.Res.RNGSEL[1:0] (1)Res.Res.USART16SEL[2:0] (1)USART234578SEL[2:0] (1)
rwrwrwrwrwrwrwrwrwrw
  1. Changing the clock source on-the-fly is allowed and will not generate any timing violation. However the user has to make sure that both the previous and the new clock sources are present during the switching, and for the whole transition time. Please refer to Section : Clock switches and gating .

Bit 31 Reserved, must be kept at reset value.

Bits 30:28 LPTIM1SEL[2:0] : LPTIM1 kernel clock source selection

Set and reset by software.

000: rcc_pclk1 clock selected as kernel peripheral clock (default after reset)

001: pll2_p_ck clock selected as kernel peripheral clock

010: pll3_r_ck clock selected as kernel peripheral clock

011: lse_ck clock selected as kernel peripheral clock

100: lsi_ck clock selected as kernel peripheral clock

101: per_ck clock selected as kernel peripheral clock

others: reserved, the kernel clock is disabled

Bits 27:24 Reserved, must be kept at reset value.

Bits 23:22 CECSEL[1:0] : HDMI-CEC kernel clock source selection

Set and reset by software.

00: lse_ck clock is selected as kernel clock (default after reset)

01: lsi_ck clock is selected as kernel clock

10: csi_ker_ck divided by 122 is selected as kernel clock

11: reserved, the kernel clock is disabled

Bits 21:20 USBSEL[1:0] : USBOTG 1 and 2 kernel clock source selection

Set and reset by software.

00: Disable the kernel clock (default after reset)

01: pll1_q_ck clock is selected as kernel clock

10: pll3_q_ck clock is selected as kernel clock

11: hsi48_ck clock is selected as kernel clock

Bits 19:14 Reserved, must be kept at reset value.

Bits 13:12 I2C123SEL[1:0] : I2C1,2,3 kernel clock source selection

Set and reset by software.

00: rcc_pclk1 clock is selected as kernel clock (default after reset)

01: pll3_r_ck clock is selected as kernel clock

10: hsi_ker_ck clock is selected as kernel clock

11: csi_ker_ck clock is selected as kernel clock

Bits 11:10 Reserved, must be kept at reset value.

Bits 9:8 RNGSEL[1:0] : RNG kernel clock source selection

Set and reset by software.

00: hsi48_ck clock is selected as kernel clock (default after reset)

01: pll1_q_ck clock is selected as kernel clock

10: lse_ck clock is selected as kernel clock

11: lsi_ck clock is selected as kernel clock

Bits 7:6 Reserved, must be kept at reset value.

Bits 5:3 USART16SEL[2:0] : USART1 and 6 kernel clock source selection

Set and reset by software.

000: rcc_pclk2 clock is selected as kernel clock (default after reset)

001: pll2_q_ck clock is selected as kernel clock

010: pll3_q_ck clock is selected as kernel clock

011: hsi_ker_ck clock is selected as kernel clock

100: csi_ker_ck clock is selected as kernel clock

101: lse_ck clock is selected as kernel clock

others: reserved, the kernel clock is disabled

Bits 2:0 USART234578SEL[2:0] : USART2/3, UART4,5, 7/8 (APB1) kernel clock source selection

Set and reset by software.

000: rcc_pclk1 clock is selected as kernel clock (default after reset)

001: pll2_q_ck clock is selected as kernel clock

010: pll3_q_ck clock is selected as kernel clock

011: hsi_ker_ck clock is selected as kernel clock

100: csi_ker_ck clock is selected as kernel clock

101: lse_ck clock is selected as kernel clock

others: reserved, the kernel clock is disabled

9.7.21 RCC domain 3 kernel clock configuration register (RCC_D3CCIPR)

Address offset: 0x058

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.SPI6SEL[2:0] (1)Res.SAI4BSEL[2:0] (1)SAI4ASEL[2:0] (1)Res.Res.Res.ADCSEL[1:0] (1)
rwrwrwrwrwrwrwrwrwrwrw
1514131211rw76543210
LPTIM345SEL[2:0] (1)LPTIM2SEL[2:0] (1)I2C4SEL[1:0] (1)Res.Res.Res.Res.Res.LPUART1SEL[2:0] (1)
rwrwrwrwrwrwrwrwrwrwrw
  1. Changing the clock source on-the-fly is allowed, and will not generate any timing violation. However the user has to make sure that both the previous and the new clock sources are present during the switching, and for the whole transition time. Please refer to Section : Clock switches and gating .

Bit 31 Reserved, must be kept at reset value.

Bits 30:28 SPI6SEL[2:0] : SPI6 kernel clock source selection

Set and reset by software.

000: rcc_pclk4 clock selected as kernel peripheral clock (default after reset)
001: pll2_q_ck clock selected as kernel peripheral clock
010: pll3_q_ck clock selected as kernel peripheral clock
011: hsi_ker_ck clock selected as kernel peripheral clock
100: csi_ker_ck clock selected as kernel peripheral clock
101: hse_ck clock selected as kernel peripheral clock
others: reserved, the kernel clock is disabled

Bit 27 Reserved, must be kept at reset value.

Bits 26:24 SAI4BSEL[2:0] : Sub-Block B of SAI4 kernel clock source selection

Set and reset by software.

Caution: If the selected clock is the external clock and this clock is stopped, it will not be possible to switch to another clock. Refer to Section : Clock switches and gating for additional information.

000: pll1_q_ck clock selected as kernel peripheral clock (default after reset)
001: pll2_p_ck clock selected as kernel peripheral clock
010: pll3_p_ck clock selected as kernel peripheral clock
011: I2S_CKIN clock selected as kernel peripheral clock
100: per_ck clock selected as kernel peripheral clock
others: reserved, the kernel clock is disabled

Note: I2S_CKIN is an external clock taken from a pin.

Bits 23:21 SAI4ASEL[2:0] : Sub-Block A of SAI4 kernel clock source selection

Set and reset by software.

Caution: If the selected clock is the external clock and this clock is stopped, it will not be possible to switch to another clock. Refer to Section : Clock switches and gating for additional information.

000: pll1_q_ck clock selected as kernel peripheral clock (default after reset)

001: pll2_p_ck clock selected as kernel peripheral clock

010: pll3_p_ck clock selected as kernel peripheral clock

011: I2S_CKIN clock selected as kernel peripheral clock

100: per_ck clock selected as kernel peripheral clock

others: reserved, the kernel clock is disabled

Note: I2S_CKIN is an external clock taken from a pin.

Bits 20:18 Reserved, must be kept at reset value.

Bits 17:16 ADCSEL[1:0] : SAR ADC kernel clock source selection

Set and reset by software.

00: pll2_p_ck clock selected as kernel peripheral clock (default after reset)

01: pll3_r_ck clock selected as kernel peripheral clock

10: per_ck clock selected as kernel peripheral clock

others: reserved, the kernel clock is disabled

Bits 15:13 LPTIM345SEL[2:0] : LPTIM3,4,5 kernel clock source selection

Set and reset by software.

000: rcc_pclk4 clock selected as kernel peripheral clock (default after reset)

001: pll2_p_ck clock selected as kernel peripheral clock

010: pll3_r_ck clock selected as kernel peripheral clock

011: lse_ck clock selected as kernel peripheral clock

100: lsi_ck clock selected as kernel peripheral clock

101: per_ck clock selected as kernel peripheral clock

others: reserved, the kernel clock is disabled

Bits 12:10 LPTIM2SEL[2:0] : LPTIM2 kernel clock source selection

Set and reset by software.

000: rcc_pclk4 clock selected as kernel peripheral clock (default after reset)

001: pll2_p_ck clock selected as kernel peripheral clock

010: pll3_r_ck clock selected as kernel peripheral clock

011: lse_ck clock selected as kernel peripheral clock

100: lsi_ck clock selected as kernel peripheral clock

101: per_ck clock selected as kernel peripheral clock

others: reserved, the kernel clock is disabled

Bits 9:8 I2C4SEL[1:0] : I2C4 kernel clock source selection

Set and reset by software.

00: rcc_pclk4 clock selected as kernel peripheral clock (default after reset)

01: pll3_r_ck clock selected as kernel peripheral clock

10: hsi_ker_ck clock selected as kernel peripheral clock

11: csi_ker_ck clock selected as kernel peripheral clock

Bits 7:3 Reserved, must be kept at reset value.

Bits 2:0 LPUART1SEL[2:0] : LPUART1 kernel clock source selection

Set and reset by software.

000: rcc_pclk_d3 clock is selected as kernel peripheral clock (default after reset)

001: pll2_q_ck clock is selected as kernel peripheral clock

010: pll3_q_ck clock is selected as kernel peripheral clock

011: hsi_ker_ck clock is selected as kernel peripheral clock

100: csi_ker_ck clock is selected as kernel peripheral clock

101: lse_ck clock is selected as kernel peripheral clock

others: reserved, the kernel clock is disabled

9.7.22 RCC clock source interrupt enable register (RCC_CIER)

Address offset: 0x060

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.LSECSSIEPLL3RDYIEPLL2RDYIEPLL1RDYIEHSI48RDYIECSIRDYIEHSERDYIEHSIRDYIELSERDYIELSIRDYIE
rwrwrwrwrwrwrwrwrwrw

Bits 31:10 Reserved, must be kept at reset value.

Bit 9 LSECSSIE : LSE clock security system Interrupt Enable

Set and reset by software to enable/disable interrupt caused by the Clock Security System on external 32 kHz oscillator.

0: LSE CSS interrupt disabled (default after reset)

1: LSE CSS interrupt enabled

Bit 8 PLL3RDYIE : PLL3 ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by PLL3 lock.

0: PLL3 lock interrupt disabled (default after reset)

1: PLL3 lock interrupt enabled

Bit 7 PLL2RDYIE : PLL2 ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by PLL2 lock.

0: PLL2 lock interrupt disabled (default after reset)

1: PLL2 lock interrupt enabled

Bit 6 PLL1RDYIE : PLL1 ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by PLL1 lock.

0: PLL1 lock interrupt disabled (default after reset)

1: PLL1 lock interrupt enabled

Bit 5 HSI48RDYIE : HSI48 ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by the HSI48 oscillator stabilization.

0: HSI48 ready interrupt disabled (default after reset)

1: HSI48 ready interrupt enabled

Bit 4 CSIRDYIE : CSI ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by the CSI oscillator stabilization.

0: CSI ready interrupt disabled (default after reset)

1: CSI ready interrupt enabled

Bit 3 HSERDYIE : HSE ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by the HSE oscillator stabilization.

0: HSE ready interrupt disabled (default after reset)

1: HSE ready interrupt enabled

Bit 2 HSIRDYIE: HSI ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by the HSI oscillator stabilization.

0: HSI ready interrupt disabled (default after reset)

1: HSI ready interrupt enabled

Bit 1 LSERDYIE: LSE ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by the LSE oscillator stabilization.

0: LSE ready interrupt disabled (default after reset)

1: LSE ready interrupt enabled

Bit 0 LSIRDYIE: LSI ready Interrupt Enable

Set and reset by software to enable/disable interrupt caused by the LSI oscillator stabilization.

0: LSI ready interrupt disabled (default after reset)

1: LSI ready interrupt enabled

9.7.23 RCC clock source interrupt flag register (RCC_CIFR)

Address offset: 0x64

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.HSECSSFLSECSSFPLL3RDYFPLL2RDYFPLL1RDYFHSI48RDYFCSIRDYFHSERDYFHSIRDYFLSERDYFLSIRDYF
rrrrrrrrrrr

Bits 31:11 Reserved, must be kept at reset value.

Bit 10 HSECSSF : HSE clock security system Interrupt Flag

Reset by software by writing HSECSSC bit.

Set by hardware in case of HSE clock failure.

0: No clock security interrupt caused by HSE clock failure (default after reset)

1: Clock security interrupt caused by HSE clock failure

Bit 9 LSECSSF : LSE clock security system Interrupt Flag

Reset by software by writing LSECSSC bit.

Set by hardware when a failure is detected on the external 32 kHz oscillator and LSECSSIE is set.

0: No failure detected on the external 32 kHz oscillator (default after reset)

1: A failure is detected on the external 32 kHz oscillator

Bit 8 PLL3RDYF : PLL3 ready Interrupt Flag

Reset by software by writing PLL3RDYC bit.

Set by hardware when the PLL3 locks and PLL3RDYIE is set.

0: No clock ready interrupt caused by PLL3 lock (default after reset)

1: Clock ready interrupt caused by PLL3 lock

Bit 7 PLL2RDYF : PLL2 ready Interrupt Flag

Reset by software by writing PLL2RDYC bit.

Set by hardware when the PLL2 locks and PLL2RDYIE is set.

0: No clock ready interrupt caused by PLL2 lock (default after reset)

1: Clock ready interrupt caused by PLL2 lock

Bit 6 PLL1RDYF : PLL1 ready Interrupt Flag

Reset by software by writing PLL1RDYC bit.

Set by hardware when the PLL1 locks and PLL1RDYIE is set.

0: No clock ready interrupt caused by PLL1 lock (default after reset)

1: Clock ready interrupt caused by PLL1 lock

Bit 5 HSI48RDYF : HSI48 ready Interrupt Flag

Reset by software by writing HSI48RDYC bit.

Set by hardware when the HSI48 clock becomes stable and HSI48RDYIE is set.

0: No clock ready interrupt caused by the HSI48 oscillator (default after reset)

1: Clock ready interrupt caused by the HSI48 oscillator

Bit 4 CSIRDYF: CSI ready Interrupt Flag

Reset by software by writing CSIRDYC bit.

Set by hardware when the CSI clock becomes stable and CSIRDYIE is set.

0: No clock ready interrupt caused by the CSI (default after reset)

1: Clock ready interrupt caused by the CSI

Bit 3 HSERDYF: HSE ready Interrupt Flag

Reset by software by writing HSERDYC bit.

Set by hardware when the HSE clock becomes stable and HSERDYIE is set.

0: No clock ready interrupt caused by the HSE (default after reset)

1: Clock ready interrupt caused by the HSE

Bit 2 HSIRDYF: HSI ready Interrupt Flag

Reset by software by writing HSIRDYC bit.

Set by hardware when the HSI clock becomes stable and HSIRDYIE is set.

0: No clock ready interrupt caused by the HSI (default after reset)

1: Clock ready interrupt caused by the HSI

Bit 1 LSERDYF: LSE ready Interrupt Flag

Reset by software by writing LSERDYC bit.

Set by hardware when the LSE clock becomes stable and LSERDYIE is set.

0: No clock ready interrupt caused by the LSE (default after reset)

1: Clock ready interrupt caused by the LSE

Bit 0 LSIRDYF: LSI ready Interrupt Flag

Reset by software by writing LSIRDYC bit.

Set by hardware when the LSI clock becomes stable and LSIRDYIE is set.

0: No clock ready interrupt caused by the LSI (default after reset)

1: Clock ready interrupt caused by the LSI

9.7.24 RCC clock source interrupt clear register (RCC_CICR)

Address offset: 0x68

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.HSECSSCLSECSSCPLL3RDYCPLL2RDYCPLL1RDYCHSI48RDYCCSIIRDYCHSERDYCHSIRDYCLSERDYCLSIRDYC
rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1

Bits 31:11 Reserved, must be kept at reset value.

Bit 10 HSECSSC : HSE clock security system Interrupt Clear

Set by software to clear HSECSSF.

Reset by hardware when clear done.

0: HSECSSF no effect (default after reset)

1: HSECSSF cleared

Bit 9 LSECSSC : LSE clock security system Interrupt Clear

Set by software to clear LSECSSF.

Reset by hardware when clear done.

0: LSECSSF no effect (default after reset)

1: LSECSSF cleared

Bit 8 PLL3RDYC : PLL3 ready Interrupt Clear

Set by software to clear PLL3RDYF.

Reset by hardware when clear done.

0: PLL3RDYF no effect (default after reset)

1: PLL3RDYF cleared

Bit 7 PLL2RDYC : PLL2 ready Interrupt Clear

Set by software to clear PLL2RDYF.

Reset by hardware when clear done.

0: PLL2RDYF no effect (default after reset)

1: PLL2RDYF cleared

Bit 6 PLL1RDYC : PLL1 ready Interrupt Clear

Set by software to clear PLL1RDYF.

Reset by hardware when clear done.

0: PLL1RDYF no effect (default after reset)

1: PLL1RDYF cleared

Bit 5 HSI48RDYC : HSI48 ready Interrupt Clear

Set by software to clear HSI48RDYF.

Reset by hardware when clear done.

0: HSI48RDYF no effect (default after reset)

1: HSI48RDYF cleared

  1. Bit 4 CSIRDYC : CSI ready Interrupt Clear
    Set by software to clear CSIRDYF.
    Reset by hardware when clear done.
    0: CSIRDYF no effect (default after reset)
    1: CSIRDYF cleared
  2. Bit 3 HSERDYC : HSE ready Interrupt Clear
    Set by software to clear HSERDYF.
    Reset by hardware when clear done.
    0: HSERDYF no effect (default after reset)
    1: HSERDYF cleared
  3. Bit 2 HSIRDYC : HSI ready Interrupt Clear
    Set by software to clear HSIRDYF.
    Reset by hardware when clear done.
    0: HSIRDYF no effect (default after reset)
    1: HSIRDYF cleared
  4. Bit 1 LSERDYC : LSE ready Interrupt Clear
    Set by software to clear LSERDYF.
    Reset by hardware when clear done.
    0: LSERDYF no effect (default after reset)
    1: LSERDYF cleared
  5. Bit 0 LSIRDYC : LSI ready Interrupt Clear
    Set by software to clear LSIRDYF.
    Reset by hardware when clear done.
    0: LSIRDYF no effect (default after reset)
    1: LSIRDYF cleared

9.7.25 RCC Backup domain control register (RCC_BDCR)

Address offset: 0x070

Reset value: 0x0000 0000, reset by Backup domain reset.

Access: \( 0 \leq \text{wait state} \leq 7 \) , word, half-word and byte access. Wait states are inserted in case of successive accesses to this register.

After a system reset, the RCC_BDCR register is write-protected. To modify this register, the DBP bit in the PWR CPU1 control register (PWR_CPU1CR) has to be set to '1'.

RCC_BDCR bits are only reset after a backup domain reset (see Section 9.4.6: Backup domain reset ). Any other internal or external reset will not have any effect on these bits.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BDRST
rw
1514131211109876543210
RTCENRes.Res.Res.Res.Res.RTCSEL[1:0]Res.LSECSSDLSECSSONLSEDRV[1:0]LSEBYPLSERDYLSEON
rwrworrsrwrwrrw

Bits 31:17 Reserved, must be kept at reset value.

Bit 16 BDRST : Backup domain software reset

Bit 15 RTCEN : RTC clock enable

Bits 14:10 Reserved, must be kept at reset value.

Bits 9:8 RTCSEL[1:0] : RTC clock source selection

Set by software to select the clock source for the RTC. These bits can be written only one time (except in case of failure detection on LSE). These bits must be written before LSECSSON is enabled. The BDRST bit can be used to reset them, then it can be written one time again.

If HSE is selected as RTC clock: this clock is lost when the system is in Stop mode or in case of a pin reset (NRST).

Bit 7 Reserved, must be kept at reset value.

Bit 6 LSECSSD : LSE clock security system failure detection

Set by hardware to indicate when a failure has been detected by the Clock Security System on the external 32 kHz oscillator.

0: No failure detected on 32 kHz oscillator (default after backup domain reset)

1: Failure detected on 32 kHz oscillator

Bit 5 LSECSSON : LSE clock security system enable

Set by software to enable the Clock Security System on 32 kHz oscillator.

LSECSSON must be enabled after LSE is enabled (LSEON enabled) and ready (LSERDY set by hardware), and after RTCSEL is selected.

Once enabled this bit cannot be disabled, except after a LSE failure detection (LSECSSD = '1'). In that case the software must disable LSECSSON.

0: Clock Security System on 32 kHz oscillator OFF (default after backup domain reset)

1: Clock Security System on 32 kHz oscillator ON

Bits 4:3 LSEDRV[1:0] : LSE oscillator driving capability

Set by software to select the driving capability of the LSE oscillator.

00: Lowest drive (default after backup domain reset)

01: Medium low drive

10: Medium high drive

11: Highest drive

Note: The driving capability cannot be changed after LSEON has been set to 1.

Bit 2 LSEBYP : LSE oscillator bypass

Set and reset by software to bypass oscillator in debug mode. This bit must not be written when the LSE is enabled (by LSEON) or ready (LSERDY = '1')

0: LSE oscillator not bypassed (default after backup domain reset)

1: LSE oscillator bypassed

Bit 1 LSERDY : LSE oscillator ready

Set and reset by hardware to indicate when the LSE is stable. This bit needs 6 cycles of lse_ck clock to fall down after LSEON has been set to '0'.

0: LSE oscillator not ready (default after backup domain reset)

1: LSE oscillator ready

Bit 0 LSEON : LSE oscillator enabled

Set and reset by software.

0: LSE oscillator OFF (default after backup domain reset)

1: LSE oscillator ON

9.7.26 RCC clock control and status register (RCC_CSR)

Address offset: 0x074

Reset value: 0x0000 0000

Access: 0 ≤ wait state ≤ 7, word, half-word and byte access

Wait states are inserted in case of successive accesses to this register.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LSIRDYLSION
rnw

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 LSIRDY: LSI oscillator ready

Set and reset by hardware to indicate when the Low Speed Internal RC oscillator is stable.

This bit needs 3 cycles of lsi_ck clock to fall down after LSION has been set to '0'.

This bit can be set even when LSION is not enabled if there is a request for LSI clock by the Clock Security System on LSE or by the Low Speed Watchdog or by the RTC.

0: LSI clock is not ready (default after reset)

1: LSI clock is ready

Bit 0 LSION: LSI oscillator enable

Set and reset by software.

0: LSI is OFF (default after reset)

1: LSI is ON

9.7.27 RCC AHB3 reset register (RCC_AHB3RSTR)

Address offset: 0x07C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1RST
nw
1514131211109876543210
Res.QSPIRSTRes.FMCRSTRes.Res.Res.Res.Res.Res.JPGDECRSTDMA2DRSTRes.Res.Res.MDMARST
nwnwnwnwnw

Bits 31:17 Reserved, must be kept at reset value.

Bit 16 SDMMC1RST : SDMMC1 and SDMMC1 delay block reset

Set and reset by software.

0: does not reset SDMMC1 and SDMMC1 Delay block (default after reset)

1: resets SDMMC1 and SDMMC1 Delay block

Note: When the master is reset, all the slaves for which an access from this master is ongoing must be reset as well.

Bit 15 Reserved, must be kept at reset value.

Bit 14 QSPIRST : QUADSPI and QUADSPI delay block reset

Set and reset by software.

0: does not reset QUADSPI and QUADSPI Delay block (default after reset)

1: resets QUADSPI and QUADSPI Delay block

Bit 13 Reserved, must be kept at reset value.

Bit 12 FMCRST : FMC block reset

Set and reset by software.

0: does not reset FMC block (default after reset)

1: resets FMC block

Bits 11:6 Reserved, must be kept at reset value.

Bit 5 JPGDECRST : JPGDEC block reset

Set and reset by software.

0: does not reset JPGDEC block (default after reset)

1: resets JPGDEC block

Bit 4 DMA2DRST : DMA2D block reset

Set and reset by software.

0: does not reset DMA2D block (default after reset)

1: resets DMA2D block

Note: When the master is reset, all the slaves for which an access from this master is ongoing must be reset as well.

Bits 3:1 Reserved, must be kept at reset value.

Bit 0 MDMARST : MDMA block reset

Set and reset by software.

0: does not reset MDMA block (default after reset)

1: resets MDMA block

Note: When the master is reset, all the slaves for which an access from this master is ongoing must be reset as well.

9.7.28 RCC AHB1 peripheral reset register(RCC_AHB1RSTR)

Address offset: 0x080

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.USB2OTGRSTRes.USB1OTGRSTRes.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
ETH1MACRSTARTRSTRes.Res.Res.Res.Res.Res.Res.Res.ADC12RSTRes.Res.Res.DMA2RSTDMA1RST
nwnwnwnwnw

Bits 31:28 Reserved, must be kept at reset value.

Bit 27 USB2OTGRST : USB2OTG (OTG_HS2) block reset

Set and reset by software.

0: does not reset USB2OTG block (default after reset)

1: resets USB2OTG block

Bit 26 Reserved, must be kept at reset value.

Bit 25 USB1OTGRST : USB1OTG (OTG_HS1) block reset

Set and reset by software.

0: does not reset USB1OTG block (default after reset)

1: resets USB1OTG block

Bits 24:16 Reserved, must be kept at reset value.

Bit 15 ETH1MACRST : ETH1MAC block reset

Set and reset by software.

0: does not reset ETH1MAC block (default after reset)

1: resets ETH1MAC block

Bit 14 ARTRST : ART block reset

Set and reset by software.

0: does not reset ART block (default after reset)

1: resets ART block

Note: Do not set this bit while executing from a memory on which the ART is configured to fetch instructions.

Bits 13:6 Reserved, must be kept at reset value.

Bit 5 ADC12RST : ADC1and 2 block reset

Set and reset by software.

0: does not reset ADC1 and 2 block (default after reset)

1: resets ADC1and 2 block

Bits 4:2 Reserved, must be kept at reset value.

Bit 1 DMA2RST : DMA2 block reset

Set and reset by software.

0: does not reset DMA2 block (default after reset)

1: resets DMA2 block

Bit 0 DMA1RST : DMA1 block reset

Set and reset by software.

0: does not reset DMA1 block (default after reset)

1: resets DMA1 block

9.7.29 RCC AHB2 peripheral reset register (RCC_AHB2RSTR)

Address offset: 0x084

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.SDMMC2RSTRes.Res.RNGRSTHASHRSTCRYPTRSTRes.Res.Res.CAMITFRST
nwnwnwnwnw

Bits 31:10 Reserved, must be kept at reset value.

Bit 9 SDMMC2RST : SDMMC2 and SDMMC2 Delay block reset

Set and reset by software.

0: does not reset SDMMC2 and SDMMC2 Delay block (default after reset)

1: resets SDMMC2 and SDMMC2 Delay block

Bits 8:7 Reserved, must be kept at reset value.

Bit 6 RNGRST : Random Number Generator block reset

Set and reset by software.

0: does not reset RNG block (default after reset)

1: resets RNG block

Bit 5 HASHRST : Hash block reset

Set and reset by software.

0: does not reset hash block (default after reset)

1: resets hash block

Bit 4 CRYPTRST : Cryptography block reset

Set and reset by software.

0: does not reset cryptography block (default after reset)

1: resets cryptography block

Bits 3:1 Reserved, must be kept at reset value.

Bit 0 CAMITFRST : CAMITF block reset

Set and reset by software.

0: does not reset the CAMITF block (default after reset)

1: resets the CAMITF block

9.7.30 RCC AHB4 peripheral reset register (RCC_AHB4RSTR)

Address offset: 0x088

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.HSEMRSTADC3RSTRes.Res.BDMARSTRes.CRCRSTRes.Res.Res.
rwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.GPIOKRSTGPIOJRSTGPIOIRSTGPIOHRSTGPIOGRSTGPIOFRSTGPIOERSTGPIODRSTGPIOCRSTGPIOBRSTGPIOARST
rwrwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bit 25 HSEMRST : HSEM block reset

Set and reset by software.

0: does not reset the HSEM block (default after reset)

1: resets the HSEM block

Bit 24 ADC3RST : ADC3 block reset

Set and reset by software.

0: does not reset the ADC3 block (default after reset)

1: resets the ADC3 block

Bits 23:22 Reserved, must be kept at reset value.

Bit 21 BDMARST : BDMA block reset

Set and reset by software.

0: does not reset the BDMA block (default after reset)

1: resets the BDMA block

Bit 20 Reserved, must be kept at reset value.

Bit 19 CRCRST : CRC block reset

Set and reset by software.

0: does not reset the CRC block (default after reset)

1: resets the CRC block

Bits 18:11 Reserved, must be kept at reset value.

Bit 10 GPIOKRST : GPIOK block reset

Set and reset by software.

0: does not reset the GPIOK block (default after reset)

1: resets the GPIOK block

Bit 9 GPIOJRST : GPIOJ block reset

Set and reset by software.

0: does not reset the GPIOJ block (default after reset)

1: resets the GPIOJ block

  1. Bit 8 GPIOIRST : GPIOI block reset
    Set and reset by software.
    0: does not reset the GPIOI block (default after reset)
    1: resets the GPIOI block
  2. Bit 7 GPIOHRST : GPIOH block reset
    Set and reset by software.
    0: does not reset the GPIOH block (default after reset)
    1: resets the GPIOH block
  3. Bit 6 GPIOGRST : GPIOG block reset
    Set and reset by software.
    0: does not reset the GPIOG block (default after reset)
    1: resets the GPIOG block
  4. Bit 5 GPIOFRST : GPIOF block reset
    Set and reset by software.
    0: does not reset the GPIOF block (default after reset)
    1: resets the GPIOF block
  5. Bit 4 GPIOERST : GPIOE block reset
    Set and reset by software.
    0: does not reset the GPIOE block (default after reset)
    1: resets the GPIOE block
  6. Bit 3 GPIODRST : GPIOD block reset
    Set and reset by software.
    0: does not reset the GPIOD block (default after reset)
    1: resets the GPIOD block
  7. Bit 2 GPIOCRST : GPIOC block reset
    Set and reset by software.
    0: does not reset the GPIOC block (default after reset)
    1: resets the GPIOC block
  8. Bit 1 GPIOBRST : GPIOB block reset
    Set and reset by software.
    0: does not reset the GPIOB block (default after reset)
    1: resets the GPIOB block
  9. Bit 0 GPIOARST : GPIOA block reset
    Set and reset by software.
    0: does not reset the GPIOA block (default after reset)
    1: resets the GPIOA block

9.7.31 RCC APB3 peripheral reset register (RCC_APB3RSTR)

Address offset: 0x08C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DSIRSTLTDCRSTRes.Res.Res.
rwrw

Bits 31:5 Reserved, must be kept at reset value.

Bit 4 DSIRST : DSI block reset

Set and reset by software.

0: does not reset the DSI block (default after reset)

1: resets the DSI block

Bit 3 LTDCRST : LTDC block reset

Set and reset by software.

0: does not reset the LTDC block (default after reset)

1: resets the LTDC block

Bits 2:0 Reserved, must be kept at reset value.

9.7.32 RCC APB1 peripheral reset register (RCC_APB1LRSTR)

Address offset: 0x090

Reset value: 0x0000 0000

31302928272625242322212019181716
UART8RSTUART7RSTDAC12RSTRes.CECRSTRes.Res.Res.I2C3RSTI2C2RSTI2C1RSTUART5RSTUART4RSTUSART3RSTUSART2RSTSPDIFRXRST
r/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/w

1514131211109876543210
SPI3RSTSPI2RSTRes.Res.Res.Res.LPTIM1RSTTIM14RSTTIM13RSTTIM12RSTTIM7RSTTIM6RSTTIM5RSTTIM4RSTTIM3RSTTIM2RST
r/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/w

Bit 31 UART8RST : UART8 block reset

Set and reset by software.

0: does not reset the UART8 block (default after reset)

1: resets the UART8 block

Bit 30 UART7RST : UART7 block reset

Set and reset by software.

0: does not reset the UART7 block (default after reset)

1: resets the UART7 block

Bit 29 DAC12RST : DAC1 and 2 Blocks Reset

Set and reset by software.

0: does not reset the DAC1 and 2 blocks (default after reset)

1: resets the DAC1 and 2 blocks

Bit 28 Reserved, must be kept at reset value.

Bit 27 CECRST : HDMI-CEC block reset

Set and reset by software.

0: does not reset the HDMI-CEC block (default after reset)

1: resets the HDMI-CEC block

Bits 26:24 Reserved, must be kept at reset value.

Bit 23 I2C3RST : I2C3 block reset

Set and reset by software.

0: does not reset the I2C3 block (default after reset)

1: resets the I2C3 block

Bit 22 I2C2RST : I2C2 block reset

Set and reset by software.

0: does not reset the I2C2 block (default after reset)

1: resets the I2C2 block

Bit 21 I2C1RST : I2C1 block reset

Set and reset by software.

0: does not reset the I2C1 block (default after reset)

1: resets the I2C1 block

Bit 20 UART5RST : UART5 block reset

Set and reset by software.

0: does not reset the UART5 block (default after reset)

1: resets the UART5 block

Bit 19 UART4RST : UART4 block reset

Set and reset by software.

0: does not reset the UART4 block (default after reset)

1: resets the UART4 block

Bit 18 USART3RST : USART3 block reset

Set and reset by software.

0: does not reset the USART3 block (default after reset)

1: resets the USART3 block

Bit 17 USART2RST : USART2 block reset

Set and reset by software.

0: does not reset the USART2 block (default after reset)

1: resets the USART2 block

Bit 16 SPDIFRXRST : SPDIFRX block reset

Set and reset by software.

0: does not reset the SPDIFRX block (default after reset)

1: resets the SPDIFRX block

Bit 15 SPI3RST : SPI3 block reset

Set and reset by software.

0: does not reset the SPI3 block (default after reset)

1: resets the SPI3 block

Bit 14 SPI2RST : SPI2 block reset

Set and reset by software.

0: does not reset the SPI2 block (default after reset)

1: resets the SPI2 block

Bits 13:10 Reserved, must be kept at reset value.

Bit 9 LPTIM1RST : LPTIM1 block reset

Set and reset by software.

0: does not reset the LPTIM1 block (default after reset)

1: resets the LPTIM1 block

Bit 8 TIM14RST : TIM14 block reset

Set and reset by software.

0: does not reset the TIM14 block (default after reset)

1: resets the TIM14 block

Bit 7 TIM13RST : TIM13 block reset

Set and reset by software.

0: does not reset the TIM13 block (default after reset)

1: resets the TIM13 block

  1. Bit 6 TIM12RST : TIM12 block reset
    Set and reset by software.
    0: does not reset the TIM12 block (default after reset)
    1: resets the TIM12 block
  2. Bit 5 TIM7RST : TIM7 block reset
    Set and reset by software.
    0: does not reset the TIM7 block (default after reset)
    1: resets the TIM7 block
  3. Bit 4 TIM6RST : TIM6 block reset
    Set and reset by software.
    0: does not reset the TIM6 block (default after reset)
    1: resets the TIM6 block
  4. Bit 3 TIM5RST : TIM5 block reset
    Set and reset by software.
    0: does not reset the TIM5 block (default after reset)
    1: resets the TIM5 block
  5. Bit 2 TIM4RST : TIM4 block reset
    Set and reset by software.
    0: does not reset the TIM4 block (default after reset)
    1: resets the TIM4 block
  6. Bit 1 TIM3RST : TIM3 block reset
    Set and reset by software.
    0: does not reset the TIM3 block (default after reset)
    1: resets the TIM3 block
  7. Bit 0 TIM2RST : TIM2 block reset
    Set and reset by software.
    0: does not reset the TIM2 block (default after reset)
    1: resets the TIM2 block

9.7.33 RCC APB1 peripheral reset register (RCC_APB1HRSTR)

Address offset: 0x094

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.FDCANRSTRes.Res.MDIOSRSTOPAMPRSTRes.SWPRSTCRSRSTRes.
rwrwrwrwrw

Bits 31:9 Reserved, must be kept at reset value.

Bit 8 FDCANRST : FDCAN block reset

Set and reset by software.

0: does not reset the FDCAN block (default after reset)

1: resets the FDCAN block

Bits 7:6 Reserved, must be kept at reset value.

Bit 5 MDIOSRST : MDIOS block reset

Set and reset by software.

0: does not reset the MDIOS block (default after reset)

1: resets the MDIOS block

Bit 4 OPAMPRST : OPAMP block reset

Set and reset by software.

0: does not reset the OPAMP block (default after reset)

1: resets the OPAMP block

Bit 3 Reserved, must be kept at reset value.

Bit 2 SWPRST : SWPMI block reset

Set and reset by software.

0: does not reset the SWPMI block (default after reset)

1: resets the SWPMI block

Bit 1 CRSRST : Clock Recovery System reset

Set and reset by software.

0: does not reset CRS (default after reset)

1: resets CRS

Bit 0 Reserved, must be kept at reset value.

9.7.34 RCC APB2 peripheral reset register (RCC_APB2RSTR)

Address offset: 0x098

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.HRTIMRSTDFSDM1RSTRes.Res.Res.SAI3RSTSAI2RSTSAI1RSTRes.SPI5RSTRes.TIM17RSTTIM16RSTTIM15RST
nwnwnwnwnwnwnwnwnw

1514131211109876543210
Res.Res.SPI4RSTSPI1RSTRes.Res.Res.Res.Res.Res.USART6RSTUSART1RSTRes.Res.TIM8RSTTIM1RST
nwnwnwnwnwnw

Bits 31:30 Reserved, must be kept at reset value.

Bit 29 HRTIMRST : HRTIM block reset

Set and reset by software.

0: does not reset the HRTIM block (default after reset)

1: resets the HRTIM block

Bit 28 DFSDM1RST : DFSDM1 block reset

Set and reset by software.

0: does not reset DFSDM1 block (default after reset)

1: resets DFSDM1 block

Bits 27:25 Reserved, must be kept at reset value.

Bit 24 SAI3RST : SAI3 block reset

Set and reset by software.

0: does not reset the SAI3 block (default after reset)

1: resets the SAI3 block

Bit 23 SAI2RST : SAI2 block reset

Set and reset by software.

0: does not reset the SAI2 block (default after reset)

1: resets the SAI2 block

Bit 22 SAI1RST : SAI1 block reset

Set and reset by software.

0: does not reset the SAI1 (default after reset)

1: resets the SAI1

Bit 21 Reserved, must be kept at reset value.

Bit 20 SPI5RST : SPI5 block reset

Set and reset by software.

0: does not reset the SPI5 block (default after reset)

1: resets the SPI5 block

Bit 19 Reserved, must be kept at reset value.

Bit 18 TIM17RST : TIM17 block reset

Set and reset by software.

0: does not reset the TIM17 block (default after reset)

1: resets the TIM17 block

Bit 17 TIM16RST : TIM16 block reset

Set and reset by software.

0: does not reset the TIM16 block (default after reset)

1: resets the TIM16 block

Bit 16 TIM15RST : TIM15 block reset

Set and reset by software.

0: does not reset the TIM15 block (default after reset)

1: resets the TIM15 block

Bits 15:14 Reserved, must be kept at reset value.

Bit 13 SPI4RST : SPI4 block reset

Set and reset by software.

0: does not reset the SPI4 block (default after reset)

1: resets the SPI4 block

Bit 12 SPI1RST : SPI1 block reset

Set and reset by software.

0: does not reset the SPI1 block (default after reset)

1: resets the SPI1 block

Bits 11:6 Reserved, must be kept at reset value.

Bit 5 USART6RST : USART6 block reset

Set and reset by software.

0: does not reset the USART6 block (default after reset)

1: resets the USART6 block

Bit 4 USART1RST : USART1 block reset

Set and reset by software.

0: does not reset the USART1 block (default after reset)

1: resets the USART1 block

Bits 3:2 Reserved, must be kept at reset value.

Bit 1 TIM8RST : TIM8 block reset

Set and reset by software.

0: does not reset the TIM8 block (default after reset)

1: resets the TIM8 block

Bit 0 TIM1RST : TIM1 block reset

Set and reset by software.

0: does not reset the TIM1 block (default after reset)

1: resets the TIM1 block

9.7.35 RCC APB4 peripheral reset register (RCC_APB4RSTR)

Address offset: 0x09C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4RSTRes.Res.Res.Res.Res.
rw
1514131211109876543210
VREFRSTCOMP12RSTRes.LPTIM5RSTLPTIM4RSTLPTIM3RSTLPTIM2RSTRes.I2C4RSTRes.SPI6RSTRes.LPUART1RSTRes.SYSCFGIRSTRes.
rwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bits 25:22 Reserved, must be kept at reset value.

Bit 21 SAI4RST : SAI4 block reset

Set and reset by software.

0: does not reset the SAI4 block (default after reset)

1: resets the SAI4 block

Bits 20:16 Reserved, must be kept at reset value.

Bit 15 VREFRST : VREFBUF block reset

Set and reset by software.

0: does not reset the VREFBUF block (default after reset)

1: resets the VREFBUF block

Bit 14 COMP12RST : COMP12 Blocks Reset

Set and reset by software.

0: does not reset the COMP1 and 2 blocks (default after reset)

1: resets the COMP1 and 2 blocks

Bit 13 Reserved, must be kept at reset value.

Bit 12 LPTIM5RST : LPTIM5 block reset

Set and reset by software.

0: does not reset the LPTIM5 block (default after reset)

1: resets the LPTIM5 block

Bit 11 LPTIM4RST : LPTIM4 block reset

Set and reset by software.

0: does not reset the LPTIM4 block (default after reset)

1: resets the LPTIM4 block

Bit 10 LPTIM3RST : LPTIM3 block reset

Set and reset by software.

0: does not reset the LPTIM3 block (default after reset)

1: resets the LPTIM3 block

  1. Bit 9 LPTIM2RST : LPTIM2 block reset
    Set and reset by software.
    0: does not reset the LPTIM2 block (default after reset)
    1: resets the LPTIM2 block
  2. Bit 8 Reserved, must be kept at reset value.
  3. Bit 7 I2C4RST : I2C4 block reset
    Set and reset by software.
    0: does not reset the I2C4 block (default after reset)
    1: resets the I2C4 block
  4. Bit 6 Reserved, must be kept at reset value.
  5. Bit 5 SPI6RST : SPI6 block reset
    Set and reset by software.
    0: does not reset the SPI6 block (default after reset)
    1: resets the SPI6 block
  6. Bit 4 Reserved, must be kept at reset value.
  7. Bit 3 LPUART1RST : LPUART1 block reset
    Set and reset by software.
    0: does not reset the LPUART1 block (default after reset)
    1: resets the LPUART1 block
  8. Bit 2 Reserved, must be kept at reset value.
  9. Bit 1 SYSCFGRST : SYSCFG block reset
    Set and reset by software.
    0: does not reset the SYSCFG block (default after reset)
    1: resets the SYSCFG block
  10. Bit 0 Reserved, must be kept at reset value.

9.7.36 RCC global control register (RCC_GCR)

Address offset: 0x0A0

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BOOT_C2BOOT_C1WW2RSCWW1RSC
rw1rw1rw1rw1

Bits 31:4 Reserved, must be kept at reset value.

Bit 3 BOOT_C2 : Allows CPU2 to boot

This bit can be set by software but is cleared by hardware after a system reset or Standby.

0: The CPU2 will not boot if the option byte BCM4 is set to '0'. (default after reset)

1: The CPU2 will boot independently of BCM4 value.

Bit 2 BOOT_C1 : Allows CPU1 to boot

This bit can be set by software but is cleared by hardware after a system reset or Standby.

0: The CPU1 will not boot if the option byte BCM7 is set to '0' and BCM4 is set to '1'. (default after reset)

1: The CPU1 will boot independently of BCM7 value.

Bit 1 WW2RSC : WWDG2 reset scope control

This bit can be set by software but is cleared by hardware during a system reset

0: The WWDG2 generates a reset of CPU2, when a timeout occurs. (default after reset)

1: The WWDG2 generates a system reset, when a timeout occurs.

Bit 0 WW1RSC : WWDG1 reset scope control

This bit can be set by software but is cleared by hardware during a system reset

0: The WWDG1 generates a reset of CPU1, when a timeout occurs. (default after reset)

1: The WWDG1 generates a system reset, when a timeout occurs.

9.7.37 RCC D3 Autonomous mode register (RCC_D3AMR)

The Autonomous mode allows providing the peripheral clocks to peripherals located in D3, even if the CPU to which they are allocated is in CStop mode. When a peripheral has its autonomous bit enabled, it receives its peripheral clocks according to D3 domain state, if the CPU to which it is allocated is in CStop mode.

Address offset: 0x0A8

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.SRAM4AMENBKPRAMAMENRes.Res.Res.ADC3AMENRes.Res.SAI4AMENRes.CRCAMENRes.Res.RTCAMEN
rwrwrwrwrwrw

1514131211109876543210
VREFAMENCOMP12AMENRes.LPTIMSAMENLPTIM4AMENLPTIM3AMENLPTIM2AMENRes.I2C4AMENRes.SPI6AMENRes.LPUART1AMENRes.Res.BDMAAMEN
rwrwrwrwrwrwrwrwrwrw

Bits 31:30 Reserved, must be kept at reset value.

Bit 29 SRAM4AMEN : SRAM4 Autonomous mode enable

Set and reset by software.

0: SRAM4 clock is disabled when both CPUs are in CStop (default after reset)

1: SRAM4 peripheral bus clock enabled when D3 domain is in DRun.

Refer to Section 9.5.11: Peripheral clock gating control for additional information

Bit 28 BKPRAMAMEN : Backup RAM Autonomous mode enable

Set and reset by software.

0: Backup RAM clock is disabled when the CPU to which it is allocated is in CStop (default after reset)

1: Backup RAM clock enabling is controlled by D3 domain state.

Refer to Section 9.5.11: Peripheral clock gating control for additional information

Bits 27:25 Reserved, must be kept at reset value.

Bit 24 ADC3AMEN : ADC3 Autonomous mode enable

Set and reset by software.

0: ADC3 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)

1: ADC3 peripheral clocks enabled when D3 domain is in DRun.

Refer to Section 9.5.11: Peripheral clock gating control for additional information

Bits 23:22 Reserved, must be kept at reset value.

Bit 21 SAI4AMEN : SAI4 Autonomous mode enable

Set and reset by software.

0: SAI4 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)

1: SAI4 peripheral clocks enabled when D3 domain is in DRun.

Refer to Section 9.5.11: Peripheral clock gating control for additional information

  1. Bit 20 Reserved, must be kept at reset value.
  2. Bit 19 CRCAMEN : CRC Autonomous mode enable
    Set and reset by software.
    0: CRC peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: CRC peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  3. Bits 18:17 Reserved, must be kept at reset value.
  4. Bit 16 RTCAMEN : RTC Autonomous mode enable
    Set and reset by software.
    0: RTC peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: RTC peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  5. Bit 15 VREFAMEN : VREF Autonomous mode enable
    Set and reset by software.
    0: VREF peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: VREF peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  6. Bit 14 COMP12AMEN : COMP12 Autonomous mode enable
    Set and reset by software.
    0: COMP12 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: COMP12 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  7. Bit 13 Reserved, must be kept at reset value.
  8. Bit 12 LPTIM5AMEN : LPTIM5 Autonomous mode enable
    Set and reset by software.
    0: LPTIM5 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: LPTIM5 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  9. Bit 11 LPTIM4AMEN : LPTIM4 Autonomous mode enable
    Set and reset by software.
    0: LPTIM4 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: LPTIM4 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  10. Bit 10 LPTIM3AMEN : LPTIM3 Autonomous mode enable
    Set and reset by software.
    0: LPTIM3 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: LPTIM3 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  1. Bit 9 LPTIM2AMEN : LPTIM2 Autonomous mode enable
    Set and reset by software.
    0: LPTIM2 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: LPTIM2 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  2. Bit 8 Reserved, must be kept at reset value.
  3. Bit 7 I2C4AMEN : I2C4 Autonomous mode enable
    Set and reset by software.
    0: I2C4 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: I2C4 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  4. Bit 6 Reserved, must be kept at reset value.
  5. Bit 5 SPI6AMEN : SPI6 Autonomous mode enable
    Set and reset by software.
    0: SPI6 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: SPI6 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  6. Bit 4 Reserved, must be kept at reset value.
  7. Bit 3 LPUART1AMEN : LPUART1 Autonomous mode enable
    Set and reset by software.
    0: LPUART1 peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: LPUART1 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information
  8. Bits 2:1 Reserved, must be kept at reset value.
  9. Bit 0 BDMAAMEN : BDMA and DMAMUX Autonomous mode enable
    Set and reset by software.
    0: BDMA and DMAMUX peripheral clocks are disabled when the CPU to which it is allocated is in CStop (default after reset)
    1: BDMA and DMAMUX peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 9.5.11: Peripheral clock gating control for additional information

9.7.38 RCC reset status register (RCC_RSR)

Each CPU has dedicated flags in order to check the reset status of the circuit. Please refer to Section 9.4.4: Reset source identification for additional information.

Table 69. RCC_RSR address offset and reset value

Register NameAddress OffsetReset Value
RCC_RSR0x0D00x00FE 0000 (1)
RCC_C1_RSR0x130
RCC_C2_RSR0x190

1. Reset by power-on reset only

Access: \( 0 \leq \text{wait state} \leq 7 \) , word, half-word and byte access. Wait states are inserted in case of successive accesses to this register.

31302928272625242322212019181716
LPWR2RSTFLPWR1RSTFWWDG2RSTFWWDG1RSTFIWDG2RSTFIWDG1RSTFSFT2RSTFSFT1RSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFC2RSTFC1RSTFRMVF
rrrrrrrrrrrrrrrrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bit 31 LPWR2RSTF : Reset due to illegal D2 DStandby or CPU2 CStop flag (1)

Reset by software by writing the RMVF bit.

Set by hardware when D2 domain goes erroneously in DStandby or when CPU2 goes erroneously in CStop.

0: No illegal reset occurred (default after power-on reset)

1: Illegal D2 DStandby or CPU2 CStop reset occurred

Bit 30 LPWR1RSTF : Reset due to illegal D1 DStandby or CPU1 CStop flag (1)

Reset by software by writing the RMVF bit.

Set by hardware when D1 domain goes erroneously in DStandby or when CPU1 goes erroneously in CStop.

0: No illegal reset occurred (default after power-on reset)

1: Illegal D1 DStandby or CPU1 CStop reset occurred

Bit 29 WWDG2RSTF : Window Watchdog reset flag (1)

Reset by software by writing the RMVF bit.

Set by hardware when a window watchdog reset occurs.

0: No window watchdog reset occurred from WWDG2 (default after power-on reset)

1: window watchdog reset occurred from WWDG2

Bit 28 WWDG1RSTF : Window Watchdog reset flag (1)

Reset by software by writing the RMVF bit.

Set by hardware when a window watchdog reset occurs.

0: No window watchdog reset occurred from WWDG1 (default after power-on reset)

1: window watchdog reset occurred from WWDG1

  1. Bit 27 IWDG2RSTF : CPU2 Independent Watchdog reset flag (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when a CPU2 independent watchdog reset occurs.
    0: No CPU2 independent watchdog reset occurred (default after power-on reset)
    1: CPU2 independent watchdog reset occurred
  2. Bit 26 IWDG1RSTF : CPU1 Independent Watchdog reset flag (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when a CPU1 independent watchdog reset occurs.
    0: No CPU1 independent watchdog reset occurred (default after power-on reset)
    1: CPU1 independent watchdog reset occurred
  3. Bit 25 SFT2RSTF : System reset from CPU2 reset flag (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when the system reset is due to CPU2. The CPU2 can generate a system reset by writing SYSRESETREQ bit of AIRCR register of the CM4.
    0: No CPU2 software reset occurred (default after power-on reset)
    1: A system reset has been generated by the CPU2
  4. Bit 24 SFT1RSTF : System reset from CPU1 reset flag (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when the system reset is due to CPU1. The CPU1 can generate a system reset by writing SYSRESETREQ bit of AIRCR register of the CM7.
    0: No CPU1 software reset occurred (default after power-on reset)
    1: A system reset has been generated by the CPU1
  5. Bit 23 PORRSTF : POR/PDR reset flag (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when a POR/PDR reset occurs.
    0: No POR/PDR reset occurred
    1: POR/PDR reset occurred (default after power-on reset)
  6. Bit 22 PINRSTF : Pin reset flag (NRST) (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when a reset from pin occurs.
    0: No reset from pin occurred
    1: Reset from pin occurred (default after power-on reset)
  7. Bit 21 BORRSTF : BOR reset flag (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when a BOR reset occurs ( pwr_bor_rst ).
    0: No BOR reset occurred
    1: BOR reset occurred (default after power-on reset)
  8. Bit 20 D2RSTF : D2 domain power switch reset flag (1)
    Reset by software by writing the RMVF bit.
    Set by hardware when a D2 domain exits from DStandby or after of power-on reset. Refer to Table 57 for details.
    0: No D2 domain power switch reset occurred
    1: A D2 domain power switch (ePOD2) reset occurred (default after power-on reset)

Bit 19 D1RSTF : D1 domain power switch reset flag (1)

Reset by software by writing the RMVF bit.

Set by hardware when a D1 domain exits from DStandby or after of power-on reset. Refer to Table 57 for details.

0: No D1 domain power switch reset occurred

1: A D1 domain power switch (ePOD1) reset occurred (default after power-on reset)

Bit 18 C2RSTF : CPU2 reset flag (1)

Reset by software by writing the RMVF bit.

Set by hardware every time a CPU2 reset occurs.

0: No CPU2 reset occurred

1: A CPU2 reset occurred (default after power-on reset)

Bit 17 C1RSTF : CPU1 reset flag (1)

Reset by software by writing the RMVF bit.

Set by hardware every time a CPU1 reset occurs.

0: No CPU1 reset occurred

1: A CPU1 reset occurred (default after power-on reset)

Bit 16 RMVF : Remove reset flag

Set and reset by software to reset the value of the reset flags.

0: Reset of the reset flags not activated (default after power-on reset)

1: Reset the value of the reset flags

Bits 15:0 Reserved, must be kept at reset value.

  1. 1. Refer to Table 57: Reset source identification (RCC_RSR) for details on flag behavior.

9.7.39 RCC AHB3 clock register (RCC_AHB3ENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation for more information on peripheral allocation.

Table 70. RCC_AHB3ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB3ENR0x0D40x0000 0000
RCC_C1_AHB3ENR0x134
RCC_C2_AHB3ENR0x194
31302928272625242322212019181716
AXISRAMEN (1)ITCMEN (1)DTCM2MEN (1)DTCM1MEN (1)Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1EN
rrrrr
1514131211109876543210
Res.QSPIENRes.FMCMENRes.Res.Res.FLITFEN (1)Res.Res.JPGDECENDMA2DENRes.Res.Res.MDMAEN
rrrrrr

1. This location is 'Reserved' for register RCC_C1_AHB3ENR register.

Bit 31 AXISRAMEN : AXISRAM block enable

Set and reset by software.

When set, this bit indicates that the AXISRAM is allocated by the CPU2. It causes the D1 domain to take into account also the CPU2 operation modes, i.e. keeping D1 domain in DRun when CPU2 is in CRun.

0: AXISRAM not allocated by CPU2.

AXISRAM follows the D1 domain modes. (default after reset)

1: AXISRAM allocated by CPU2.

AXISRAM and D1 domain take also the CPU2 operating modes into account.

Bit 30 ITCM1EN : D1 ITCM block enable

Set and reset by software.

When set, this bit indicates that the ITCM is allocated by the CPU2. It causes the D1 domain to take into account also the CPU2 operation modes, i.e. keeping D1 domain in DRun when CPU2 is in CRun.

0: ITCM not allocated by CPU2.

ITCM follows the D1 domain modes. (default after reset)

1: ITCM allocated by CPU2.

ITCM and D1 domain take also the CPU2 operating modes into account.

Bit 29 DTCM2EN : D1 DTCM2 block enable

Set and reset by software.

When set, this bit indicates that the DTCM2 is allocated by the CPU2. It causes the D1 domain to take into account also the CPU2 operation modes, i.e. keeping D1 domain in DRun when CPU2 is in CRun.

0: DTCM2 not allocated by CPU2.

DTCM2 follows the D1 domain modes. (default after reset)

1: DTCM2 allocated by CPU2.

DTCM2 and D1 domain take also the CPU2 operating modes into account.

Bit 28 DTCM1EN : D1 DTCM1 block enable

Set and reset by software.

When set, this bit indicates that the DTCM1 is allocated by the CPU2. It causes the D1 domain to take into account also the CPU2 operation modes, i.e. keeping D1 domain in DRun when CPU2 is in CRun.

0: DTCM1 not allocated by CPU2.

DTCM1 follows the D1 domain modes. (default after reset)

1: DTCM1 allocated by CPU2.

DTCM1 and D1 domain take also the CPU2 operating modes into account.

Bits 27:17 Reserved, must be kept at reset value.

Bit 16 SDMMC1EN : SDMMC1 and SDMMC1 Delay Clock Enable

Set and reset by software.

0: SDMMC1 and SDMMC1 Delay clock disabled (default after reset)

1: SDMMC1 and SDMMC1 Delay clock enabled

Bit 15 Reserved, must be kept at reset value.

Bit 14 QSPIEN : QUADSPI and QUADSPI Delay Clock Enable

Set and reset by software.

0: QUADSPI and QUADSPI Delay clock disabled (default after reset)

1: QUADSPI and QUADSPI Delay clock enabled

Bit 13 Reserved, must be kept at reset value.

Bit 12 FMCCEN : FMC Peripheral Clocks Enable

Set and reset by software.

0: FMC peripheral clocks disabled (default after reset)

1: FMC peripheral clocks enabled

The peripheral clocks of the FMC are: the kernel clock selected by FMCSEL and provided to fmc_ker_ck input, and the rcc_hclk3 bus interface clock.

Bits 11:9 Reserved, must be kept at reset value.

Bit 8 FLITFEN : D1 FLASH Interface Enable

Set and reset by software.

When set, this bit indicates that the D1 FLASH block is allocated by one or both CPUs. It causes the D1 domain to take into account also the CPU2 operation modes, i.e. keeping D1 domain in DRun when CPU2 is in CRun.

0: D1 FLASH Interface not allocated by CPU2.

D1 FLASH Interface follows the D1 domain modes.(default after reset)

1: D1 FLASH Interface allocated by CPU2.

D1 FLASH Interface and D1 domain take also the CPU2 operating modes into account.

Bits 7:6 Reserved, must be kept at reset value.

Bit 5 JPGDECEN : JPGDEC Peripheral Clock Enable

Set and reset by software.

0: JPGDEC peripheral clock disabled (default after reset)

1: JPGDEC peripheral clock enabled

Bit 4 DMA2DEN : DMA2D Peripheral Clock Enable

Set and reset by software.

0: DMA2D peripheral clock disabled (default after reset)

1: DMA2D peripheral clock enabled

Bits 3:1 Reserved, must be kept at reset value.

Bit 0 MDMAEN : MDMA Peripheral Clock Enable

Set and reset by software.

0: MDMA peripheral clock disabled (default after reset)

1: MDMA peripheral clock enabled

9.7.40 RCC AHB1 clock register (RCC_AHB1ENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 71. RCC_AHB1ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB1ENR0x0D80x0000 0000
RCC_C1_AHB1ENR0x138
RCC_C2_AHB1ENR0x198
31302928272625242322212019181716
Res.Res.Res.USB2OTGHSULPIENUSB2OTGHSENUSB1OTGHSULPIENUSB1OTGHSENRes.Res.Res.Res.Res.Res.Res.ETH1RXENETH1TXEN
1514131211109876543210
ETH1MACENARTENRes.Res.Res.Res.Res.Res.Res.Res.ADC12ENRes.Res.Res.DMA2ENDMA1EN
r/wr/wr/wr/wr/w

Bits 31:29 Reserved, must be kept at reset value.

Bit 28 USB2OTGHSULPIEN : Enable USB_PHY2 clocks

Set and reset by software.

0: USB2ULPI PHY clocks disabled (default after reset)

1: USB2ULPI PHY clocks enabled

Bit 27 USB2OTGHSEN : Enable of USB2OTG (OTG_HS2) peripheral clocks

Set and reset by software.

0: USB2OTG peripheral clocks disabled (default after reset)

1: USB2OTG peripheral clocks enabled

The peripheral clocks of the USB2OTG are: the kernel clock selected by USBSEL and the rcc_hclk1 bus interface clock.

Bit 26 USB1OTGHSULPIEN : Enable of USB_PHY1 clocks

Set and reset by software.

0: USB1ULPI PHY clocks disabled (default after reset)

1: USB1ULPI PHY clocks enabled

Bit 25 USB1OTGHSEN : Enable of USB1OTG (OTG_HS1) peripheral clocks

Set and reset by software.

0: USB1OTG peripheral clocks disabled (default after reset)

1: USB1OTG peripheral clocks enabled

The peripheral clocks of the USB1OTG are: the kernel clock selected by USBSEL and the rcc_hclk1 bus interface clock.

Bits 24:18 Reserved, must be kept at reset value.

Bit 17 ETH1RXEN : Enable of Ethernet reception clock

Set and reset by software.

0: Ethernet Reception clock disabled (default after reset)

1: Ethernet Reception clock enabled

Bit 16 ETH1TXEN : Enable of Ethernet transmission clock

Set and reset by software.

0: Ethernet Transmission clock disabled (default after reset)

1: Ethernet Transmission clock enabled

Bit 15 ETH1MACEN : Enable of Ethernet MAC bus interface clock

Set and reset by software.

0: Ethernet MAC bus interface clock disabled (default after reset)

1: Ethernet MAC bus interface clock enabled

Bit 14 ARTEN : ART Clock enable

Set and reset by software.

0: ART clock disabled (default after reset)

1: ART clock enabled

Bits 13:6 Reserved, must be kept at reset value.

Bit 5 ADC12EN : Enable of ADC1/2 peripheral clocks

Set and reset by software.

0: ADC1 and 2 peripheral clocks disabled (default after reset)

1: ADC1 and 2 peripheral clocks enabled

The peripheral clocks of the ADC1 and 2 are: the kernel clock selected by ADCSEL and provided to adc_ker_ck_input , and the rcc_hclk1 bus interface clock.

Bits 4:2 Reserved, must be kept at reset value.

Bit 1 DMA2EN : DMA2 clock enable

Set and reset by software.

0: DMA2 clock disabled (default after reset)

1: DMA2 clock enabled

Bit 0 DMA1EN : DMA1 clock enable

Set and reset by software.

0: DMA1 clock disabled (default after reset)

1: DMA1 clock enabled

9.7.41 RCC AHB2 clock register (RCC_AHB2ENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 72. RCC_AHB2ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB2ENR0x0DC0x0000 0000
RCC_C1_AHB2ENR0x13C
RCC_C2_AHB2ENR0x19C
31302928272625242322212019181716
SRAM3EN (1)SRAM2EN (1)SRAM1EN (1)Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.SDMMC2ENRes.Res.RNGENHASHENCRYPTENRes.Res.Res.DCMIEN
rwrwrwrwrw

1. This location is 'Reserved' for register RCC_C2_AHB2ENR register.

Bit 31 SRAM3EN : SRAM3 block enable

Set and reset by software.

When set, this bit indicates that the SRAM3 is allocated by the CPU1. It causes the D2 domain to take into account also the CPU1 operation modes, i.e. keeping D2 domain in DRun when CPU1 is in CRun.

0: SRAM3 not allocated by CPU1.

SRAM3 follows the D2 domain modes. (default after reset)

1: SRAM3 allocated by CPU1.

SRAM3 and D2 domain take also the CPU1 operating modes into account.

Bit 30 SRAM2EN : SRAM2 block enable

Set and reset by software.

When set, this bit indicates that the SRAM2 is allocated by the CPU1. It causes the D2 domain to take into account also the CPU1 operation modes, i.e. keeping D2 domain in DRun when CPU1 is in CRun.

0: SRAM2 not allocated by CPU1.

SRAM2 follows the D2 domain modes. (default after reset)

1: SRAM2 allocated by CPU1.

SRAM2 and D2 domain take also the CPU1 operating modes into account.

Bit 29 SRAM1EN : SRAM1 block enable

Set and reset by software.

When set, this bit indicates that the SRAM1 is allocated by the CPU1. It causes the D2 domain to take into account also the CPU1 operation modes, i.e. keeping D2 domain in DRun when CPU1 is in CRun.

0: SRAM1 not allocated by CPU1.

SRAM1 follows the D2 domain modes. (default after reset)

1: SRAM1 allocated by CPU1.

SRAM1 and D2 domain take also the CPU1 operating modes into account.

Bits 28:10 Reserved, must be kept at reset value.

Bit 9 SDMMC2EN : SDMMC2 and SDMMC2 delay clock enable

Set and reset by software.

0: SDMMC2 and SDMMC2 Delay clock disabled (default after reset)

1: SDMMC2 and SDMMC2 Delay clock enabled

Bits 8:7 Reserved, must be kept at reset value.

Bit 6 RNGEN : RNG peripheral clocks enable

Set and reset by software.

0: RNG peripheral clocks disabled (default after reset)

1: RNG peripheral clocks enabled:

The peripheral clocks of the RNG are: the kernel clock selected by RNGSEL and provided to rng_ker_ck input, and the rcc_hclk2 bus interface clock.

Bit 5 HASHEN : HASH peripheral clock enable

Set and reset by software.

0: HASH peripheral clock disabled (default after reset)

1: HASH peripheral clock enabled

Bit 4 CRYPTEN : CRYPT peripheral clock enable

Set and reset by software.

0: CRYPT peripheral clock disabled (default after reset)

1: CRYPT peripheral clock enabled

Bits 3:1 Reserved, must be kept at reset value.

Bit 0 DCMIEN : DCMI peripheral clock enable

Set and reset by software.

0: DCMI peripheral clock disabled (default after reset)

1: DCMI peripheral clock enabled

9.7.42 RCC AHB4 clock register (RCC_AHB4ENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 73. RCC_AHB4ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB4ENR0x0E00x0000 0000
RCC_C1_AHB4ENR0x140
RCC_C2_AHB4ENR0x1A0
31302928272625242322212019181716
Res.Res.Res.BKPRAMENRes.Res.HSEMENADC3ENRes.Res.BDMAENRes.CRCENRes.Res.Res.
rwrwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.GPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOEN
rwrwrwrwrwrwrwrwrwrwrw

Bits 31:29 Reserved, must be kept at reset value.

Bit 28 BKPRAMEN : Backup RAM Clock Enable

Set and reset by software.

0: Backup RAM clock disabled (default after reset)

1: Backup RAM clock enabled

Bits 27:26 Reserved, must be kept at reset value.

Bit 25 HSEMEN : HSEM peripheral clock enable

Set and reset by software.

0: HSEM peripheral clock disabled (default after reset)

1: HSEM peripheral clock enabled

Bit 24 ADC3EN : ADC3 Peripheral Clocks Enable

Set and reset by software.

0: ADC3 peripheral clocks disabled (default after reset)

1: ADC3 peripheral clocks enabled

The peripheral clocks of the ADC3 are: the kernel clock selected by ADCSEL and provided to adc_ker_ck_input , and the rcc_hclk4 bus interface clock.

Bits 23:22 Reserved, must be kept at reset value.

Bit 21 BDMAEN : BDMA and DMAMUX2 Clock Enable

Set and reset by software.

0: BDMA and DMAMUX2 clock disabled (default after reset)

1: BDMA and DMAMUX2 clock enabled

Bit 20 Reserved, must be kept at reset value.

Bit 19 CRCEN : CRC peripheral clock enable

Set and reset by software.

0: CRC peripheral clock disabled (default after reset)

1: CRC peripheral clock enabled

Bits 18:11 Reserved, must be kept at reset value.

Bit 10 GPIOEN : GPIOK peripheral clock enable

Set and reset by software.

0: GPIOK peripheral clock disabled (default after reset)

1: GPIOK peripheral clock enabled

Bit 9 GPIOJEN : GPIOJ peripheral clock enable

Set and reset by software.

0: GPIOJ peripheral clock disabled (default after reset)

1: GPIOJ peripheral clock enabled

Bit 8 GPIOIEN : GPIOI peripheral clock enable

Set and reset by software.

0: GPIOI peripheral clock disabled (default after reset)

1: GPIOI peripheral clock enabled

Bit 7 GPIOHEN : GPIOH peripheral clock enable

Set and reset by software.

0: GPIOH peripheral clock disabled (default after reset)

1: GPIOH peripheral clock enabled

Bit 6 GPIOGEN : GPIOG peripheral clock enable

Set and reset by software.

0: GPIOG peripheral clock disabled (default after reset)

1: GPIOG peripheral clock enabled

Bit 5 GPIOFEN : GPIOF peripheral clock enable

Set and reset by software.

0: GPIOF peripheral clock disabled (default after reset)

1: GPIOF peripheral clock enabled

Bit 4 GPIOEEN : GPIOE peripheral clock enable

Set and reset by software.

0: GPIOE peripheral clock disabled (default after reset)

1: GPIOE peripheral clock enabled

Bit 3 GPIODEN : GPIOD peripheral clock enable

Set and reset by software.

0: GPIOD peripheral clock disabled (default after reset)

1: GPIOD peripheral clock enabled

  1. Bit 2 GPIOCEN : GPIOC peripheral clock enable
    Set and reset by software.
    0: GPIOC peripheral clock disabled (default after reset)
    1: GPIOC peripheral clock enabled
  2. Bit 1 GPIOBEN : GPIOB peripheral clock enable
    Set and reset by software.
    0: GPIOB peripheral clock disabled (default after reset)
    1: GPIOB peripheral clock enabled
  3. Bit 0 GPIOAEN : GPIOA peripheral clock enable
    Set and reset by software.
    0: GPIOA peripheral clock disabled (default after reset)
    1: GPIOA peripheral clock enabled

9.7.43 RCC APB3 clock register (RCC_APB3ENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 74. RCC_APB3ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB3ENR0x0E40x0000 0000
RCC_C1_APB3ENR0x144
RCC_C2_APB3ENR0x1A4
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.WWDG1ENRes.DSIENLTDCENRes.Res.Res.
rsrwrw

Bits 31:7 Reserved, must be kept at reset value.

Bit 6 WWDG1EN: WWDG1 Clock Enable

Set by software, and reset by hardware when a system reset occurs.

In order to work properly, before enabling the WWDG1, the bit WW1RSC must be set to '1'.

0: WWDG1 peripheral clock disable (default after reset)

1: WWDG1 peripheral clock enabled

There is no protection to prevent the CPU2 to set the bit WWDG1EN to '1'.

It is not recommended to enable the WWDG1 clock for CPU2 operating modes in RCC_C2_APB3ENR register.

Bit 5 Reserved, must be kept at reset value.

Bit 4 DSIEN: DSI Peripheral Clocks Enable

Set and reset by software.

0: DSI peripheral clocks disabled (default after reset)

1: DSI peripheral clocks enabled

Bit 3 LTDCEN: LTDC peripheral clock enable

Provides the pixel clock ( ltcd_ker_ck ) to both DSI and LTDC

Set and reset by software.

0: LTDC peripheral clock disabled (default after reset)

1: LTDC peripheral clock provided to both DSI and LTDC blocks

Bits 2:0 Reserved, must be kept at reset value.

9.7.44 RCC APB1 clock register (RCC_APB1LENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 75. RCC_APB1ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1LENR0x0E80x0000 0000
RCC_C1_APB1LENR0x148
RCC_C2_APB1LENR0x1A8
31302928272625242322212019181716
UART8ENUART7ENDAC12ENRes.CECENRes.Res.Res.I2C3ENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2ENSPDIFRXEN
rwrwrwrwrwrwrwrwrwrwrwrw

1514131211109876543210
SPI3ENSPI2ENRes.Res.WWDG2ENRes.LPTIM1ENTIM14ENTIM13ENTIM12ENTIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
rwrwrsrwrwrwrwrwrwrwrwrwrw

Bit 31 UART8EN: UART8 Peripheral Clocks Enable

Set and reset by software.

0: UART8 peripheral clocks disable (default after reset)

1: UART8 peripheral clocks enabled

The peripheral clocks of the UART8 are: the kernel clock selected by USART234578SEL and provided to usart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 30 UART7EN: UART7 Peripheral Clocks Enable

Set and reset by software.

0: UART7 peripheral clocks disable (default after reset)

1: UART7 peripheral clocks enabled

The peripheral clocks of the UART7 are: the kernel clock selected by USART234578SEL and provided to usart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 29 DAC12EN: DAC1 and 2 peripheral clock enable

Set and reset by software.

0: DAC1 and 2 peripheral clock disable (default after reset)

1: DAC1 and 2 peripheral clock enabled

Bit 28 Reserved, must be kept at reset value.

Bit 27 CECEN: HDMI-CEC peripheral clock enable

Set and reset by software.

0: HDMI-CEC peripheral clock disable (default after reset)

1: HDMI-CEC peripheral clock enabled

The peripheral clocks of the HDMI-CEC are: the kernel clock selected by CECSEL and provided to cec_ker_ck input, and the pclk1d2 bus interface clock.

Bits 26:24 Reserved, must be kept at reset value.

Bit 23 I2C3EN : I2C3 Peripheral Clocks Enable

Set and reset by software.

0: I2C3 peripheral clocks disable (default after reset)

1: I2C3 peripheral clocks enabled

The peripheral clocks of the I2C3 are: the kernel clock selected by I2C123SEL and provided to i2c_ker_ck input, and the pclk1d2 bus interface clock.

Bit 22 I2C2EN : I2C2 Peripheral Clocks Enable

Set and reset by software.

0: I2C2 peripheral clocks disable (default after reset)

1: I2C2 peripheral clocks enabled

The peripheral clocks of the I2C2 are: the kernel clock selected by I2C123SEL and provided to i2c_ker_ck input, and the pclk1d2 bus interface clock.

Bit 21 I2C1EN : I2C1 Peripheral Clocks Enable

Set and reset by software.

0: I2C1 peripheral clocks disable (default after reset)

1: I2C1 peripheral clocks enabled

The peripheral clocks of the I2C1 are: the kernel clock selected by I2C123SEL and provided to i2c_ker_ck input, and the pclk1d2 bus interface clock.

Bit 20 UART5EN : UART5 Peripheral Clocks Enable

Set and reset by software.

0: UART5 peripheral clocks disable (default after reset)

1: UART5 peripheral clocks enabled

The peripheral clocks of the UART5 are: the kernel clock selected by USART234578SEL and provided to uart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 19 UART4EN : UART4 Peripheral Clocks Enable

Set and reset by software.

0: UART4 peripheral clocks disable (default after reset)

1: UART4 peripheral clocks enabled

The peripheral clocks of the UART4 are: the kernel clock selected by USART234578SEL and provided to uart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 18 USART3EN : USART3 Peripheral Clocks Enable

Set and reset by software.

0: USART3 peripheral clocks disable (default after reset)

1: USART3 peripheral clocks enabled

The peripheral clocks of the USART3 are: the kernel clock selected by USART234578SEL and provided to uart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 17 USART2EN : USART2 Peripheral Clocks Enable

Set and reset by software.

0: USART2 peripheral clocks disable (default after reset)

1: USART2 peripheral clocks enabled

The peripheral clocks of the USART2 are: the kernel clock selected by USART234578SEL and provided to uart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 16 SPDFRXEN : SPDIFRX Peripheral Clocks Enable

Set and reset by software.

0: SPDIFRX peripheral clocks disable (default after reset)

1: SPDIFRX peripheral clocks enabled

The peripheral clocks of the SPDIFRX are: the kernel clock selected by SPDIFSEL and provided to SPDIF_CLK input, and the pclk1d2 bus interface clock.

Bit 15 SPI3EN : SPI3 Peripheral Clocks Enable

Set and reset by software.

0: SPI3 peripheral clocks disable (default after reset)

1: SPI3 peripheral clocks enabled

The peripheral clocks of the SPI3 are: the kernel clock selected by I2S123SRC and provided to spi_ker_ck input, and the pclk1d2 bus interface clock.

Bit 14 SPI2EN : SPI2 Peripheral Clocks Enable

Set and reset by software.

0: SPI2 peripheral clocks disable (default after reset)

1: SPI2 peripheral clocks enabled

The peripheral clocks of the SPI2 are: the kernel clock selected by I2S123SRC and provided to spi_ker_ck input, and the pclk1d2 bus interface clock.

Bits 13:12 Reserved, must be kept at reset value.

Bit 11 WWDG2EN : WWDG2 peripheral clock enable

Set by software, and reset by hardware when a system reset occurs

0: WWDG2 peripheral clock disabled (default after reset)

1: WWDG2 peripheral clock enabled

There is no protection to prevent the CPU1 to set the bit WWDG2EN to '1'.

It is not recommended to enable the WWDG2 clock for CPU1 operating modes in RCC_C1_APB3ENR register.

Bit 10 Reserved, must be kept at reset value.

Bit 9 LPTIM1EN : LPTIM1 Peripheral Clocks Enable

Set and reset by software.

0: LPTIM1 peripheral clocks disable (default after reset)

1: LPTIM1 peripheral clocks enabled

The peripheral clocks of the LPTIM1 are: the kernel clock selected by LPTIM1SEL and provided to lptim_ker_ck input, and the pclk1d2 bus interface clock.

Bit 8 TIM14EN : TIM14 peripheral clock enable

Set and reset by software.

0: TIM14 peripheral clock disable (default after reset)

1: TIM14 peripheral clock enabled

Bit 7 TIM13EN : TIM13 peripheral clock enable

Set and reset by software.

0: TIM13 peripheral clock disable (default after reset)

1: TIM13 peripheral clock enabled

Bit 6 TIM12EN : TIM12 peripheral clock enable

Set and reset by software.

0: TIM12 peripheral clock disable (default after reset)

1: TIM12 peripheral clock enabled

  1. Bit 5 TIM7EN : TIM7 peripheral clock enable
    Set and reset by software.
    0: TIM7 peripheral clock disable (default after reset)
    1: TIM7 peripheral clock enabled
  2. Bit 4 TIM6EN : TIM6 peripheral clock enable
    Set and reset by software.
    0: TIM6 peripheral clock disable (default after reset)
    1: TIM6 peripheral clock enabled
  3. Bit 3 TIM5EN : TIM5 peripheral clock enable
    Set and reset by software.
    0: TIM5 peripheral clock disable (default after reset)
    1: TIM5 peripheral clock enabled
  4. Bit 2 TIM4EN : TIM4 peripheral clock enable
    Set and reset by software.
    0: TIM4 peripheral clock disable (default after reset)
    1: TIM4 peripheral clock enabled
  5. Bit 1 TIM3EN : TIM3 peripheral clock enable
    Set and reset by software.
    0: TIM3 peripheral clock disable (default after reset)
    1: TIM3 peripheral clock enabled
  6. Bit 0 TIM2EN : TIM2 peripheral clock enable
    Set and reset by software.
    0: TIM2 peripheral clock disable (default after reset)
    1: TIM2 peripheral clock enabled

9.7.45 RCC APB1 clock register (RCC_APB1HENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 76. RCC_APB1ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1HENR0x0EC0x0000 0000
RCC_C1_APB1HENR0x14C
RCC_C2_APB1HENR0x1AC
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.FDCANEN
rw
Res.Res.MDIOSEN
rw
OPAMPEN
rw
Res.SWPEN
rw
CRSEN
rw
Res.

Bits 31:9 Reserved, must be kept at reset value.

Bit 8 FDCANEN : FDCAN Peripheral Clocks Enable

Set and reset by software.

0: FDCAN peripheral clocks disable (default after reset)

1: FDCAN peripheral clocks enabled:

The peripheral clocks of the FDCAN are: the kernel clock selected by FDCANSEL and provided to rcc_fdcan_ker_ck input, and the pclk1d2 bus interface clock.

Bits 7:6 Reserved, must be kept at reset value.

Bit 5 MDIOSEN : MDIOS peripheral clock enable

Set and reset by software.

0: MDIOS peripheral clock disable (default after reset)

1: MDIOS peripheral clock enabled

Bit 4 OPAMPEN : OPAMP peripheral clock enable

Set and reset by software.

0: OPAMP peripheral clock disable (default after reset)

1: OPAMP peripheral clock enabled

Bit 3 Reserved, must be kept at reset value.

Bit 2 SWPEN : SWPMI Peripheral Clocks Enable

Set and reset by software.

0: SWPMI peripheral clocks disable (default after reset)

1: SWPMI peripheral clocks enabled:

The peripheral clocks of the SWPMI are: the kernel clock selected by SWPSEL and provided to swpmi_ker_ck input, and the pclk1d2 bus interface clock.

Bit 1 CRSEN : Clock Recovery System peripheral clock enable

Set and reset by software.

0: CRS peripheral clock disable (default after reset)

1: CRS peripheral clock enabled

Bit 0 Reserved, must be kept at reset value.

9.7.46 RCC APB2 clock register (RCC_APB2ENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 77. RCC_APB2ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB2ENR0x0F00x0000 0000
RCC_C1_APB2ENR0x150
RCC_C2_APB2ENR0x1B0
31302928272625242322212019181716
Res.Res.HRTIMENDFSDM1ENRes.Res.Res.SAI3ENSAI2ENSAI1ENRes.SPI5ENRes.TIM17ENTIM16ENTIM15EN
rwrwrwrwrwrwrwrwrw

1514131211109876543210
Res.Res.SPI4ENSPI1ENRes.Res.Res.Res.Res.Res.USART6ENUSART1ENRes.Res.TIM8ENTIM1EN
rwrwrwrwrwrw

Bits 31:30 Reserved, must be kept at reset value.

Bit 29 HRTIMEN : HRTIM peripheral clock enable

Set and reset by software.

0: HRTIM peripheral clock disabled (default after reset)

1: HRTIM peripheral clock enabled

Bit 28 DFSDM1EN : DFSDM1 Peripheral Clocks Enable

Set and reset by software.

0: DFSDM1 peripheral clocks disabled (default after reset)

1: DFSDM1 peripheral clocks enabled

DFSDM1 peripheral clocks are: the kernel clocks selected by SAI1SEL and DFSDM1SEL and provided to Aclk and clk inputs respectively, and the rcc_pclk2 bus interface clock.

Bits 27:25 Reserved, must be kept at reset value.

Bit 24 SAI3EN : SAI3 Peripheral Clocks Enable

Set and reset by software.

0: SAI3 peripheral clocks disabled (default after reset)

1: SAI3 peripheral clocks enabled

The peripheral clocks of the SAI3 are: the kernel clock selected by SAI3SEL and provided to sai_a_ker_ck and sai_b_ker_ck inputs, and the rcc_pclk2 bus interface clock.

Bit 23 SAI2EN : SAI2 Peripheral Clocks Enable

Set and reset by software.

0: SAI2 peripheral clocks disabled (default after reset)

1: SAI2 peripheral clocks enabled

The peripheral clocks of the SAI2 are: the kernel clock selected by SAI23SEL and provided to sai_a_ker_ck and sai_b_ker_ck inputs, and the rcc_pclk2 bus interface clock.

Bit 22 SAI1EN : SAI1 Peripheral Clocks Enable

Set and reset by software.

0: SAI1 peripheral clocks disabled (default after reset)

1: SAI1 peripheral clocks enabled:

The peripheral clocks of the SAI1 are: the kernel clock selected by SAI1SEL and provided to sai_a_ker_ck and sai_b_ker_ck inputs, and the rcc_pclk2 bus interface clock.

Bit 21 Reserved, must be kept at reset value.

Bit 20 SPI5EN : SPI5 Peripheral Clocks Enable

Set and reset by software.

0: SPI5 peripheral clocks disabled (default after reset)

1: SPI5 peripheral clocks enabled:

The peripheral clocks of the SPI5 are: the kernel clock selected by SPI45SEL and provided to spi_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 19 Reserved, must be kept at reset value.

Bit 18 TIM17EN : TIM17 peripheral clock enable

Set and reset by software.

0: TIM17 peripheral clock disabled (default after reset)

1: TIM17 peripheral clock enabled

Bit 17 TIM16EN : TIM16 peripheral clock enable

Set and reset by software.

0: TIM16 peripheral clock disabled (default after reset)

1: TIM16 peripheral clock enabled

Bit 16 TIM15EN : TIM15 peripheral clock enable

Set and reset by software.

0: TIM15 peripheral clock disabled (default after reset)

1: TIM15 peripheral clock enabled

Bits 15:14 Reserved, must be kept at reset value.

Bit 13 SPI4EN : SPI4 Peripheral Clocks Enable

Set and reset by software.

0: SPI4 peripheral clocks disabled (default after reset)

1: SPI4 peripheral clocks enabled:

The peripheral clocks of the SPI4 are: the kernel clock selected by SPI45SEL and provided to spi_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 12 SPI1EN : SPI1 Peripheral Clocks Enable

Set and reset by software.

0: SPI1 peripheral clocks disabled (default after reset)

1: SPI1 peripheral clocks enabled:

The peripheral clocks of the SPI1 are: the kernel clock selected by I2S123SRC and provided to spi_ker_ck input, and the rcc_pclk2 bus interface clock.

Bits 11:6 Reserved, must be kept at reset value.

Bit 5 USART6EN: USART6 Peripheral Clocks Enable

Set and reset by software.

0: USART6 peripheral clocks disabled (default after reset)

1: USART6 peripheral clocks enabled:

The peripheral clocks of the USART6 are: the kernel clock selected by USART6SEL and provided to usart_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 4 USART1EN: USART1 Peripheral Clocks Enable

Set and reset by software.

0: USART1 peripheral clocks disabled (default after reset)

1: USART1 peripheral clocks enabled:

The peripheral clocks of the USART1 are: the kernel clock selected by USART1SEL and provided to usart_ker_ck input, and the rcc_pclk2 bus interface clock.

Bits 3:2 Reserved, must be kept at reset value.

Bit 1 TIM8EN: TIM8 peripheral clock enable

Set and reset by software.

0: TIM8 peripheral clock disabled (default after reset)

1: TIM8 peripheral clock enabled

Bit 0 TIM1EN: TIM1 peripheral clock enable

Set and reset by software.

0: TIM1 peripheral clock disabled (default after reset)

1: TIM1 peripheral clock enabled

9.7.47 RCC APB4 clock register (RCC_APB4ENR)

A peripheral can be allocated (enabled) by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 78. RCC_APB4ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB4ENR0x0F40x0001 0000
RCC_C1_APB4ENR0x154
RCC_C2_APB4ENR0x1B4
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4ENRes.Res.Res.Res.RTCAPBEN
rwrw
1514131211109876543210
VREFENCOMP12ENRes.LPTIM5ENLPTIM4ENLPTIM3ENLPTIM2ENRes.I2C4ENRes.SPI6ENRes.LPUART1ENRes.SYSCFGENRes.
rwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bits 25:22 Reserved, must be kept at reset value.

Bit 21 SAI4EN : SAI4 Peripheral Clocks Enable

Set and reset by software.

0: SAI4 peripheral clocks disabled (default after reset)

1: SAI4 peripheral clocks enabled

The peripheral clocks of the SAI4 are: the kernel clocks selected by SAI4ASEL and SAI4BSEL, and provided to sai_a_ker_ck and sai_b_ker_ck inputs respectively, and the pclk1d3 bus interface clock.

Bits 20:17 Reserved, must be kept at reset value.

Bit 16 RTCAPBEN : RTC APB Clock Enable

Set and reset by software.

0: The register clock interface of the RTC (APB) is disabled

1: The register clock interface of the RTC (APB) is enabled (default after reset)

Bit 15 VREFEN : VREFBUF peripheral clock enable

Set and reset by software.

0: VREFBUF peripheral clock disabled (default after reset)

1: VREFBUF peripheral clock enabled

Bit 14 COMP12EN : COMP1/2 peripheral clock enable

Set and reset by software.

0: COMP1/2 peripheral clock disabled (default after reset)

1: COMP1/2 peripheral clock enabled

Bit 13 Reserved, must be kept at reset value.

Bit 12 LPTIM5EN : LPTIM5 Peripheral Clocks Enable

Set and reset by software.

0: LPTIM5 peripheral clocks disabled (default after reset)

1: LPTIM5 peripheral clocks enabled

The peripheral clocks of the LPTIM5 are: the kernel clock selected by LPTIM345SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 11 LPTIM4EN : LPTIM4 Peripheral Clocks Enable

Set and reset by software.

0: LPTIM4 peripheral clocks disabled (default after reset)

1: LPTIM4 peripheral clocks enabled

The peripheral clocks of the LPTIM4 are: the kernel clock selected by LPTIM345SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 10 LPTIM3EN : LPTIM3 Peripheral Clocks Enable

Set and reset by software.

0: LPTIM3 peripheral clocks disabled (default after reset)

1: LPTIM3 peripheral clocks enabled

The peripheral clocks of the LPTIM3 are: the kernel clock selected by LPTIM345SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 9 LPTIM2EN : LPTIM2 Peripheral Clocks Enable

Set and reset by software.

0: LPTIM2 peripheral clocks disabled (default after reset)

1: LPTIM2 peripheral clocks enabled

The peripheral clocks of the LPTIM2 are: the kernel clock selected by LPTIM2SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 8 Reserved, must be kept at reset value.

Bit 7 I2C4EN : I2C4 Peripheral Clocks Enable

Set and reset by software.

0: I2C4 peripheral clocks disabled (default after reset)

1: I2C4 peripheral clocks enabled

The peripheral clocks of the I2C4 are: the kernel clock selected by I2C4SEL and provided to i2c_ker_ck input, and the pclk1d3 bus interface clock.

Bit 6 Reserved, must be kept at reset value.

Bit 5 SPI6EN : SPI6 Peripheral Clocks Enable

Set and reset by software.

0: SPI6 peripheral clocks disabled (default after reset)

1: SPI6 peripheral clocks enabled

The peripheral clocks of the SPI6 are: the kernel clock selected by SPI6SEL and provided to spi_ker_ck input, and the pclk1d3 bus interface clock.

Bit 4 Reserved, must be kept at reset value.

Bit 3 LPUART1EN : LPUART1 Peripheral Clocks Enable

Set and reset by software.

0: LPUART1 peripheral clocks disabled (default after reset)

1: LPUART1 peripheral clocks enabled

The peripheral clocks of the LPUART1 are: the kernel clock selected by LPUART1SEL and provided to lpuart_ker_ck input, and the pclk1d3 bus interface clock.

Bit 2 Reserved, must be kept at reset value.

Bit 1 SYSCFGEN : SYSCFG peripheral clock enable

Set and reset by software.

0: SYSCFG peripheral clock disabled (default after reset)

1: SYSCFG peripheral clock enabled

Bit 0 Reserved, must be kept at reset value.

9.7.48 RCC AHB3 Sleep clock register (RCC_AHB3LPENR)

Peripheral clocks can be enabled during CPU sleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 79. RCC_AHB3LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB3LPENR0x0FC0xF001 5131
RCC_C1_AHB3LPENR0x15C
RCC_C2_AHB3LPENR0x1BC
31302928272625242322212019181716
AXISRAMLPENITCMLPENDTCM2LPENDTCM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1LPEN
RrwrwrwR
1514131211109876543210
Res.QSPILPENRes.FMCLPENRes.Res.Res.FLITLPENRes.Res.JPGDECLPENDMA2DLPENRes.Res.Res.MDMALPEN
rwrwrwrwrwrw

Bit 31 AXISRAMLPEN : AXISRAM Block Clock Enable During CSleep mode

Set and reset by software.

0: AXISRAM interface clock disabled during CSleep mode

1: AXISRAM interface clock enabled during CSleep mode (default after reset)

Bit 30 ITCMLPEN : D1ITCM Block Clock Enable During CSleep mode

Set and reset by software.

0: D1 ITCM interface clock disabled during CSleep mode

1: D1 ITCM interface clock enabled during CSleep mode (default after reset)

Bit 29 DTCM2LPEN : D1 DTCM2 Block Clock Enable During CSleep mode

Set and reset by software.

0: D1 DTCM2 interface clock disabled during CSleep mode

1: D1 DTCM2 interface clock enabled during CSleep mode (default after reset)

Bit 28 D1DTCM1LPEN : D1DTCM1 Block Clock Enable During CSleep mode

Set and reset by software.

0: D1DTCM1 interface clock disabled during CSleep mode

1: D1DTCM1 interface clock enabled during CSleep mode (default after reset)

Bits 27:17 Reserved, must be kept at reset value.

Bit 16 SDMMC1LPEN : SDMMC1 and SDMMC1 Delay Clock Enable During CSleep Mode

Set and reset by software.

0: SDMMC1 and SDMMC1 Delay clock disabled during CSleep mode

1: SDMMC1 and SDMMC1 Delay clock enabled during CSleep mode (default after reset)

  1. Bit 15 Reserved, must be kept at reset value.
  2. Bit 14 QSPILPEN : QUADSPI and QUADSPI Delay Clock Enable During CSleep Mode
    Set and reset by software.
    0: QUADSPI and QUADSPI Delay clock disabled during CSleep mode
    1: QUADSPI and QUADSPI Delay clock enabled during CSleep mode (default after reset)
  3. Bit 13 Reserved, must be kept at reset value.
  4. Bit 12 FMCLPEN : FMC Peripheral Clocks Enable During CSleep Mode
    Set and reset by software.
    0: FMC peripheral clocks disabled during CSleep mode
    1: FMC peripheral clocks enabled during CSleep mode (default after reset):
    The peripheral clocks of the FMC are: the kernel clock selected by FMCSEL and provided to fmc_ker_ck input, and the rcc_hclk3 bus interface clock.
  5. Bits 11:9 Reserved, must be kept at reset value.
  6. Bit 8 FLITFLPEN : FLITF Clock Enable During CSleep Mode
    Set and reset by software.
    0: FLITF clock disabled during CSleep mode
    1: FLITF clock enabled during CSleep mode (default after reset)
  7. Bits 7:6 Reserved, must be kept at reset value.
  8. Bit 5 JPGDECLPEN : JPGDEC Clock Enable During CSleep Mode
    Set and reset by software.
    0: JPGDEC peripheral clock disabled during CSleep mode
    1: JPGDEC peripheral clock enabled during CSleep mode (default after reset)
  9. Bit 4 DMA2DLPEN : DMA2D Clock Enable During CSleep Mode
    Set and reset by software.
    0: DMA2D peripheral clock disabled during CSleep mode
    1: DMA2D peripheral clock enabled during CSleep mode (default after reset)
  10. Bits 3:1 Reserved, must be kept at reset value.
  11. Bit 0 MDMALPEN : MDMA Clock Enable During CSleep Mode
    Set and reset by software.
    0: MDMA peripheral clock disabled during CSleep mode
    1: MDMA peripheral clock enabled during CSleep mode (default after reset)

9.7.49 RCC AHB1 Sleep clock register (RCC_AHB1LPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 80. RCC_AHB1LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB1LPENR0x1000x1E03 C023
RCC_C1_AHB1LPENR0x160
RCC_C2_AHB1LPENR0x1C0
31302928272625242322212019181716
Res.Res.Res.USB2OTGHSULPILPENUSB2OTGHSLPENUSB1OTGHSULPILPENUSB1OTGLPENRes.Res.Res.Res.Res.Res.Res.ETH1RXLPENETH1TXLPEN
rwrwrwrwrwrw

1514131211109876543210
ETH1MACLPENARTLPENRes.Res.Res.Res.Res.Res.Res.Res.ADC12LPENRes.Res.Res.DMA2LPENDMA1LPEN
rwrwrwrwrw

Bits 31:29 Reserved, must be kept at reset value.

Bit 28 USB2OTGHSULPILPEN : USB_PHY2 clock enable during CSleep mode

Set and reset by software.

0: USB_PHY2 peripheral clock disabled during CSleep mode

1: USB_PHY2 peripheral clock enabled during CSleep mode (default after reset)

Note: If the application enters Sleep mode, this bit must be cleared to avoid USB communication failure.

Bit 27 USB2OTGHSLPEN : USB2OTG (OTG_HS2) peripheral clock enable during CSleep mode

Set and reset by software.

0: USB2OTG peripheral clocks disabled during CSleep mode

1: USB2OTG peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the USB2OTG are: the kernel clock selected by USBSEL and the rcc_hclk1 bus interface clock.

Bit 26 USB1OTGHSULPILPEN : USB_PHY1 clock enable during CSleep mode

Set and reset by software.

0: USB_PHY1 peripheral clock disabled during CSleep mode

1: USB_PHY1 peripheral clock enabled during CSleep mode (default after reset)

Bit 25 USB1OTGHSLPEN : USB1OTG (OTG_HS1) peripheral clock enable during CSleep mode

Set and reset by software.

0: USB1OTG peripheral clock disabled during CSleep mode

1: USB1OTG peripheral clock enabled during CSleep mode (default after reset)

The peripheral clocks of the USB1OTG are: the kernel clock selected by USBSEL and the rcc_hclk1 bus interface clock.

Bits 24:18 Reserved, must be kept at reset value.

Bit 17 ETH1RXLPEN : Ethernet Reception Clock Enable During CSleep Mode

Set and reset by software.

0: Ethernet Reception clock disabled during CSleep mode

1: Ethernet Reception clock enabled during CSleep mode (default after reset)

Bit 16 ETH1TXLPEN : Ethernet Transmission Clock Enable During CSleep Mode

Set and reset by software.

0: Ethernet Transmission clock disabled during CSleep mode

1: Ethernet Transmission clock enabled during CSleep mode (default after reset)

Bit 15 ETH1MACLPEN : Ethernet MAC bus interface Clock Enable During CSleep Mode

Set and reset by software.

0: Ethernet MAC bus interface clock disabled during CSleep mode

1: Ethernet MAC bus interface clock enabled during CSleep mode (default after reset)

Bit 14 ARTLPEN : ART Clock Enable During CSleep Mode

Set and reset by software.

0: ART clock disabled during CSleep mode

1: ART clock enabled during CSleep mode (default after reset)

Bits 13:6 Reserved, must be kept at reset value.

Bit 5 ADC12LPEN : ADC1/2 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: ADC1/2 peripheral clocks disabled during CSleep mode

1: ADC1/2 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the ADC1 and 2 are: the kernel clock selected by ADCSEL and provided to adc_ker_ck_input , and the rcc_hclk1 bus interface clock.

Bits 4:2 Reserved, must be kept at reset value.

Bit 1 DMA2LPEN : DMA2 Clock Enable During CSleep Mode

Set and reset by software.

0: DMA2 clock disabled during CSleep mode

1: DMA2 clock enabled during CSleep mode (default after reset)

Bit 0 DMA1LPEN : DMA1 Clock Enable During CSleep Mode

Set and reset by software.

0: DMA1 clock disabled during CSleep mode

1: DMA1 clock enabled during CSleep mode (default after reset)

9.7.50 RCC AHB2 Sleep clock register (RCC_AHB2LPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 81. RCC_AHB2LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB2LPENR0x1040xE000 0271
RCC_C1_AHB2LPENR0x164
RCC_C2_AHB2LPENR0x1C4
31302928272625242322212019181716
SRAM3LPENSRAM2LPENSRAM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.SDMMC2LPENRes.Res.RNGLPENHASHLPENCRYPTLPENRes.Res.Res.CAMITFLPEN
rwrwrwrwrw

Bit 31 SRAM3LPEN : SRAM3 Clock Enable During CSleep Mode

Set and reset by software.

0: SRAM3 clock disabled during CSleep mode

1: SRAM3 clock enabled during CSleep mode (default after reset)

Bit 30 SRAM2LPEN : SRAM2 Clock Enable During CSleep Mode

Set and reset by software.

0: SRAM2 clock disabled during CSleep mode

1: SRAM2 clock enabled during CSleep mode (default after reset)

Bit 29 SRAM1LPEN : SRAM1 Clock Enable During CSleep Mode

Set and reset by software.

0: SRAM1 clock disabled during CSleep mode

1: SRAM1 clock enabled during CSleep mode (default after reset)

Bits 28:10 Reserved, must be kept at reset value.

Bit 9 SDMMC2LPEN : SDMMC2 and SDMMC2 Delay Clock Enable During CSleep Mode

Set and reset by software.

0: SDMMC2 and SDMMC2 Delay clock disabled during CSleep mode

1: SDMMC2 and SDMMC2 Delay clock enabled during CSleep mode (default after reset)

Bits 8:7 Reserved, must be kept at reset value.

Bit 6 RNGLPEN : RNG peripheral clock enable during CSleep mode

Set and reset by software.

0: RNG peripheral clocks disabled during CSleep mode

1: RNG peripheral clock enabled during CSleep mode (default after reset)

The peripheral clocks of the RNG are: the kernel clock selected by RNGSEL and provided to rng_ker_ck input, and the rcc_hclk2 bus interface clock.

Bit 5 HASHPEN : HASH peripheral clock enable during CSleep mode

Set and reset by software.

0: HASH peripheral clock disabled during CSleep mode

1: HASH peripheral clock enabled during CSleep mode (default after reset)

Bit 4 CRYPTLPEN : CRYPT peripheral clock enable during CSleep mode

Set and reset by software.

0: CRYPT peripheral clock disabled during CSleep mode

1: CRYPT peripheral clock enabled during CSleep mode (default after reset)

Bits 3:1 Reserved, must be kept at reset value.

Bit 0 DCMILPEN : DCMI peripheral clock enable during CSleep mode

Set and reset by software.

0: DCMI peripheral clock disabled during CSleep mode

1: DCMI peripheral clock enabled during CSleep mode (default after reset)

9.7.51 RCC AHB4 Sleep clock register (RCC_AHB4LPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 82. RCC_AHB4LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB4LPENR0x1080x3128 07FF
RCC_C1_AHB4LPENR0x168
RCC_C2_AHB4LPENR0x1C8
31302928272625242322212019181716
Res.Res.SRAM4LPENBKPRAMLPENRes.Res.Res.ADC3LPENRes.Res.BDMALPENRes.CRCLPENRes.Res.Res.
rwrwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.GPIO1LPENGPIO2LPENGPIO3LPENGPIO4LPENGPIO5LPENGPIO6LPENGPIO7LPENGPIO8LPENGPIO9LPENGPIO10LPENGPIO11LPEN
rwrwrwrwrwrwrwrwrwrwrw

Bits 31:30 Reserved, must be kept at reset value.

Bit 29 SRAM4LPEN : SRAM4 Clock Enable During CSleep Mode

Set and reset by software.

0: SRAM4 clock disabled during CSleep mode

1: SRAM4 clock enabled during CSleep mode (default after reset)

Bit 28 BKPRAMLPEN : Backup RAM Clock Enable During CSleep Mode

Set and reset by software.

0: Backup RAM clock disabled during CSleep mode

1: Backup RAM clock enabled during CSleep mode (default after reset)

Bits 27:25 Reserved, must be kept at reset value.

Bit 24 ADC3LPEN : ADC3 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: ADC3 peripheral clocks disabled during CSleep mode

1: ADC3 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the ADC3 are: the kernel clock selected by ADCSEL and provided to adc_ker_ck_input , and the rcc_hclk4 bus interface clock.

Bits 23:22 Reserved, must be kept at reset value.

Bit 21 BDMALPEN : BDMA Clock Enable During CSleep Mode

Set and reset by software.

0: BDMA clock disabled during CSleep mode

1: BDMA clock enabled during CSleep mode (default after reset)

Bit 20 Reserved, must be kept at reset value.

Bit 19 CRCLPEN : CRC peripheral clock enable during CSleep mode

Set and reset by software.

0: CRC peripheral clock disabled during CSleep mode

1: CRC peripheral clock enabled during CSleep mode (default after reset)

Bits 18:11 Reserved, must be kept at reset value.

Bit 10 GPIOKLPEN : GPIOK peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOK peripheral clock disabled during CSleep mode

1: GPIOK peripheral clock enabled during CSleep mode (default after reset)

Bit 9 GPIOLPEN : GPIOJ peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOJ peripheral clock disabled during CSleep mode

1: GPIOJ peripheral clock enabled during CSleep mode (default after reset)

Bit 8 GPIOLPEN : GPIOI peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOI peripheral clock disabled during CSleep mode

1: GPIOI peripheral clock enabled during CSleep mode (default after reset)

Bit 7 GPIOLPEN : GPIOH peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOH peripheral clock disabled during CSleep mode

1: GPIOH peripheral clock enabled during CSleep mode (default after reset)

Bit 6 GPIOLPEN : GPIOG peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOG peripheral clock disabled during CSleep mode

1: GPIOG peripheral clock enabled during CSleep mode (default after reset)

Bit 5 GPIOLPEN : GPIOF peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOF peripheral clock disabled during CSleep mode

1: GPIOF peripheral clock enabled during CSleep mode (default after reset)

Bit 4 GPIOLPEN : GPIOE peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOE peripheral clock disabled during CSleep mode

1: GPIOE peripheral clock enabled during CSleep mode (default after reset)

Bit 3 GPIOLPEN : GPIOD peripheral clock enable during CSleep mode

Set and reset by software.

0: GPIOD peripheral clock disabled during CSleep mode

1: GPIOD peripheral clock enabled during CSleep mode (default after reset)

  1. Bit 2 GPIOCLPEN : GPIOC peripheral clock enable during CSleep mode
    Set and reset by software.
    0: GPIOC peripheral clock disabled during CSleep mode
    1: GPIOC peripheral clock enabled during CSleep mode (default after reset)
  2. Bit 1 GPIOBLPEN : GPIOB peripheral clock enable during CSleep mode
    Set and reset by software.
    0: GPIOB peripheral clock disabled during CSleep mode
    1: GPIOB peripheral clock enabled during CSleep mode (default after reset)
  3. Bit 0 GPIOALPEN : GPIOA peripheral clock enable during CSleep mode
    Set and reset by software.
    0: GPIOA peripheral clock disabled during CSleep mode
    1: GPIOA peripheral clock enabled during CSleep mode (default after reset)

9.7.52 RCC APB3 Sleep clock register (RCC_APB3LPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 83. RCC_APB3LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB3LPENR0x10C0x0000 0058
RCC_C1_APB3LPENR0x16C
RCC_C2_APB3LPENR0x1CC
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.WWDG1LPENRes.DSILPENLTDC LPENRes.Res.Res.
rwrwrw

Bits 31:5 Reserved, must be kept at reset value.

Bit 6 WWDG1LPEN : WWDG1 Clock Enable During CSleep Mode

Set and reset by software.

0: WWDG1 clock disable during CSleep mode

1: WWDG1 clock enabled during CSleep mode (default after reset)

When accessing this bit via RCC_APB3LPENR, only the CPU1 is allowed to control the low-power clock for WWDG1.

There is no protection to prevent the CPU2 to set the bit WWDG1LPEN to '1'.

It is not recommended to enable the WWDG1 clock for CPU2 operating modes in RCC_C2_APB3LPENR register.

Bit 4 DSILPEN : DSI peripheral clock enable during CSleep mode

Set and reset by software.

0: DSI clock disabled during CSleep mode

1: DSI clock enabled during CSleep mode (default after reset)

Bit 3 LTDC LPEN : LTDC peripheral clock enable during CSleep mode

Provides the pixel clock ( ltc_ker_ck ) to both DSI and LTDC

Set and reset by software.

0: LTDC clock disabled during CSleep mode

1: LTDC clock provided to DSI and LTDC during CSleep mode (default after reset)

Bits 2:0 Reserved, must be kept at reset value.

9.7.53 RCC APB1 Low Sleep clock register (RCC_APB1LLPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 84. RCC_APB1LLPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1LLPENR0x1100xE8FF CBFF
RCC_C1_APB1LLPENR0x170
RCC_C2_APB1LLPENR0x1D0
31302928272625242322212019181716
UART8LPENUART7LPENDAC12LPENRes.CECLPENRes.Res.Res.I2C3LPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPENSPDIFRXLPEN
r/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/w
1514131211109876543210
SPI3LPENSPI2LPENRes.Res.WWDG2LPENRes.LPTIM1LPENTIM14LPENTIM13LPENTIM12LPENTIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
r/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/wr/w

Bit 31 UART8LPEN: UART8 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: UART8 peripheral clocks disabled during CSleep mode

1: UART8 peripheral clocks enabled during CSleep mode (default after reset):

The peripheral clocks of the UART8 are: the kernel clock selected by USART234578SEL and provided to usart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 30 UART7LPEN: UART7 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: UART7 peripheral clocks disabled during CSleep mode

1: UART7 peripheral clocks enabled during CSleep mode (default after reset):

The peripheral clocks of the UART7 are: the kernel clock selected by USART234578SEL and provided to usart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 29 DAC12LPEN: DAC1/2 peripheral clock enable during CSleep mode

Set and reset by software.

0: DAC1/2 peripheral clock disabled during CSleep mode

1: DAC1/2 peripheral clock enabled during CSleep mode (default after reset)

Bit 28 Reserved, must be kept at reset value.

Bit 27 CECLPEN : HDMI-CEC Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: HDMI-CEC peripheral clocks disabled during CSleep mode

1: HDMI-CEC peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the HDMI-CEC are: the kernel clock selected by CECSEL and provided to cec_ker_ck input, and the pclk1d2 bus interface clock.

Bits 26:24 Reserved, must be kept at reset value.

Bit 23 I2C3LPEN : I2C3 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: I2C3 peripheral clocks disabled during CSleep mode

1: I2C3 peripheral clocks enabled during CSleep mode (default after reset):

The peripheral clocks of the I2C3 are: the kernel clock selected by I2C123SEL and provided to i2c_ker_ck input, and the pclk1d2 bus interface clock.

Bit 22 I2C2LPEN : I2C2 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: I2C2 peripheral clocks disabled during CSleep mode

1: I2C2 peripheral clocks enabled during CSleep mode (default after reset):

The peripheral clocks of the I2C2 are: the kernel clock selected by I2C123SEL and provided to i2c_ker_ck input, and the pclk1d2 bus interface clock.

Bit 21 I2C1LPEN : I2C1 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: I2C1 peripheral clocks disabled during CSleep mode

1: I2C1 peripheral clocks enabled during CSleep mode (default after reset):

The peripheral clocks of the I2C1 are: the kernel clock selected by I2C123SEL and provided to i2c_ker_ck input, and the pclk1d2 bus interface clock.

Bit 20 UART5LPEN : UART5 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: UART5 peripheral clocks disabled during CSleep mode

1: UART5 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the UART5 are: the kernel clock selected by USART234578SEL and provided to uart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 19 UART4LPEN : UART4 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: UART4 peripheral clocks disabled during CSleep mode

1: UART4 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the UART4 are: the kernel clock selected by USART234578SEL and provided to uart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 18 USART3LPEN : USART3 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: USART3 peripheral clocks disabled during CSleep mode

1: USART3 peripheral clocks enabled during CSleep mode (default after reset):

The peripheral clocks of the USART3 are: the kernel clock selected by USART234578SEL and provided to usart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 17 USART2LPEN: USART2 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: USART2 peripheral clocks disabled during CSleep mode

1: USART2 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the USART2 are: the kernel clock selected by USART234578SEL and provided to usart_ker_ck input, and the pclk1d2 bus interface clock.

Bit 16 SPDIFRXLPEN: SPDIFRX Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SPDIFRX peripheral clocks disabled during CSleep mode

1: SPDIFRX peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SPDIFRX are: the kernel clock selected by SPDIFSEL and provided to spdifrx_ker_ck input, and the pclk1d2 bus interface clock.

Bit 15 SPI3LPEN: SPI3 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SPI3 peripheral clocks disabled during CSleep mode

1: SPI3 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SPI3 are: the kernel clock selected by I2S123SRC and provided to spi_ker_ck input, and the pclk1d2 bus interface clock.

Bit 14 SPI2LPEN: SPI2 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SPI2 peripheral clocks disabled during CSleep mode

1: SPI2 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SPI2 are: the kernel clock selected by I2S123SRC and provided to spi_ker_ck input, and the pclk1d2 bus interface clock.

Bits 13:10 Reserved, must be kept at reset value.

Bit 11 WWDG2LPEN: WWDG2 Clock Enable During CSleep Mode

Set and reset by software.

0: WWDG2 clock disabled during CSleep mode

1: WWDG2 clock enabled during CSleep mode (default after reset)

When accessing this bit via RCC_APB1LLPENR register address, only the CPU2 is allowed to control the low-power clock for WWDG2.

There is no protection to prevent the CPU1 to set the WWDG2LPEN bit to '1'.

It is not recommended to enable the WWDG2 clock for CPU1 operating modes in RCC_C1_APB3LPENR register.

Bit 10 Reserved, must be kept at reset value.

Bit 9 LPTIM1LPEN: LPTIM1 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: LPTIM1 peripheral clocks disabled during CSleep mode

1: LPTIM1 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the LPTIM1 are: the kernel clock selected by LPTIM1SEL and provided to lptim_ker_ck input, and the pclk1d2 bus interface clock.

Bit 8 TIM14LPEN: TIM14 peripheral clock enable during CSleep mode

Set and reset by software.

0: TIM14 peripheral clock disabled during CSleep mode

1: TIM14 peripheral clock enabled during CSleep mode (default after reset)

  1. Bit 7 TIM13LPEN : TIM13 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM13 peripheral clock disabled during CSleep mode
    1: TIM13 peripheral clock enabled during CSleep mode (default after reset)
  2. Bit 6 TIM12LPEN : TIM12 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM12 peripheral clock disabled during CSleep mode
    1: TIM12 peripheral clock enabled during CSleep mode (default after reset)
  3. Bit 5 TIM7LPEN : TIM7 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM7 peripheral clock disabled during CSleep mode
    1: TIM7 peripheral clock enabled during CSleep mode (default after reset)
  4. Bit 4 TIM6LPEN : TIM6 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM6 peripheral clock disabled during CSleep mode
    1: TIM6 peripheral clock enabled during CSleep mode (default after reset)
  5. Bit 3 TIM5LPEN : TIM5 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM5 peripheral clock disabled during CSleep mode
    1: TIM5 peripheral clock enabled during CSleep mode (default after reset)
  6. Bit 2 TIM4LPEN : TIM4 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM4 peripheral clock disabled during CSleep mode
    1: TIM4 peripheral clock enabled during CSleep mode (default after reset)
  7. Bit 1 TIM3LPEN : TIM3 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM3 peripheral clock disabled during CSleep mode
    1: TIM3 peripheral clock enabled during CSleep mode (default after reset)
  8. Bit 0 TIM2LPEN : TIM2 peripheral clock enable during CSleep mode
    Set and reset by software.
    0: TIM2 peripheral clock disabled during CSleep mode
    1: TIM2 peripheral clock enabled during CSleep mode (default after reset)

9.7.54 RCC APB1 High Sleep clock register (RCC_APB1HLPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 85. RCC_APB1HLPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1HLPENR0x1140x0000 0136
RCC_C1_APB1HLPENR0x174
RCC_C2_APB1HLPENR0x1D4
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.FDCANLPENRes.Res.MDIOSLPENOPAMPLPENRes.SWPLPENCRSLPENRes.
rwrwrwrwrw

Bits 31:9 Reserved, must be kept at reset value.

Bit 8 FDCANLPEN : FDCAN Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: FDCAN peripheral clocks disabled during CSleep mode

1: FDCAN peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the FDCAN are: the kernel clock selected by FDCANSEL and provided to fdcan_ker_ck input, and the pclk1d2 bus interface clock.

Bits 7:6 Reserved, must be kept at reset value.

Bit 5 MDIOSLPEN : MDIOS peripheral clock enable during CSleep mode

Set and reset by software.

0: MDIOS peripheral clock disabled during CSleep mode

1: MDIOS peripheral clock enabled during CSleep mode (default after reset)

Bit 4 OPAMPLPEN : OPAMP peripheral clock enable during CSleep mode

Set and reset by software.

0: OPAMP peripheral clock disabled during CSleep mode

1: OPAMP peripheral clock enabled during CSleep mode (default after reset)

Bit 3 Reserved, must be kept at reset value.

Bit 2 SWPLPEN : SWPMI Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SWPMI peripheral clocks disabled during CSleep mode

1: SWPMI peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SWPMI are: the kernel clock selected by SWPSEL and provided to swpmi_ker_ck input, and the pclk1d2 bus interface clock.

Bit 1 CRSLPEN : Clock Recovery System peripheral clock enable during CSleep mode

Set and reset by software.

0: CRS peripheral clock disabled during CSleep mode

1: CRS peripheral clock enabled during CSleep mode (default after reset)

Bit 0 Reserved, must be kept at reset value.

9.7.55 RCC APB2 Sleep clock register (RCC_APB2LPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 86. RCC_APB2LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB2LPENR0x1180x31D7 3033
RCC_C1_APB2LPENR0x178
RCC_C2_APB2LPENR0x1D8
31302928272625242322212019181716
Res.Res.HRTIMLPENDFSDM1LPENRes.Res.Res.SAI3LPENSAI2LPENSAI1LPENRes.SPI5LPENRes.TIM17LPENTIM16LPENTIM15LPEN
rwrwrwrwrwrwrwrwrw

1514131211109876543210
Res.Res.SPI4LPENSPI1LPENRes.Res.Res.Res.Res.Res.USART6LPENUSART1LPENRes.Res.TIM8LPENTIM1LPEN
rwrwrwrwrwrw

Bits 31:30 Reserved , must be kept at reset value.

Bit 29 HRTIMLPEN : HRTIM peripheral clock enable during CSleep mode

Set and reset by software.

0: HRTIM peripheral clock disabled during CSleep mode

1: HRTIM peripheral clock enabled during CSleep mode (default after reset)

Bit 28 DFSDM1LPEN : DFSDM1 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: DFSDM1 peripheral clocks disabled during CSleep mode

1: DFSDM1 peripheral clocks enabled during CSleep mode (default after reset)

DFSDM1 peripheral clocks are: the kernel clocks selected by SAI1SEL and DFSDM1SEL and provided to Aclk and clk inputs respectively, and the rcc_pclk2 bus interface clock.

Bits 27:25 Reserved , must be kept at reset value.

Bit 24 SAI3LPEN : SAI3 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SAI3 peripheral clocks disabled during CSleep mode

1: SAI3 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SAI3 are: the kernel clock selected by SAI3SEL and provided to sai_a_ker_ck and sai_b_ker_ck inputs, and the rcc_pclk2 bus interface clock.

Bit 23 SAI2LPEN : SAI2 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SAI2 peripheral clocks disabled during CSleep mode

1: SAI2 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SAI2 are: the kernel clock selected by SAI23SEL and provided to sai_a_ker_ck and sai_b_ker_ck inputs, and the rcc_pclk2 bus interface clock.

Bit 22 SAI1LPEN : SAI1 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SAI1 peripheral clocks disabled during CSleep mode

1: SAI1 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SAI1 are: the kernel clock selected by SAI1SEL and provided to sai_a_ker_ck and sai_b_ker_ck inputs, and the rcc_pclk2 bus interface clock.

Bit 21 Reserved, must be kept at reset value.

Bit 20 SPI5LPEN : SPI5 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SPI5 peripheral clocks disabled during CSleep mode

1: SPI5 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SPI5 are: the kernel clock selected by SPI45SEL and provided to spi_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 19 Reserved, must be kept at reset value.

Bit 18 TIM17LPEN : TIM17 peripheral clock enable during CSleep mode

Set and reset by software.

0: TIM17 peripheral clock disabled during CSleep mode

1: TIM17 peripheral clock enabled during CSleep mode (default after reset)

Bit 17 TIM16LPEN : TIM16 peripheral clock enable during CSleep mode

Set and reset by software.

0: TIM16 peripheral clock disabled during CSleep mode

1: TIM16 peripheral clock enabled during CSleep mode (default after reset)

Bit 16 TIM15LPEN : TIM15 peripheral clock enable during CSleep mode

Set and reset by software.

0: TIM15 peripheral clock disabled during CSleep mode

1: TIM15 peripheral clock enabled during CSleep mode (default after reset)

Bits 15:14 Reserved, must be kept at reset value.

Bit 13 SPI4LPEN : SPI4 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SPI4 peripheral clocks disabled during CSleep mode

1: SPI4 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SPI4 are: the kernel clock selected by SPI45SEL and provided to spi_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 12 SPI1LPEN : SPI1 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SPI1 peripheral clocks disabled during CSleep mode

1: SPI1 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SPI1 are: the kernel clock selected by I2S123SRC and provided to spi_ker_ck input, and the rcc_pclk2 bus interface clock.

Bits 11:6 Reserved, must be kept at reset value.

Bit 5 USART6LPEN : USART6 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: USART6 peripheral clocks disabled during CSleep mode

1: USART6 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the USART6 are: the kernel clock selected by USART6SEL and provided to usart_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 4 USART1LPEN : USART1 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: USART1 peripheral clocks disabled during CSleep mode

1: USART1 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the USART1 are: the kernel clock selected by USART1SEL and provided to usart_ker_ck inputs, and the rcc_pclk2 bus interface clock.

Bits 3:2 Reserved, must be kept at reset value.

Bit 1 TIM8LPEN : TIM8 peripheral clock enable during CSleep mode

Set and reset by software.

0: TIM8 peripheral clock disabled during CSleep mode

1: TIM8 peripheral clock enabled during CSleep mode (default after reset)

Bit 0 TIM1LPEN : TIM1 peripheral clock enable during CSleep mode

Set and reset by software.

0: TIM1 peripheral clock disabled during CSleep mode

1: TIM1 peripheral clock enabled during CSleep mode (default after reset)

9.7.56 RCC APB4 Sleep clock register (RCC_APB4LPENR)

Peripheral clocks can be enabled during CPU CSleep mode by one or both CPUs. Please refer to Section 9.5.10: Peripheral allocation in order to get more information on peripheral allocation.

Table 87. RCC_APB4LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB4LPENR0x11C0x0421 DEAA
RCC_C1_APB4LPENR0x17C
RCC_C2_APB4LPENR0x1DC
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4LPENRes.Res.Res.Res.RTCAPBLPEN
rwrw
1514131211109876543210
VREFLPENCOMP12LPENRes.LPTIM5LPENLPTIM4LPENLPTIM3LPENLPTIM2LPENRes.I2C4LPENRes.SPI6LPENRes.LPUART1LPENRes.SYSCFGGLPENRes.
rwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bits 25:22 Reserved, must be kept at reset value.

Bit 21 SAI4LPEN : SAI4 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SAI4 peripheral clocks disabled during CSleep mode

1: SAI4 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SAI4 are: the kernel clocks selected by SAI4ASEL and SAI4BSEL, and provided to sai_a_ker_ck and sai_b_ker_ck inputs respectively, and the pclk1d3 bus interface clock.

Bits 20:17 Reserved, must be kept at reset value.

Bit 16 RTCAPBLPEN : RTC APB Clock Enable During CSleep Mode

Set and reset by software.

0: The register clock interface of the RTC (APB) is disabled during CSleep mode

1: The register clock interface of the RTC (APB) is enabled during CSleep mode (default after reset)

Bit 15 VREFLPEN : VREF peripheral clock enable during CSleep mode

Set and reset by software.

0: VREF peripheral clock disabled during CSleep mode

1: VREF peripheral clock enabled during CSleep mode (default after reset)

Bit 14 COMP12LPEN : COMP1/2 peripheral clock enable during CSleep mode

Set and reset by software.

0: COMP1/2 peripheral clock disabled during CSleep mode

1: COMP1/2 peripheral clock enabled during CSleep mode (default after reset)

Bit 13 Reserved, must be kept at reset value.

Bit 12 LPTIM5LPEN : LPTIM5 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: LPTIM5 peripheral clocks disabled during CSleep mode

1: LPTIM5 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the LPTIM5 are: the kernel clock selected by LPTIM345SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 11 LPTIM4LPEN : LPTIM4 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: LPTIM4 peripheral clocks disabled during CSleep mode

1: LPTIM4 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the LPTIM4 are: the kernel clock selected by LPTIM345SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 10 LPTIM3LPEN : LPTIM3 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: LPTIM3 peripheral clocks disabled during CSleep mode

1: LPTIM3 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the LPTIM3 are: the kernel clock selected by LPTIM345SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 9 LPTIM2LPEN : LPTIM2 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: LPTIM2 peripheral clocks disabled during CSleep mode

1: LPTIM2 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the LPTIM5 are: the kernel clock selected by LPTIM2SEL and provided to lptim_ker_ck input, and the pclk1d3 bus interface clock.

Bit 8 Reserved, must be kept at reset value.

Bit 7 I2C4LPEN : I2C4 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: I2C4 peripheral clocks disabled during CSleep mode

1: I2C4 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the I2C4 are: the kernel clock selected by I2C4SEL and provided to i2c_ker_ck input, and the pclk1d3 bus interface clock.

Bit 6 Reserved, must be kept at reset value.

Bit 5 SPI6LPEN : SPI6 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: SPI6 peripheral clocks disabled during CSleep mode

1: SPI6 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the SPI6 are: the kernel clock selected by SPI6SEL and provided to spi_ker_ck input, and the pclk1d3 bus interface clock.

Bit 4 Reserved, must be kept at reset value.

Bit 3 LPUART1LPEN : LPUART1 Peripheral Clocks Enable During CSleep Mode

Set and reset by software.

0: LPUART1 peripheral clocks disabled during CSleep mode

1: LPUART1 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the LPUART1 are: the kernel clock selected by LPUART1SEL and provided to lpuart_ker_ck input, and the pclk1d3 bus interface clock.

Bit 2 Reserved, must be kept at reset value.

Bit 1 SYSCFGLPEN : SYSCFG peripheral clock enable during CSleep mode

Set and reset by software.

0: SYSCFG peripheral clock disabled during CSleep mode

1: SYSCFG peripheral clock enabled during CSleep mode (default after reset)

Bit 0 Reserved, must be kept at reset value.

9.8 RCC register map

Table 88. RCC register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000RCC_CRRes.Res.PLL3RDYPLL3ONPLL2RDYPLL2ONPLL1RDYPLL1ONRes.Res.Res.Res.HSECSSONHSEBYPHSERDYHSEOND2CKRDYD1CKRDYHSI48RDYHSI48ONRes.Res.CSIKERONCSIRDYCSIONRes.HSIDIVFHSIDIV[1:0]HSIRDYHSIKERONHSION
Reset value00000000000000000000001
0x004RCC_HSICFGRRes.HSITRIM[6:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSICAL[11:0]
Reset value1000000XXXXXXXXXXXX
0x008RCC_CRRCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSI48CAL[9:0]
Reset valueXXXXXXXXXX
0x00CRCC_CSICFGRRes.Res.CSITRIM[5:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CSICAL[9:0]
Reset value100000XXXXXXXXXX
0x010RCC_CFGRMCO2SEL[2:0]MCO2PRE[3:0]MCO1SEL[2:0]MCO1PRE[3:0]Res.Res.Res.TIMPREHRTIMSELRes.Res.Res.RTCPRE[5:0]STOPKERWUCKSTOPWUCKRes.SWS[2:0]SW[2:0]
Reset value0000000000000000000000000000000
0x014reservedReserved
0x018RCC_D1CFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.D1CPRE[3:0]ReservedD1PPRE[2:0]HPRE[3:0]
Reset value00000000000
0x01CRCC_D2CFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.D2PPRE2[2:0]Res.D2PPRE1[2:0]Res.Res.Res.Res.
Reset value000000
0x020RCC_D3CFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.D3PPRE[2:0]Res.Res.Res.Res.Res.Res.Res.Res.
Reset value000
0x024reservedReserved
0x028RCC_PLLCKSELRRes.Res.Res.Res.Res.Res.DIVM3[5:0]Res.Res.DIVM2[5:0]Res.Res.DIVM1[5:0]Res.Res.PLLSRC[1:0]
Reset value10000010000010000000

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x02CRCC_PLLCFGRRes.Res.Res.Res.Res.Res.Res.DIVR3ENDIVQ3ENDIVP3ENDIVR2ENDIVQ2ENDIVP2ENDIVR1ENDIVQ1ENDIVP1ENRes.Res.Res.Res.PLL3RGE[1:0]PLL3VCOSELPLL3FRACENPLL2RGE[1:0]PLL2VCOSELPLL2FRACENPLL1RGE[1:0]PLL1VCOSELPLL1FRACEN
Reset value111111111000000000000
0x030RCC_PLL1DIVRRes.DIVR1[6:0]Res.DIVQ1[6:0]DIVP1[6:0]DIVN1[8:0]
Reset value000000100000010000001010000000
0x034RCC_PLL1FRACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FRACN1[12:0]Res.Res.Res.
Reset value000000000000000
0x038RCC_PLL2DIVRRes.DIVR2[6:0]Res.DIVQ2[6:0]DIVP2[6:0]DIVN2[8:0]
Reset value000000100000010000001010000000
0x03CRCC_PLL2FRACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FRACN2[12:0]Res.Res.Res.
Reset value000000000000000
0x040RCC_PLL3DIVRRes.DIVR3[6:0]Res.DIVQ3[6:0]DIVP3[6:0]DIVN3[8:0]
Reset value000000100000010000001010000000
0x044RCC_PLL3FRACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FRACN3[12:0]Res.Res.Res.
Reset value000000000000000
0x048reservedReserved
0x04CRCC_D1CCIPRRes.Res.CKPERSEL[1:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMICSELRes.Res.Res.Res.Res.Res.Res.DSISELRes.Res.QSPISSEL[1:0]Res.Res.Res.Res.FMCSEL[1:0]
Reset value00000000
0x050RCC_D2CCIP1RSWPSELRes.FDCANSEL[1:0]Res.Res.Res.Res.DFSDM1SELRes.Res.SPDIFSEL[1:0]Res.Res.SP45SEL[2:0]Res.Res.SP1123SEL[2:0]Res.Res.Res.Res.Res.SAI23SEL[2:0]Res.Res.Res.Res.Res.Res.Res.SA1SEL[2:0]
Reset value00000000000000000
0x054RCC_D2CCIP2RRes.Res.LPTIM1SEL[2:0]Res.Res.Res.Res.Res.CECOSEL[1:0]Res.USBSEL[1:0]Res.Res.Res.Res.Res.Res.Res.I2C123SEL[1:0]Res.Res.Res.RNGSEL[1:0]Res.Res.Res.USART16SEL[2:0]Res.Res.Res.USART234578SEL[2:0]
Reset value00000000000000000

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x058RCC_D3CCIPRRes.SPI6SEL[2:0]Res.SAI4BSEL[2:0]SAI4ASEL[2:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.ADCSEL[1:0]LPTIM345SEL[2:0]LPTIM2SEL[2:0]I2C4SEL[1:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LPUART1SEL[2:0]Res.
Reset value0 0 00 0 00 0 00 0 00 0 00 0 00 00 0 0
0x05CreservedReserved
0x060RCC_CIERRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LSECSSIEPLL3RDYIEPLL2RDYIEPLL1RDYIEHSI48RDYIECSIRDYIEHSERDYIEHSIRDYIELSERDYIELSIRDYIE
Reset value0000000000
0x064RCC_CIFRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSECSSFLSECSSFPLL3RDYFPLL2RDYFPLL1RDYFHSI48RDYFCSIRDYFHSERDYFHSIRDYFLSERDYFLSIRDYF
Reset value0000000000
0x068RCC_CICRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSECSSCLSECSSCPLL3RDYCPLL2RDYCPLL1RDYCHSI48RDYCCSIRDYCHSERDYCHSIRDYCLSERDYCLSIRDYC
Reset value0000000000
0x06CreservedReserved
0x070RCC_BDCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BDRSTRTCENRes.Res.Res.Res.Res.Res.RTCSSEL[1:0]Res.Res.Res.LSECSSDLSECSSONLSEDRV[1:0]LSEBYPLSERDYLSEON
Reset value0000000000
0x074RCC_CSRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LSIRDYLSION
Reset value00
0x078reservedReserved
0x07CRCC_AHB3RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1RSTQSPIRSTFMCRSTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.JPGDECRSTDMA2DRSTRes.Res.Res.MDMARST
Reset value000000
0x080RCC_AHB1RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.ETH1MACRSTARTRSTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.ADC12RSTRes.Res.Res.DMA2RSTDMA1RST
Reset value0000000
STMicroelectronics logo
STMicroelectronics logo

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x084RCC_AHB2RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.oSDMMC2RSTRNGRSTHASHRSTCRYPTRSTCAMITFRST
Reset valueoooo
0x088RCC_AHB4RSTRRes.Res.Res.Res.Res.Res.ooRes.Res.oRes.oRes.Res.Res.Res.Res.Res.Res.Res.oooooooooo
Reset value
0x08CRCC_APB3RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DSIRSTLTDRCRST
Reset valueoo
0x090RCC_APB1LRSTRUART8RSTUART7RSTDAC12RSTCECRSTRes.Res.Res.Res.I2C3RSTI2C2RSTI2C1RSTUART5RSTUART4RSTUSART3RSTUSART2RSTSPDIFRXRSTSPI3RSTSPI2RSTRes.Res.Res.Res.LPTIM1RSTTIM14RSTTIM13RSTTIM12RSTTIM7RSTTIM6RSTTIM5RSTTIM4RSTTIM3RSTTIM2RST
Reset valueoooooooooooooooooooooooo
0x094RCC_APB1HRSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.ooRes.Res.MDIOSRSTOPAMPFRSTRes.RSTCRSRSTRes.
Reset valueoooo
0x098RCC_APB2RSTRRes.Res.HRTIMRSTDFSDM1RSTRes.Res.Res.SAI3RSTSAI2RSTSAI1RSTRes.SPI5RSTRes.TIM17RSTTIM16RSTTIM15RSTRes.Res.SPI4RSTSPI1RSTRes.Res.Res.Res.Res.Res.USART6RSTUSART1RSTRes.Res.TIM8RSTTIM1RST
Reset valueooooooooooooooo
0x09CRCC_APB4RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4RSTRes.Res.Res.Res.Res.VREFRSTCOMP12RSTRes.LPTIM5RSTLPTIM4RSTLPTIM3RSTLPTIM2RSTRes.I2C4RSTRes.Res.SPI6RSTRes.LPUART1RSTRes.
Reset valueooooooooooo
0x0A0RCC_GCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.oooo
Reset valueoooo
0x0A4reservedReserved

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x0A8RCC_D3AMRRes.SRAM4AMENBKPRAMAMENRes.Res.Res.ADC3AMENRes.Res.SAI4AMENCRCAMENRes.Res.Res.RTCAMENVREFAMENCOMP12AMENRes.Res.LPTIM5AMENLPTIM4AMENLPTIM3AMENLPTIM2AMENRes.I2C4AMENRes.SPI6AMENRes.Res.LPUART1AMENRes.BDWAMEN
Reset value000000000000000
0x0AC
to
0x0CC
reservedReserved
0x0D0RCC_RSRLPWR2RSTFLPWR1RSTFWWDG2RSTFWWDG1RSTFIWDG2RSTFIWDG1RSTFSFT2RSTFSFT1RSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFC2RSTFC1RSTFRMVFRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000000011111110
0x0D4RCC_AHB3ENRAXISRAMENITCMENDTCM2ENDTCM1ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1ENRes.QSPIENRes.Res.FMCMENRes.Res.Res.FLITFENRes.Res.JPGDECENDMA2DENRes.Res.MDMAEN
Reset value00000000000
0x0D8RCC_AHB1ENRRes.Res.Res.Res.USB2OTGHSENUSB1OTGHSULPIENUSB1OTGHSENRes.Res.Res.Res.Res.Res.USB2OTGHSULPIENETH1RXENETH1TXENETH1MACENARTENRes.Res.Res.Res.Res.Res.Res.Res.Res.ADC12ENRes.Res.Res.DMA2ENDMA1EN
Reset value00000000000
0x0DCRCC_AHB2ENRSRAM3ENSRAM2ENSRAM1ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC2ENRes.Res.RNGENHASHENCRYPTENRes.Res.Res.DOMIEN
Reset value00000000
0x0E0RCC_AHB4ENRRes.Res.Res.Res.BKPRAMENRes.Res.HSEMENADC3ENRes.Res.BDMAENCRCENRes.Res.Res.Res.Res.Res.Res.Res.Res.GPIOKENGPIOJENGPIOIENGPIOHENGPIOGENGPIOFENGPIOEENGPIODENGPIOCENGPIOBENGPIOAEN
Reset value000000000000000
0x0E4RCC_APB3ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WWDG1ENRes.DSIENLTDGENRes.Res.Res.
Reset value000

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x0E8RCC_APB1LENRUART8ENUART7ENDAC12ENRes.CECENRes.Res.Res.I2C3ENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2ENSPDIFRXENSPI3ENSPI2ENRes.Res.WWDG2ENRes.LPTIM1ENTIM14ENTIM13ENTIM12ENTIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
Reset value0000000000000000000000000
0x0ECRCC_APB1HENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANENRes.Res.MDOIOSENOPAMPENRes.SWPENCRSENRes.
Reset value00000
0x0F0RCC_APB2ENRRes.Res.HRTIMENDFSDM1ENRes.Res.Res.SAI3ENSAI2ENSAI1ENRes.SPI5ENRes.TIM17ENTIM16ENTIM15ENRes.Res.SPI4ENSPI1ENRes.Res.Res.Res.Res.Res.USART6ENUSART1ENRes.Res.TIM8ENTIM1EN
Reset value000000000000000
0x0F4RCC_APB4ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4ENRes.Res.Res.Res.RTCAPBENVREFENCOMP12ENRes.LPTIM5ENLPTIM4ENLPTIM3ENLPTIM2ENRes.I2C4ENReservedSPI6ENRes.LPUART1ENRes.Res.Res.Res.
Reset value0100000000000
0x0F8reservedReserved
0x0FCRCC_AHB3LPENRAXISRAM1LPENITCM1LPENDTCM2LPENDTCM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1LPENRes.QSPI1LPENRes.FMCLPENRes.Res.Res.Res.FLITFLPENRes.Res.JPGDECLPENDMA2DLPENRes.Res.Res.MDMALPEN
Reset value11111111111
0x100RCC_AHB1LPENRRes.Res.Res.Res.USB2OTGHSULPILPENUSB2OTGHSLPENUSB1OTGHSULPILPENUSB1OTGHSLPENRes.Res.Res.Res.Res.Res.ETH1RXLPENETH1TXLPENETH1MACLPENARTLPENRes.Res.Res.Res.Res.Res.Res.Res.ADC12LPENRes.Res.Res.DMA2LPENDMA1LPEN
Reset value11111111111
0x104RCC_AHB2LPENRSRAM3LPENSRAM2LPENSRAM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC2LPENRes.Res.RNGLPENHASHLPENCRYPTLPENRes.Res.Res.CAMITFLPEN
Reset value11111111

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x108RCC_AHB4LPENRRes.Res.SRAM4LPENBKPRAMLPENRes.Res.Res.ADC3LPENRes.Res.BDMLPENRes.CRCLPENRes.Res.Res.Res.Res.Res.Res.Res.Res.GPIOKLPENGPIOJLPENGPIOILPENGPIOHLPENGPIOGLPENGPIOFLPENGPIOELPENGPIODLPENGPIOCLPENGPIOBLPENGPIOALPEN
Reset value1111111111111111
0x10CRCC_APB3LPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WWDG1LPENRes.Res.DSILPENLTDCLPENRes.Res.
Reset value111
0x110RCC_APB1LLPENRUART8LPENUART7LPENDAC12LPENRes.CECLPENRes.Res.Res.I2C3LPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPENSPDIFRXLPENSPI3LPENSPI2LPENRes.Res.Res.WWDG2LPENRes.LPTIM1LPENTIM14LPENTIM13LPENTIM12LPENTIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
Reset value1111111111111111111111111
0x114RCC_APB1HLPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANLPENRes.Res.Res.MDIOSLPENOPAMP1LPENRes.SWPLPENCRSLPENRes.
Reset value11111
0x118RCC_APB2LPENRRes.Res.HRTIMLPENDFSDM1LPENRes.Res.Res.SAI3LPENSAI2LPENSAI1LPENRes.SPI5LPENRes.TIM17LPENTIM16LPENTIM15LPENRes.Res.SPI4LPENSPI1LPENRes.Res.Res.Res.Res.Res.Res.USART6LPENUSART1LPENRes.Res.TIM8LPENTIM1LPEN
Reset value111111111111111
0x11CRCC_APB4LPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.SAI4LPENRes.Res.Res.Res.Res.RTCAPBLPENVREFLPENCOMP12LPENRes.LPTIM5LPENLPTIM4LPENLPTIM3LPENLPTIM2LPENRes.I2C4LPENRes.Res.SPI6LPENRes.LPUART1LPENRes.SYSCFGLPENRes.
Reset value111111111111
0x120 to 0x12CreservedReserved
0x130RCC_C1_RSRLPWR2RSTFLPWR1RSTFWWDG2RSTFWWDG1RSTFIWDG2RSTFIWDG1RSTFSFT2RSTFSFT1RSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFC2RSTFC1RSTFRMVFRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000000011111110

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x134RCC_C1_AHB3ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1ENRes.QSPIENRes.FMCPNRes.Res.Res.Res.Res.Res.Res.JPGDECENDMA2DENRes.Res.MDMAEN
Reset value000000
0x138RCC_C1_AHB1ENRRes.Res.Res.Res.USB2OTGHSENUSB1OTGHSULPIENUSB1OTGHSENRes.Res.Res.Res.Res.Res.Res.ETH1RXENETH1TXENETH1MACENARTENRes.Res.Res.Res.Res.Res.Res.Res.ADC12ENRes.Res.Res.DMA2ENDMA1EN
Reset value0000000000
0x13CRCC_C1_AHB2ENRSRAM3ENSRAM2ENSRAM1ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC2ENRes.Res.Res.RNGENHASHENCRYPTENRes.Res.Res.DOMIEN
Reset value00000000
0x140RCC_C1_AHB4ENRRes.Res.Res.BKPRAMENRes.Res.HSENMENADC3ENRes.Res.BDMAENRes.CRCENRes.Res.Res.Res.Res.Res.Res.Res.GPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOENGPIOEN
Reset value000000000000000
0x144RCC_C1_APB3ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WWDG1ENRes.DSIENLTDENRes.Res.Res.
Reset value000
0x148RCC_C1_APB1LENRUART8ENUART7ENDAC12ENRes.HDMICECENRes.Res.Res.I2C3ENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2ENSPDIFRXENSPI3ENSPI2ENRes.Res.WWDC2ENRes.LPTIM1ENTIM14ENTIM13ENTIM12ENTIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
Reset value000000000000000000000000
0x14CRCC_C1_APB1HENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANENRes.Res.MPIOSENOPAMPENRes.SWPENCRSENRes.
Reset value00000
0x150RCC_C1_APB2ENRRes.Res.HRTIMENDFSDM1ENRes.Res.Res.SAI3ENSAI2ENSAI1ENRes.SPI5ENRes.TIM17ENTIM16ENTIM15ENRes.Res.SPI4ENSPI1ENRes.Res.Res.Res.Res.Res.USART6ENUSART1ENRes.Res.TIM8ENTIM1EN
Reset value000000000000000

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x154RCC_C1_
APB4ENR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4ENRes.Res.Res.Res.RTCAPBENVREFENCOMP12EN0Res.LPTIM5ENLPTIM4ENLPTIM3ENLPTIM2ENRes.I2C4ENRes.SPI6ENRes.LPUART1ENRes.SYSCFGEN
010000000000
0x158reservedReserved
0x15CRCC_C1_
AHB3LPENR
AXISRAMLPENITCMLPENDTCM2LPENDTCM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1LPENRes.QSPILPENRes.FMCLPENRes.Res.Res.Res.Res.FLITFLPENRes.JPGDECLPENDMA2DLPENRes.Res.MDMALPEN
11111111111
0x160RCC_C1_
AHB1LPENR
Res.Res.Res.Res.USB2OTGHSLPENUSB1OTGHSULPILPENUSB1OTGHSLPENRes.Res.Res.Res.Res.Res.Res.ETH1RXLPENETH1TXLPENETH1MACLPENARTLPENRes.Res.Res.Res.Res.Res.Res.Res.ADC12LPENRes.Res.Res.DMA2LPENDMA1LPEN
1111111111
0x164RCC_C1_
AHB2LPENR
SRAM3LPENSRAM2LPENSRAM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC2LPENRes.Res.Res.RNGLPENHASHLPENCRYPTLPENRes.Res.Res.CAMITFLPEN
11111111
0x168RCC_C1_
AHB4LPENR
Res.Res.SRAM4LPENBKPRAMLPENRes.Res.ADC3LPENRes.Res.Res.DMA1LPENRes.CRCLPENRes.Res.Res.Res.Res.Res.Res.Res.GPIOKLPENGPIOJLPENGPIOILPENGPIOHLPENGPIOGLPENGPIOFLPENGPIOELPENGPIODLPENGPIOCLPENGPIOBLPENGPIOALPEN
1111111111111111
0x16CRCC_C1_
APB3LPENR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WWDG1LPENRes.DSILPENLTDCLPENRes.Res.Res.
111
0x170RCC_C1_
APB1LLPENR
UART8LPENUART7LPENDAC12LPENRes.CECLPENRes.Res.Res.I2C3LPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPENSPDIFRXLPENSPI3LPENSPI2LPENRes.Res.WWDG2LPENRes.LPTIM1LPENTIM14LPENTIM13LPENTIM12LPENTIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
1111111111111111111111111

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x174RCC_C1_APB1HLPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANLPENRes.Res.MDIOSLPENOPAMPLPENRes.SWPLPENCRSLPENRes.
Reset value11111
0x178RCC_C1_APB2LPENRRes.Res.HRTIMLPENDFSDM1LPENRes.Res.SA3LPENSA2LPENSA1LPENRes.SPI5LPENRes.TIM17LPENTIM16LPENTIM15LPENRes.Res.SPI4LPENSPI1LPENRes.Res.Res.Res.Res.Res.USART6LPENUSART1LPENRes.Res.TIM8LPENTIM1LPENRes.
Reset value111111111111111
0x17CRCC_C1_APB4LPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4LPENRes.Res.Res.Res.RTCAPBLPENVREFLPENCOMP12LPENRes.LPTIM5LPENLPTIM4LPENLPTIM3LPENLPTIM2LPENRes.I2C4LPENRes.Res.SPI6LPENRes.Res.LPUART1LPENRes.SYSCFGLPEN
Reset value111111111111
0x180 - 0x18CreservedReserved
0x190RCC_C2_RSRLPWR2RSTFLPWR1RSTFWWDG2RSTFWWDG1RSTFIWDG2RSTFIWDG1RSTFSFT2RSTFSFT1RSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFC2RSTFC1RSTFRMVFRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000000011111110
0x194RCC_C2_AHB3ENRAXISRAMENITCMENDTCM2ENDTCM1ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1ENRes.QSPIENRes.FMCENRes.Res.Res.Res.FLITFENRes.Res.JPGDECENDMA2DENRes.Res.Res.MDMAEN
Reset value00000000000
0x198RCC_C2_AHB1ENRRes.Res.Res.Res.USB2OTGHSENUSB1OTGHSULPIENUSB1OTGHSENRes.Res.Res.Res.Res.Res.Res.ETH1RXENETH1TXENETH1MACENARTENRes.Res.Res.Res.Res.Res.Res.Res.ADC12ENRes.Res.Res.Res.DMA2ENDMA1EN
Reset value0000000000
0x19CRCC_C2_AHB2ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC2ENRes.Res.RNGENHASHENCRYPTENRes.Res.Res.DCMIEN
Reset value00000

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x1A0RCC_C2_AHB4EN
R
Res.Res.Res.0Res.Res.00Res.Res.00Res.Res.Res.Res.Res.Res.Res.Res.Res.0000000000
Reset value
0x1A4RCC_C2_APB3EN
R
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.0000000000
Reset value
0x1A8RCC_C2_APB1ENR
R
UART8ENUART7ENDAC12ENRes.HDMIICEENRes.Res.Res.I2C3ENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2ENSPDIFRXENSPI3ENSPI2ENRes.Res.WWDG2ENRes.Res.LPTIM1ENTIM14ENTIM13ENTIM12ENTIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
Reset value000000000000000000000000
0x1ACRCC_C2_APB1HENR
R
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.00000000
Reset value
0x1B0RCC_C2_APB2EN
R
Res.Res.HRTIMENDFSDM1ENRes.Res.Res.Res.SAI3ENSAI2ENSAI1ENSPI5ENRes.TIM17ENTIM16ENTIM15ENRes.Res.SPI4ENSPI1ENRes.Res.Res.Res.Res.Res.USART6ENUSART11ENRes.Res.TIM8ENTIM11EN
Reset value000000000000000
0x1B4RCC_C2_APB4EN
R
Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI4ENRes.Res.Res.Res.Res.RTCAPBENVREFENCOMP12ENRes.LPTIM5ENLPTIM4ENLPTIM3ENLPTIM2ENRes.Res.I2C4ENRes.SPI6ENRes.0000
Reset value0100000000
0x1B8reservedReserved
0x1BCRCC_C2_AHB3LPENR
R
AXISRAM1LPENITCM1LPENDTCM2LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC1LPENRes.GSPILPENRes.FMCLPENRes.Res.Res.Res.Res.FLITFLPENRes.Res.JPGDECLPENDMA2DLPENRes.Res.MDMALPEN
Reset value1111111111
0x1C0RCC_C2_AHB1LPENR
R
Res.Res.Res.Res.USB2OTGHSLPENUSB1OTGHSULPILPENUSB1OTGHSULPENRes.Res.Res.Res.Res.Res.Res.ETH1TXLPENETH1RXLPENETH1MACLPENARTLPENRes.Res.Res.Res.Res.Res.Res.Res.ADC12LPENRes.Res.Res.Res.DMA2LPENDMA1LPEN
Reset value11111111111

Table 88. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x1C4RCC_C2_AHB2LPENRSRAM3LPENSRAM2LPENSRAM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMC2LPENRes.Res.RNGLPENHASHLPENCRYPTLPENRes.Res.Res.
Reset value11100000000000000000001001110001
0x1C8RCC_C2_AHB4LPENRRes.Res.SRAM4LPENBKPRAMLPENRes.Res.Res.ADC3LPENRes.Res.DMA1LPENRes.CRCLPENRes.Res.Res.Res.Res.Res.Res.Res.Res.GPIO1LPENGPIO2LPENGPIO3LPENGPIO4LPENGPIO5LPENGPIO6LPENGPIO7LPENGPIO8LPENGPIO9LPENGPIO10LPEN
Reset value00110001001010000000001111111111
0x1CCRCC_C2_APB3LPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WWDG1LPENRes.DSILPENLTDC1LPENRes.Res.Res.
Reset value00000000000000000000000001011000
0x1D0RCC_C2_APB1LLPENRUART8LPENUART7LPENDAC12LPENRes.CECLPENRes.Res.Res.I2C3LPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPENSPDIFRXLPENSP3LPENSP2LPENRes.Res.WWDG2LPENRes.LPTIM1LPENTIM14LPENTIM13LPENTIM12LPENTIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
Reset value11101000111111111100101111111111
0x1D4RCC_C2_APB1HLPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANLPENRes.Res.MDIOSLPENOPAMP1LPENRes.SWP1LPENCRSLPENRes.
Reset value00000000000000000000000100110110
0x1D8RCC_C2_APB2LPENRRes.Res.HRTIM1LPENDFSDM1LPENRes.Res.Res.SA3LPENSA2LPENSA1LPENRes.SP5LPENRes.TIM17LPENTIM16LPENTIM15LPENRes.Res.SP4LPENSP1LPENRes.Res.Res.Res.Res.Res.USART6LPENUSART1LPENRes.Res.TIM8LPENTIM1LPEN
Reset value00110001110101110011000000110011
0x1DCRCC_C2_APB4LPENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.SA4LPENRes.Res.Res.Res.RTCAPBLPENVREFLPENCOMP12LPENRes.LPTIM5LPENLPTIM4LPENLPTIM3LPENLPTIM2LPENRes.I2C4LPENRes.SP6LPENRes.LPUART1LPENRes.SYSCFG1LPENRes.
Reset value00000000001000011101111010101010
0x1E0
to
0x1FC
reservedReserved
Refer to Section 2.3 on page 134 for the register boundary addresses.