8. Reset and clock control (RCC)

The RCC block manages the clock and reset generation for the whole microcontroller.

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

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

8.1 RCC main features

Reset block

Clock generation block

8.2 RCC block diagram

Figure 42 shows the RCC block diagram.

Figure 42. RCC Block diagram

RCC Block diagram showing internal components like System Reset Control, Core Reset Control, Clock Manager (CMU), System Clock Generation (SCGU), Peripheral Kernel clock Selection (PKSU), and Register Interface and Control. It also shows external connections to pins like NRST, OSC32_IN, OSC32_OUT, OSC_IN, OSC_OUT, CRS, TIM1,8,15,16,17, IWDG1, WWDG1, and EXTI.

The diagram illustrates the internal architecture of the RCC (Reset and Clock Control) block. At the top, the NRST pin is connected to a 'System Reset Control' block, which outputs 'nreset (system reset)' to all circuit blocks. Below this, 'Core Reset Control' blocks receive inputs from IWDG1, WWDG1, and 'rcc_sft_rst', outputting 'rcc_c_rst'. The 'Clock Manager (CMU)' is central, receiving various clock inputs and managing power and sleep states for the CPU and peripherals. The 'System Clock Generation (SCGU)' block uses oscillators (HSE/CSS, HSI48, LSI, HSI, CSI) and PLLs (PLL1, PLL2, PLL3) to generate system clocks. The 'Peripheral Kernel clock Selection (PKSU)' block selects clocks for peripherals like Ethernet, USB, and I2S. The 'Register Interface and Control' block is connected to the AHB Bus and handles interrupts (EXTI). External pins include NRST, OSC32_IN, OSC32_OUT, OSC_IN, OSC_OUT, CRS, TIM1,8,15,16,17, IWDG1, WWDG1, and EXTI. Internal signals include 'rcc_ckfail_evt', 'rcc_it', 'rcc_hsecss_it', and 'rcc_lsecss_it'.

RCC Block diagram showing internal components like System Reset Control, Core Reset Control, Clock Manager (CMU), System Clock Generation (SCGU), Peripheral Kernel clock Selection (PKSU), and Register Interface and Control. It also shows external connections to pins like NRST, OSC32_IN, OSC32_OUT, OSC_IN, OSC_OUT, CRS, TIM1,8,15,16,17, IWDG1, WWDG1, and EXTI.

8.3 RCC pins and internal signals

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

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

Signal nameSignal typeDescription
NRSTI/OSystem reset, can be used to provide reset to external devices
OSC32_INI32 kHz oscillator input
OSC32_OUTO32 kHz oscillator output
OSC_INISystem oscillator input
Table 49. RCC input/output signals connected to package pins or balls (continued)
Signal nameSignal typeDescription
OSC_OUTOSystem oscillator output
MCO1OOutput clock 1 for external devices
MCO2OOutput clock 2 for external devices
I2S_CKINIExternal kernel clock input for digital audio interfaces: SPI/I2S, SAI, and DFSDM
ETH_MII_TX_CLKIExternal TX clock provided by the Ethernet MII interface
ETH_MII_RX_CLKIExternal RX clock provided by the Ethernet MII interface
ETH_RMII_REF_CLKIExternal reference clock provided by the Ethernet RMII interface
USB_PHY1IUSB 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 49 only shows the most significant internal signals.

Table 50. RCC internal input/output signals
New Signal nameSignal typeDescription
rcc_itOGeneral interrupt request line
rcc_hsecss_itOHSE clock security failure interrupt
rcc_lsecss_itOLSE clock security failure interrupt
rcc_ckfail_evtOEvent indicating that a HSE clock security failure is detected. This signal is connected to TIMERS
nresetI/OSystem reset
iwdg1_out_rstIReset line driven by the IWDG1, indicating that a timeout occurred.
wwdg1_out_rstIReset line driven by the WWDG1, indicating that a timeout occurred.
pwr_bor_rstIBrownout reset generated by the PWR block
pwr_por_rstIPower-on reset generated by the PWR block
pwr_vsw_rstIPower-on reset of the VSW domain generated by the PWR block
rcc_perx_rstOReset generated by the RCC for the peripherals.
pwr_d[3:1]_wkupIWake-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]_reqOLow-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_ctrlISignals generated by the PWR, in order to set the processor into CStop when exiting from system Stop mode.
c_sleepISignal generated by the CPU, indicating if the CPU is in CRun, CSleep or CStop.
c_deepsleepI
perx_ker_ckreqISignal generated by some peripherals in order to request the activation of their kernel clock.

Table 50. RCC internal input/output signals (continued)

New Signal nameSignal typeDescription
rcc_perx_ker_ckOKernel clock signals generated by the RCC, for some peripherals.
rcc_perx_bus_ckOBus interface clock signals generated by the RCC for peripherals.
rcc_bus_ckOClocks for APB (rcc_apb_ck), AHB (rcc_ahb_ck) and AXI (rcc_axi_ck) bridges generated by the RCC.
rcc_c_ckOClock for the CPU, generated by the RCC.
rcc_fclk_cO

8.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:

8.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 the backup domain. The power-on/off reset function can be disabled through PDR_ON pin (see Section 6.5: Power supply supervision ).

Refer to Table 51: Reset distribution summary for details.

8.4.2 System reset

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

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 43 , some internal sources (such as pwr_por_rst , pwr_bor_rst , iwdg1_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\ \mu\text{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 43 ).

Figure 43. System reset circuit

Figure 43: System reset circuit diagram. The diagram shows the internal logic of the RCC (Reset and Clock Control) block. An external NRST pin is connected to an internal node through a capacitor C_R to ground. This node is pulled up to VDD by a resistor R_PU. The internal node is connected to an inverter, which is followed by a filter. The output of the filter is the nreset (System Reset) signal. The internal node is also connected to a pulse generator (20 µs min) and an OR gate. The OR gate has multiple inputs: pwr_bor_rst, pwr_por_rst, iwdg1_out_rst, wwdg1_out_rst, lpwr_rst, and SFTRESET. The output of the OR gate is connected to the filter input. The diagram is labeled with 'RCC' in the top right corner and 'MSv41927V2' in the bottom right corner.
graph LR
    VDD -- R_PU --> Node
    NRST -- Node
    Node -- C_R --> GND
    Node -- Inverter --> Filter
    Filter --> nreset
    
    pwr_bor_rst --> OR
    pwr_por_rst --> OR
    iwdg1_out_rst --> OR
    wwdg1_out_rst --> OR
    lpwr_rst --> OR
    SFTRESET --> OR
    
    OR --> PulseGen[Pulse generator 20 us min]
    PulseGen --> Transistor[NMOS Transistor]
    Transistor --> Node
    OR --> Filter
Figure 43: System reset circuit diagram. The diagram shows the internal logic of the RCC (Reset and Clock Control) block. An external NRST pin is connected to an internal node through a capacitor C_R to ground. This node is pulled up to VDD by a resistor R_PU. The internal node is connected to an inverter, which is followed by a filter. The output of the filter is the nreset (System Reset) signal. The internal node is also connected to a pulse generator (20 µs min) and an OR gate. The OR gate has multiple inputs: pwr_bor_rst, pwr_por_rst, iwdg1_out_rst, wwdg1_out_rst, lpwr_rst, and SFTRESET. The output of the OR gate is connected to the filter input. The diagram is labeled with 'RCC' in the top right corner and 'MSv41927V2' in the bottom right corner.

8.4.3 Local resets

CPU reset

The CPU can reset itself by means of the CPURST bit in RCC AHB3 reset register (RCC_AHB3RSTR) .

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, a 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 51 gives a detailed overview of reset sources and scopes.

Table 51. Reset distribution summary

Reset sourceReset nameD1 CPUD1 InterconnectD1 PeripheralsD1 DebugWWDG1D2 InterconnectD2 PeripheralsD3 PeripheralsIWDG1FLASHRTC domainBackup RAMSystem SupplyNRST pinComments
PinNRSTxxx-xxxxx----x– Resets D1 and D2 domains, and all their peripherals
– Resets D3 domain peripherals
– Resets \( V_{DD} \) domain: IWDG1, LDO...
– Debug features, Flash memory, RTC and backup RAM are not reset
PWRpwr_bor_rstxxx-xxxxx----x– Same as pin reset. The pin is asserted as well.
pwr_por_rstxxxxxxxxxx--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
lpwr_rstxxx-xxxxx----x– The low-power mode security reset has the same scope than pwr_por_rst . Refer to Section 8.4.5: Low-power mode security reset (lpwr_rst) for additional information.

Table 51. Reset distribution summary (continued)

Reset sourceReset nameD1 CPUD1 InterconnectD1 PeripheralsD1 DebugWWDG1D2 InterconnectD2 PeripheralsD3 PeripheralsIWDG1FLASHRTC domainBackup RAMSystem SupplyNRST pinComments
RCCBDRST----------x---- The backup domain reset can be triggered by software. Refer to Section 8.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-----xx-------- Resets D2 domain, and all its peripherals, when the domain exits DStandby mode.
stby_rstxxxxxxxx-x----- 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.
CPURSTx---x---------- This reset is generated by software through the bit located into RCC AHB3 reset register (RCC_AHB3RSTR) .
- Resets the CPU, and the WWDG1 block
CPUSFTRESETxxx-xxxxx----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.
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-xxxxx----x- Same as pwr_bor_rst reset.
WWDG1wwdg1_out_rstxxx-xxxxx----x- Same as pwr_bor_rst reset.

8.4.4 Reset source identification

The CPU can identify the reset source by checking the reset flags in the RCC_RSR (or RCC_C1_RSR) register.

The CPU can reset the flags by setting RMVF bit.

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

Table 52. Reset source identification (RCC_RSR) (1)

#Situations Generating a ResetLPWRRSTFWWDG1RSTFIWDG1RSTFSFTRSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFCPURSTF
1Power-on reset (pwr_por_rst)0000111111
2Pin reset (NRST)0000010001
3Brownout reset (pwr_bor_rst)0000011001
4System reset generated by CPU (SFTRESET)0001010001
5CPU reset (CPURST)0000000001
6WWDG1 reset (wwdg1_out_rst)0100010001
8IWDG1 reset (iwdg1_out_rst)0010010001
10D1 exits DStandby mode0000000010
11D2 exits DStandby mode0000000100
12D1 erroneously enters DStandby mode or CPU erroneously enters CStop mode1000010001

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

8.4.5 Low-power mode security reset (lpwr_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_D1 option bytes, a system reset is generated if the following conditions are met:

LPWRRSTF bits in RCC reset status register (RCC_RSR) indicates that a low-power mode security reset occurred (see line #12 in Table 52 ).

lpwr_rst is activated when a low-power mode security reset due to D1 or CPU occurred.

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

8.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 6.4.1: System supply startup section of PWR block for additional information.

8.4.7 Power-on and wakeup sequences

For detailed diagrams refer to Section 6.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 CPU is able to execute code, depends on the system state and on its configuration. Figure 44 shows the most usual examples.

Power-on wakeup sequence

The power-on wakeup sequence shown in Figure 44 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, lpwr_rst, STFxRESET, iwdg1_out_rst and wwdg1_out_rst (if WW1RSC = 1).

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.

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 44. Boot sequences versus system states

Timing diagrams for various boot sequences: 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. Each diagram shows the sequence of system states over time.

Power-on wake-up (with or without VBAT)
Trigger: VDD > POR
Sequence: [REG + BandGap] → [HSI] → [FL_PWR] → [FL_OPTB] → [RUN]

PAD Reset (or pwr_bor_rst, SFTRESET, iwdg1_out_rst,...)
Trigger: NRST goes HIGH
Sequence: [REG] → [(HSI)] → [(FL_PWR)] → [RUN]

Wake-up from system Standby
Trigger: Wakeup event
Sequence: [REG] → [HSI] → [FL_PWR] → [FL_OPTB] → [RUN]

Re-start from system Stop
Trigger: Wakeup event
Sequence: [REG_VOS3] → [(HSI/CSI)] → [RUN]

Wake-up from Domain DStandby
Trigger: Wakeup event
Sequence: [ePOD] → [FL_PWR] → [RUN]

Re-start from Domain DStop
Trigger: Wakeup event
Sequence: [D] → [RUN]

[REG + BandGap]Bandgap and regulator settling time[FL_PWR]Flash power recovery delay[RUN]CPU Fetch
[REG_VOS3]REG settling time to reach the VOS3[FL_OPTB]Option bytes loading delay[D]Delay due to handshake RCC, PWR and EXTI
[REG]REG settling time[ePOD]Power switch delay delay[HSI/CSI]HSI or CSI Restart delay

MSv41930V2

Timing diagrams for various boot sequences: 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. Each diagram shows the sequence of system states over time.

8.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 CPU 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 45 , 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 45. Top-level clock tree

Top-level clock tree diagram for RCC showing various clock sources (LSI, LSE, HSE, HSI, CSI, HSI48, CRS) and their paths through dividers and PLLs to various system components like CPU, peripherals, and USB PHY.

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

Legend:

MSv63804V2

Top-level clock tree diagram for RCC showing various clock sources (LSI, LSE, HSE, HSI, CSI, HSI48, CRS) and their paths through dividers and PLLs to various system components like CPU, peripherals, and USB PHY.

8.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 CPU. 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 ).

8.5.2 Description of the oscillators

HSE oscillator

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

Figure 46. HSE/LSE clock source

Figure 46. 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 and load capacitors (C_L1 and C_L2) to ground. The OSC32_OUT and OSC_OUT pins are also connected to ground through load capacitors. The diagram is labeled MSV39357V2.
Figure 46. 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 and load capacitors (C_L1 and C_L2) to ground. The OSC32_OUT and OSC_OUT pins are also connected to ground through load capacitors. 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 46 : 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 8.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. This driving capability must be chosen according to the external crystal/ceramic component requirement to insure a stable oscillation. The driving capability must be set before enabling the LSE oscillator.

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 pres divider allows the application to select an HSI output frequency of 8, 16, 32 or 64 MHz. This pres divider 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 8.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 8.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 bits.

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 8.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:

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 achieve improved accuracy (refer to the product datasheet for more information).

After reset, the factory calibration value is loaded in the CSICAL[7: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 bits.

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 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 9: 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 8.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) .

8.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 8.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.

8.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 45 for additional information on signal selection).

MCO1 and MCO2 outputs are controlled via MCO1PRE[3:0], MCO1[2:0], MCO2PRE[3:0] and MCO2[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).

8.5.5 PLL description

The RCC features three PLLs:

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

Figure 47. PLL block diagram

Figure 47. PLL block diagram. The diagram shows the internal architecture of a PLL (PLLx). A reference clock (refx_ck) is input and selected via a multiplexer (0 or 1) controlled by PLLxVCOSEL. The selected reference frequency (2 to 16 MHz or 1 to 2 MHz) is fed into a PFD + CP block. The PFD + CP block also receives feedback from a VCO (VCOH or VCOL) through a divider (DIVNx). The PFD + CP output is filtered by an LPF and then fed into the VCO. The VCO output frequency is 192 to 836 MHz (VCOH) or 150 to 420 MHz (VCOL). The VCO output is divided by DIVPx, DIVQx, and DIVRx to produce pllx_p_ck, pllx_q_ck, and pllx_r_ck respectively. The DIVNx divider is controlled by a Sigma-Delta Modulator and an SH_REG block, which are in turn controlled by PLLxFRACEN and FRACNx. An LDO block provides a 1 V supply to the PLLx. The PLLxRGE field of the RCC_PLLCFGR register is used to set the reference frequency range. The PLLxVCOSEL bit is used to select the VCO output range. The PLLxON bit is used to enable the PLL. The PLLxRDY bit indicates that the PLL is ready (locked).

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

MSV39366V2

Figure 47. PLL block diagram. The diagram shows the internal architecture of a PLL (PLLx). A reference clock (refx_ck) is input and selected via a multiplexer (0 or 1) controlled by PLLxVCOSEL. The selected reference frequency (2 to 16 MHz or 1 to 2 MHz) is fed into a PFD + CP block. The PFD + CP block also receives feedback from a VCO (VCOH or VCOL) through a divider (DIVNx). The PFD + CP output is filtered by an LPF and then fed into the VCO. The VCO output frequency is 192 to 836 MHz (VCOH) or 150 to 420 MHz (VCOL). The VCO output is divided by DIVPx, DIVQx, and DIVRx to produce pllx_p_ck, pllx_q_ck, and pllx_r_ck respectively. The DIVNx divider is controlled by a Sigma-Delta Modulator and an SH_REG block, which are in turn controlled by PLLxFRACEN and FRACNx. An LDO block provides a 1 V supply to the PLLx. The PLLxRGE field of the RCC_PLLCFGR register is used to set the reference frequency range. The PLLxVCOSEL bit is used to select the VCO output range. The PLLxON bit is used to enable the PLL. The PLLxRDY bit indicates that the PLL is ready (locked).

The PLLs are controlled via RCC_PLLxDIVR , RCC_PLLxFRACR , RCC_PLLCFGR 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 PLLs Configuration Register (RCC_PLLCFGR) 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 for a frequency equal or higher to 2 MHz, 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 bitfield can only take odd values or 1 (no division).

The PLLs are disabled by hardware when:

PLL initialization phase

Figure 48 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 PLLs 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.
    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.

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 48. PLLs Initialization Flowchart

Flowchart for PLLs Initialization, showing integer and fractional modes. The integer mode flowchart ends at 'Ready for use in integer mode'. The fractional mode flowchart ends at 'Ready for use in fractional mode' after a 'Value update on-the-fly' block.
graph TD
    subgraph IntegerMode [ ]
        direction TB
        I1([PLL enable sequence integer mode]) --> I2[Select clock source (RCC_CKSELR)
- (PLL SRC)] 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 --> I5 I6 -- Yes --> I7([Ready for use in integer mode]) end subgraph FractionalMode [ ] direction TB F1([PLL enable sequence fractional mode]) --> F2[Select clock source (RCC_CKSELR)
- (PLL SRC)] 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 --> F5 F6 -- Yes --> F7([Ready for use in fractional mode]) end I3 -.-> F3 F3 -.-> I3 F3 -.-> F3R[Can be repeated for each PLL] I7 --> 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]) F8 -.-> F8R[Value update on-the-fly] F9 -.-> F8R F8R -.-> F9
Flowchart for PLLs Initialization, showing integer and fractional modes. The integer mode flowchart ends at 'Ready for use in integer mode'. The fractional mode flowchart ends at 'Ready for use in fractional mode' after a 'Value update on-the-fly' block.

MSV39367V1

8.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 49 shows a simplified view of the clock distribution for the CPU 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 the CPU clock. However this also impacts the clock frequency of all bus matrix.

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.

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

Figure 49. 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 shows the flow from sys_ck through various prescalers (D1CPRE, HPRE, D2PPRE1, D2PPRE2, D3PPRE) to generate rcc_c_ck, rcc_aclk, rcc_hclk, rcc_pclk, and rcc_timx_ker_ck signals. A System Clock Enabling (SCEU) block is also shown.

(1) Can be changed on-the-fly
x Represents the selected mux input after a system reset
MSV63805V2

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 shows the flow from sys_ck through various prescalers (D1CPRE, HPRE, D2PPRE1, D2PPRE2, D3PPRE) to generate rcc_c_ck, rcc_aclk, rcc_hclk, rcc_pclk, and rcc_timx_ker_ck signals. A System Clock Enabling (SCEU) block is also shown.

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 53 shows how to select the timer clock frequency.

Table 53. 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
0xx0F rcc_hclk1F rcc_hclk1The timer clock is equal to the bus clock.
1000F rcc_hclk1F rcc_hclk1 / 2The timer clock is twice as fast as the bus clock.
1010F rcc_hclk1 / 2F rcc_hclk1 / 4
1100F rcc_hclk1 / 4F rcc_hclk1 / 8
1110F rcc_hclk1 / 8F rcc_hclk1 / 16

Table 53. Ratio between clock timer and pclk (continued)

D2PPRE1 (1)
D2PPRE2
TIMPRE
(2)
\( F_{rcc\_timx\_ker\_ck} \)
\( F_{rcc\_timy\_ker\_ck} \)
\( F_{rcc\_pclk1} \)
\( F_{rcc\_pclk2} \)
Comments
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) .

8.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 54 gives a detailed description of their behavior.

Table 54. 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
10HSI and CSICSIHSI and/or CSI
1CSICSI

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 55 gives a detailed description of their behavior.

Table 55. 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 exists 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 (or RCC_C1_RSR) and RCC_BDCR registers.

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

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 the CPU will get automatically the same clock frequencies when leaving CStop mode: this mainly depends on the System state. For example If the CPU goes to CStop, while the D3 domain is kept in CRun, when the CPU exits from CStop, the clock settings remain unchanged. If the D3 domain goes to CStop while the CPU is also in CStop, then when the CPU exits from CStop, the CPU will operate with HSI or CSI when it left the CStop mode.

8.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 CPU, 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 56 shows the kernel clock that the RCC can deliver to the peripherals. Each row of Table 56 represents a MUX and the peripherals connected to its output. The columns starting from number 5 represents the clock sources. Column 3 gives the maximum allowed frequency at each MUX output. It is up to the user to respect these requirements.

Table 56. 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_CKINUSB_PHY1spdifrx_symb_ckDisabled
LTDC-1661007550D1x
FMCFMCSEL2752001501001203
OCTOSPIOCTOSPISEL3332001501001203
SDMMC1SDMMCSEL250 (4)200 (4)150 (4)100 (4)01
SDMMC2250200150100
DFSDM1 AclkSAI1SEL250200150100D201243
DFSDM1 clkDFSDM1SEL2752001508510
FDCANFDCANSEL1251007550120
HDMI-CECCECSEL11112 (3)01
I2C1,2,3, 5I2C1235SEL137.510075431023
LPTIM1LPTIM1SEL137.51007543120345
TIM[8:1][17:12]-27520015085x
RNGRNGSEL2502001501001023
SAI1SAI1SEL1661501137501243
SPDIFRXSPDIFRXSEL2502001501000123
SPI(I2S)1,2,3SPI123SEL2501801257501243

Table 56. 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_CKINUSB_PHY1spdifrx_symb_ckDisabled
SPI4,5SPI45SEL25018012575D2120534
SWPMISWPMISEL137.5100754301
USART1,6, 10
UART9
USART16910SEL137.51007543120345
USART2,3
UART4,5,7,8
USART234578SEL137.51007543120345
USB1OTGUSBSEL12510050501230
USB1ULPI-60604540x
ADC1,2, 3ADCSEL160 (4)160 (4)6040 (4)012
I2C4I2C4SEL137.51007543D31023
LPTIM2LPTIM2SEL137.51007543120345
LPTIM3,4,5LPTIM345SEL137.51007543120345
LPUART1LPUART1SEL137.51007543120345
SAI4_ASAI4ASEL16615011375012435
SAI4_BSAI4BSEL16615011375012435
SPI(I2S)6SPI6SEL250180125751205346
RTC/AWURTCSEL1VSW3 (5)120

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. Clock CSI divided by 122.

4. 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.

5. Clock HSE divided by RTCPRE.

Figure 50 to Figure 60 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 8.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 50 and Figure 51 , 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 52 ).

Figure 50. Kernel clock distribution for SAIs and SPDIFRX

Figure 50: Kernel clock distribution for SAIs and SPDIFRX. This block diagram shows the internal clock distribution within the RCC (Reset and Clock Control) block for SPDIFRX and SAI4 peripherals. The SPDIFRX section includes a 4-to-1 MUX (SPDIFRXSEL) selecting between pll1_q_ck, pll2_r_ck, pll3_r_ck, and hsi_ker_ck. Its output is gated by SPDIFRXEN and SPDIFRXLPEN signals before reaching the SPDIFRX peripheral's spdifrx_ker_ck input. The SAI4 section includes two 6-to-1 MUXes (SAI4SEL A and B) selecting from pll1_q_ck, pll2_p_ck, pll3_p_ck, I2S_CKIN, per_ck, and spdifrx_symb_ck. These outputs are gated by SAI4EN and SAI4LPEN signals to reach the SAI4 peripheral's sai_a_ker_ck and sai_b_ker_ck inputs. A common clock line connects the SPDIFRX output to the SAI4 inputs. A legend indicates that 'D' marks dynamic MUX switches.

RCC

SPDIFRXSEL

SAI4SEL A

SAI4SEL B

SPDIFRXEN
SPDIFRXLPEN

Logic

SPDIFRX

spdifrx_ker_ck

SAI4EN
SAI4LPEN

Logic

SAI4

sai_a_ker_ck

sai_b_ker_ck

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

MSv63809V3

Figure 50: Kernel clock distribution for SAIs and SPDIFRX. This block diagram shows the internal clock distribution within the RCC (Reset and Clock Control) block for SPDIFRX and SAI4 peripherals. The SPDIFRX section includes a 4-to-1 MUX (SPDIFRXSEL) selecting between pll1_q_ck, pll2_r_ck, pll3_r_ck, and hsi_ker_ck. Its output is gated by SPDIFRXEN and SPDIFRXLPEN signals before reaching the SPDIFRX peripheral's spdifrx_ker_ck input. The SAI4 section includes two 6-to-1 MUXes (SAI4SEL A and B) selecting from pll1_q_ck, pll2_p_ck, pll3_p_ck, I2S_CKIN, per_ck, and spdifrx_symb_ck. These outputs are gated by SAI4EN and SAI4LPEN signals to reach the SAI4 peripheral's sai_a_ker_ck and sai_b_ker_ck inputs. A common clock line connects the SPDIFRX output to the SAI4 inputs. A legend indicates that 'D' marks dynamic MUX switches.
  1. 1. 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 8.5.11: Peripheral clock gating control .

Figure 51. Kernel clock distribution for DFSDM

Figure 51: Kernel clock distribution for DFSDM. This block diagram shows the internal clock distribution within the RCC (Reset and Clock Control) block for DFSDM and SAI1 peripherals. The DFSDM section includes a 2-to-1 MUX (DFSDM1SEL) selecting between rcc_pclk2 and sys_ck. Its output is gated by DFSDMEN and DFSDMLPEN signals before reaching the DFSDM peripheral's clk and Aclk inputs. The SAI1 section includes a 5-to-1 MUX (SAI1SEL) selecting from pll1_q_ck, pll2_p_ck, pll3_p_ck, I2S_CKIN, and per_ck. Its output is gated by SAI1EN and SAI1LPEN signals to reach the SAI1 peripheral's sai_a_ker_ck and sai_b_ker_ck inputs. A common clock line connects the DFSDM output to the SAI1 inputs. A legend indicates that 'D' marks dynamic MUX switches.

RCC

DFSDM1SEL

SAI1SEL

DFSDMEN
DFSDMLPEN

Logic

DFSDM

clk

Aclk

SAI1EN
SAI1LPEN

Logic

SAI1

sai_a_ker_ck

sai_b_ker_ck

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

MSv63806V2

Figure 51: Kernel clock distribution for DFSDM. This block diagram shows the internal clock distribution within the RCC (Reset and Clock Control) block for DFSDM and SAI1 peripherals. The DFSDM section includes a 2-to-1 MUX (DFSDM1SEL) selecting between rcc_pclk2 and sys_ck. Its output is gated by DFSDMEN and DFSDMLPEN signals before reaching the DFSDM peripheral's clk and Aclk inputs. The SAI1 section includes a 5-to-1 MUX (SAI1SEL) selecting from pll1_q_ck, pll2_p_ck, pll3_p_ck, I2S_CKIN, and per_ck. Its output is gated by SAI1EN and SAI1LPEN signals to reach the SAI1 peripheral's sai_a_ker_ck and sai_b_ker_ck inputs. A common clock line connects the DFSDM output to the SAI1 inputs. A legend indicates that 'D' marks dynamic MUX switches.
  1. 1. 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 8.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 52. Kernel clock distribution for SPIs and SPI/I2S

Figure 52: Kernel clock distribution for SPIs and SPI/I2S. The diagram shows four clock multiplexers (MUX) within the RCC block, each selecting a clock source for a specific peripheral. The MUXes are labeled SPDIFRXSEL, SPI123SEL, SPI45SEL, and SPI6SEL. Each MUX has multiple inputs (PLL1, PLL2, PLL3, HSI, CSI, HSE, I2S_CKIN, etc.) and a dynamic switch (D) that selects one input. The selected clock is then passed through a Logic block (AND gate) along with an enable signal (e.g., SPDIFRXEN, SPI[3:1]EN, SPI[5:4]EN, SPI6AMEN) to the corresponding peripheral block: SPDIF-RX, SPI/I2S[3:1], SPI[5:4], and SPI/I2S6. The diagram also includes labels for PKSU and PKEU blocks. A legend at the bottom left indicates that 'D' represents a dynamic switch that is glitch-free.

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

MSV63807V5

Figure 52: Kernel clock distribution for SPIs and SPI/I2S. The diagram shows four clock multiplexers (MUX) within the RCC block, each selecting a clock source for a specific peripheral. The MUXes are labeled SPDIFRXSEL, SPI123SEL, SPI45SEL, and SPI6SEL. Each MUX has multiple inputs (PLL1, PLL2, PLL3, HSI, CSI, HSE, I2S_CKIN, etc.) and a dynamic switch (D) that selects one input. The selected clock is then passed through a Logic block (AND gate) along with an enable signal (e.g., SPDIFRXEN, SPI[3:1]EN, SPI[5:4]EN, SPI6AMEN) to the corresponding peripheral block: SPDIF-RX, SPI/I2S[3:1], SPI[5:4], and SPI/I2S6. The diagram also includes labels for PKSU and PKEU blocks. A legend at the bottom left indicates that 'D' represents a dynamic switch that is glitch-free.
  1. 1. 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. or details on each enable cell, please refer to Section 8.5.11: Peripheral clock gating control .

Figure 53. Kernel clock distribution for I2Cs

Schematic diagram of kernel clock distribution for I2Cs. It shows the RCC block containing PKSU and PKEU sub-blocks. PKSU contains two 4-to-1 multiplexers. The top MUX (I2C4SEL) has inputs 0 (rcc_pclk4), 1 (pll3_r_ck, marked with a 'D'), 2 (hsi_ker_ck), and 3 (csi_ker_ck). Its output goes to a Logic block in PKEU along with I2C4AMEN, I2C4EN, and I2C4LPEN signals. The Logic block outputs i2c_ker_ck_req and i2c_ker_ck to the I2C4 peripheral. The bottom MUX (I2C123SEL) has inputs 0 (rcc_pclk1), 1 (pll3_r_ck, marked with a 'D'), 2 (hsi_ker_ck), and 3 (csi_ker_ck). Its output goes to another Logic block in PKEU along with I2C[5,3:1]EN and I2C[5,3:1]LPEN signals. This Logic block outputs i2c_ker_ck_req and i2c_ker_ck to the I2C[5,3:1] peripheral. A legend indicates that 'D' represents a dynamic switch that is glitch-free.
Schematic diagram of kernel clock distribution for I2Cs. It shows the RCC block containing PKSU and PKEU sub-blocks. PKSU contains two 4-to-1 multiplexers. The top MUX (I2C4SEL) has inputs 0 (rcc_pclk4), 1 (pll3_r_ck, marked with a 'D'), 2 (hsi_ker_ck), and 3 (csi_ker_ck). Its output goes to a Logic block in PKEU along with I2C4AMEN, I2C4EN, and I2C4LPEN signals. The Logic block outputs i2c_ker_ck_req and i2c_ker_ck to the I2C4 peripheral. The bottom MUX (I2C123SEL) has inputs 0 (rcc_pclk1), 1 (pll3_r_ck, marked with a 'D'), 2 (hsi_ker_ck), and 3 (csi_ker_ck). Its output goes to another Logic block in PKEU along with I2C[5,3:1]EN and I2C[5,3:1]LPEN signals. This Logic block outputs i2c_ker_ck_req and i2c_ker_ck to the I2C[5,3:1] peripheral. 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

MSV63810V1

  1. 1. 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 8.5.11: Peripheral clock gating control .

Figure 54. Kernel clock distribution for UARTs, USARTs and LPUART1

Schematic diagram of kernel clock distribution for UARTs, USARTs, and LPUART1. It shows three multiplexers (MUX) selecting clock sources (rcc_pclk2, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, lse_ck) for different groups of peripherals. The selected clocks pass through 'Logic' blocks (AND gates) controlled by enable signals (e.g., USART1EN, USART1LPEN) to various UART, USART, and LPUART1 blocks. A legend indicates that 'D' in a red box means the switch is dynamic.

The diagram illustrates the internal clock distribution for various UART, USART, and LPUART1 peripherals. On the left, three multiplexers (MUX) are shown, each with six inputs: rcc_pclk2, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, and lse_ck. The first MUX (top) is controlled by USART16910SEL and its output (marked with a red 'D') is connected to a 'Logic' block for USART1. The second MUX (middle) is controlled by USART234578910SEL and its output (marked with a red 'D') is connected to 'Logic' blocks for USART6, USART10, and USART[3:2]. The third MUX (bottom) is controlled by LPUART1SEL and its output (marked with a red 'D') is connected to 'Logic' blocks for UART9, UART10, UART[3:2], UART[5:4], UART[8:7], and LPUART1. Each 'Logic' block consists of an AND gate that combines the selected clock with an enable signal (e.g., USART1EN, USART1LPEN) to produce the final kernel clock (e.g., usart_ker_ck_req, usart_ker_ck). The peripherals are shown on the right: USART1, USART6, UART9, USART10, USART[3:2], UART[5:4], UART[8:7], and LPUART1. The entire diagram is enclosed in a dashed box labeled 'RCC' on the left and 'PKSU' and 'PKEU' at the bottom.

Schematic diagram of kernel clock distribution for UARTs, USARTs, and LPUART1. It shows three multiplexers (MUX) selecting clock sources (rcc_pclk2, pll2_q_ck, pll3_q_ck, hsi_ker_ck, csi_ker_ck, lse_ck) for different groups of peripherals. The selected clocks pass through 'Logic' blocks (AND gates) controlled by enable signals (e.g., USART1EN, USART1LPEN) to various UART, USART, and LPUART1 blocks. A legend indicates that 'D' in a red box means the switch is dynamic.

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

MSV63811V2

  1. 1. 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 8.5.11: Peripheral clock gating control .

Figure 55. Kernel clock distribution for LTDC

Figure 55: Kernel clock distribution for LTDC. The diagram shows the RCC block containing PKSU and PKEU. Inside RCC, pll3_r_ck passes through PKSU to PKEU. PKEU contains an AND gate with inputs from a 'Logic' block (controlled by LTDCEN and LTDCLPEN) and the clock signal. The output is ltdc_ker_ck, which feeds into the LTDC peripheral block. MSV41935V2
Figure 55: Kernel clock distribution for LTDC. The diagram shows the RCC block containing PKSU and PKEU. Inside RCC, pll3_r_ck passes through PKSU to PKEU. PKEU contains an AND gate with inputs from a 'Logic' block (controlled by LTDCEN and LTDCLPEN) and the clock signal. The output is ltdc_ker_ck, which feeds into the LTDC peripheral block. MSV41935V2
    1. 1. 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 8.5.11: Peripheral clock gating control .
  1. The FMC, OCTOSPI and SDMMC1/2 can also use a clock different from the bus interface clock for more flexibility.

Figure 56. Kernel clock distribution for SDMMC, OCTOSPI and FMC

Figure 56: Kernel clock distribution for SDMMC, OCTOSPI and FMC. The diagram shows the RCC block with PKSU and PKEU. PKSU contains three MUXes: SDMMCSEL (selecting between pll1_q_ck and pll2_r_ck), OCTOSPISEL (selecting between rcc_hclk3, pll1_q_ck, pll2_r_ck, and per_ck), and FMCSEL (selecting between rcc_hclk3, pll1_q_ck, pll2_r_ck, and per_ck). Selected clocks pass to PKEU, which contains gating logic for each: SDMMC[2:1]EN/LPEN, OCTOSPI[2:1]EN/LPEN, and FMCEN/FMCLPEN. Outputs are sdmmc_ker_ck, octospi_ker_ck, and fmc_ker_ck, feeding SDMMC1/2, OCTOSPI1/2, and FMC blocks respectively. A 'D' icon indicates dynamic glitch-free switching. MSV48160V2
Figure 56: Kernel clock distribution for SDMMC, OCTOSPI and FMC. The diagram shows the RCC block with PKSU and PKEU. PKSU contains three MUXes: SDMMCSEL (selecting between pll1_q_ck and pll2_r_ck), OCTOSPISEL (selecting between rcc_hclk3, pll1_q_ck, pll2_r_ck, and per_ck), and FMCSEL (selecting between rcc_hclk3, pll1_q_ck, pll2_r_ck, and per_ck). Selected clocks pass to PKEU, which contains gating logic for each: SDMMC[2:1]EN/LPEN, OCTOSPI[2:1]EN/LPEN, and FMCEN/FMCLPEN. Outputs are sdmmc_ker_ck, octospi_ker_ck, and fmc_ker_ck, feeding SDMMC1/2, OCTOSPI1/2, and FMC blocks respectively. A 'D' icon indicates dynamic glitch-free switching. MSV48160V2
  1. 1. 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 8.5.11: Peripheral clock gating control .

Figure 57 shows the clock distribution for the USB blocks. The USB1ULPI block receives its clock from the external PHY.

The USB1OTG block receives the clock for USB communications which can be selected among different sources thanks to the MUX controlled by USBSEL.

Figure 57. Kernel clock distribution for USB (2)

Figure 57: Kernel clock distribution for USB. The diagram shows the RCC block with a MUX for USB1OTG clock selection (inputs: 0, pll1_q_ck, pll3_q_ck, hsi48_ck) controlled by USBSEL. The selected clock goes through a Logic block (USB1OTGEN, USB1OTGLPEN) to the USB1OTG block (usb_ker_ck). The USB1ULPI block receives its clock from the external PHY (USB_PHY1) through a Logic block (USB1ULPIEN, USB1ULPILPEN) to the USB1ULPI block (ulpi_ck). A legend indicates that 'D' represents a dynamic switch with glitch-free transition. Reference MSV48161V3.
Figure 57: Kernel clock distribution for USB. The diagram shows the RCC block with a MUX for USB1OTG clock selection (inputs: 0, pll1_q_ck, pll3_q_ck, hsi48_ck) controlled by USBSEL. The selected clock goes through a Logic block (USB1OTGEN, USB1OTGLPEN) to the USB1OTG block (usb_ker_ck). The USB1ULPI block receives its clock from the external PHY (USB_PHY1) through a Logic block (USB1ULPIEN, USB1ULPILPEN) to the USB1ULPI block (ulpi_ck). A legend indicates that 'D' represents a dynamic switch with glitch-free transition. Reference MSV48161V3.
  1. 1. 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 8.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 58. Kernel clock distribution for Ethernet

Figure 58: Kernel clock distribution for Ethernet. The diagram shows the RCC block with a MUX for ETH_MII_TX_CLK (inputs: 0, 1) controlled by ETH_MII_TX_CLK. The selected clock goes through a Logic block (ETH1TXEN, ETH1TXLPEN) to the ETH1 block (eth_mii_tx_clk). The ETH_MII_RX_CLK/ETH_RMII_REF_CLK is divided by 2 or 20 and then selected via a MUX (inputs: 0, 1) controlled by ETH_MII_RX_CLK/ETH_RMII_REF_CLK. The selected clock goes through a Logic block (ETH1RXEN, ETH1RXLPEN) to the ETH1 block (eth_mii_rx_clk). The rcc_hclk1 clock goes through a Logic block (ETH1MACEN, ETH1MACLPEN) to the ETH1 block (hclk_i). A legend indicates that 'D' represents a dynamic switch with glitch-free transition. Reference MSV41938V2.
Figure 58: Kernel clock distribution for Ethernet. The diagram shows the RCC block with a MUX for ETH_MII_TX_CLK (inputs: 0, 1) controlled by ETH_MII_TX_CLK. The selected clock goes through a Logic block (ETH1TXEN, ETH1TXLPEN) to the ETH1 block (eth_mii_tx_clk). The ETH_MII_RX_CLK/ETH_RMII_REF_CLK is divided by 2 or 20 and then selected via a MUX (inputs: 0, 1) controlled by ETH_MII_RX_CLK/ETH_RMII_REF_CLK. The selected clock goes through a Logic block (ETH1RXEN, ETH1RXLPEN) to the ETH1 block (eth_mii_rx_clk). The rcc_hclk1 clock goes through a Logic block (ETH1MACEN, ETH1MACLPEN) to the ETH1 block (hclk_i). A legend indicates that 'D' represents a dynamic switch with glitch-free transition. Reference MSV41938V2.
  1. 1. 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 8.5.11: Peripheral clock gating control .

Figure 59. Kernel clock distribution for ADCs, SWPMI, RNG and FDCAN (2)

Schematic diagram of kernel clock distribution for ADCs, SWPMI, RNG, and FDCAN. It shows four multiplexers (MUX) selecting clock sources, which are then gated by logic cells to drive the respective peripherals. The MUX for ADCs select from pll2_p_ck, pll3_r_ck, or per_ck. The MUX for SWPMI select from rcc_pclk1 or hsi_ker_ck. The MUX for RNG select from hsi48_ck, pll1_q_ck, lse_ck, or lsi_ck. The MUX for FDCAN select from hse_ck, pll1_q_ck, or pll2_q_ck. Each MUX output is connected to a 'Logic' block that also receives enable signals (e.g., ADC3AMEN, ADC3EN, ADC3LPEN). The output of each logic block drives the peripheral's kernel clock input (e.g., adc_ker_ck_input).

RCC

ADCs:

SWPMI:

RNG:

FDCAN:

PKSU (Power Key Switch Unit) and PKEU (Power Key Enable Unit) are shown as functional blocks within the RCC.

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

MSV41939V3

Schematic diagram of kernel clock distribution for ADCs, SWPMI, RNG, and FDCAN. It shows four multiplexers (MUX) selecting clock sources, which are then gated by logic cells to drive the respective peripherals. The MUX for ADCs select from pll2_p_ck, pll3_r_ck, or per_ck. The MUX for SWPMI select from rcc_pclk1 or hsi_ker_ck. The MUX for RNG select from hsi48_ck, pll1_q_ck, lse_ck, or lsi_ck. The MUX for FDCAN select from hse_ck, pll1_q_ck, or pll2_q_ck. Each MUX output is connected to a 'Logic' block that also receives enable signals (e.g., ADC3AMEN, ADC3EN, ADC3LPEN). The output of each logic block drives the peripheral's kernel clock input (e.g., adc_ker_ck_input).
  1. 1. 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 8.5.11: Peripheral clock gating control .

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

Schematic diagram of kernel clock distribution for LPTIMs and HDMI-CEC. It shows four clock paths originating from the RCC. 1. HDMI-CEC: lse_ck and lsi_ck are inputs to a 3-to-1 MUX (CECSEL). The output is connected to a Logic block along with CECEN and CECLPEN signals, resulting in cec_ker_ck (im). 2. LPTIM1: rcc_pclk1, pll2_p_ck, pll3_r_ck, lse_ck, lsi_ck, and per_ck are inputs to a 6-to-1 MUX (LPTIM1SEL). The output is connected to a Logic block along with LPTIM1EN and LPTIM1LPEN signals, resulting in lptim_ker_ck. 3. LPTIM2: rcc_pclk4, pll2_p_ck, pll3_r_ck, lse_ck, lsi_ck, and per_ck are inputs to a 6-to-1 MUX (LPTIM2SEL). The output is connected to a Logic block along with LPTIM2AMEN, LPTIM2EN, and LPTIM2LPEN signals, resulting in lptim_ker_ck. 4. LPTIM[5:3]: rcc_pclk4, pll2_p_ck, pll3_r_ck, lse_ck, lsi_ck, and per_ck are inputs to a 6-to-1 MUX (LPTIM345SEL). The output is connected to a Logic block along with LPTIM[5:3]AMEN, LPTIM[5:3]EN, and LPTIM[5:3]LPEN signals, resulting in lptim_ker_ck. The diagram also includes a 'D' symbol indicating dynamic switches and a note about glitch-free transitions. MSv41940V3 is noted in the bottom right.
Schematic diagram of kernel clock distribution for LPTIMs and HDMI-CEC. It shows four clock paths originating from the RCC. 1. HDMI-CEC: lse_ck and lsi_ck are inputs to a 3-to-1 MUX (CECSEL). The output is connected to a Logic block along with CECEN and CECLPEN signals, resulting in cec_ker_ck (im). 2. LPTIM1: rcc_pclk1, pll2_p_ck, pll3_r_ck, lse_ck, lsi_ck, and per_ck are inputs to a 6-to-1 MUX (LPTIM1SEL). The output is connected to a Logic block along with LPTIM1EN and LPTIM1LPEN signals, resulting in lptim_ker_ck. 3. LPTIM2: rcc_pclk4, pll2_p_ck, pll3_r_ck, lse_ck, lsi_ck, and per_ck are inputs to a 6-to-1 MUX (LPTIM2SEL). The output is connected to a Logic block along with LPTIM2AMEN, LPTIM2EN, and LPTIM2LPEN signals, resulting in lptim_ker_ck. 4. LPTIM[5:3]: rcc_pclk4, pll2_p_ck, pll3_r_ck, lse_ck, lsi_ck, and per_ck are inputs to a 6-to-1 MUX (LPTIM345SEL). The output is connected to a Logic block along with LPTIM[5:3]AMEN, LPTIM[5:3]EN, and LPTIM[5:3]LPEN signals, resulting in lptim_ker_ck. The diagram also includes a 'D' symbol indicating dynamic switches and a note about glitch-free transitions. MSv41940V3 is noted in the bottom right.
  1. 1. 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 8.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 independent watchdog (IWDG1) is connected to the LSI. The window watchdog (WWDG1) 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 IWDG.

Caution: Before enabling the WWDG1, the application must set the WW1RSC bit to 1. If the WW1RSC remains to 0, when the WWDG1 is enabled, its the behavior is not guaranteed. The WW1RSC bit is 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 CSI configuration register (RCC_CSICFGR) ) for revision Y devices and RCC HSI configuration register (RCC_HSICFGR) / RCC CSI configuration register

( RCC_CS/CFGR ) for revision V devices). 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 ultra-low 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.

8.5.9 General clock concept overview

The RCC handles the distribution of the CPU, bus interface and peripheral clocks for the system (D1, D2 and D3 domains), according to the operating mode of each function (refer to Section 8.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 the CPU (refer to Section 8.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.

Figure 61 gives an example of peripheral allocation:

Note: The FLASH, AXISRAM, ITCM, DTCM1, DTCM2, SRAM4, IWDG1, PWR, EXTI and RCC are common resources and are implicitly allocated to the CPU.

Figure 61. Peripheral allocation example

Figure 61. Peripheral allocation example. A block diagram showing three power domains: D1, D2, and D3. D1 contains a CPU, FLASH, FLITF, AXISRAM, ITCM, DTCM1, and DTCM2. D2 contains SPI5, SAI1, I2C2, and SRAM1, SRAM2. D3 contains IWDG1, RCC, PWR, EXTI, SRAM4, BDMA, DMAMUX, I2C4, SAI4, and various peripherals. Buses connect these components: Bus Matrix 1 connects D1 components to CPU_SS; CPU_SS connects to SDMMC1, PER..., and Bus Matrix 2; Bus Matrix 2 connects to SPI5, SAI1, I2C2, PER..., SRAM1, and SRAM2; Bus Matrix 3 connects D3 components to the CPU_SS bus. A legend indicates that blue-outlined boxes represent peripherals implicitly allocated to the CPU.

Peripherals implicitly allocated to the CPU

MSv63812V1

Figure 61. Peripheral allocation example. A block diagram showing three power domains: D1, D2, and D3. D1 contains a CPU, FLASH, FLITF, AXISRAM, ITCM, DTCM1, and DTCM2. D2 contains SPI5, SAI1, I2C2, and SRAM1, SRAM2. D3 contains IWDG1, RCC, PWR, EXTI, SRAM4, BDMA, DMAMUX, I2C4, SAI4, and various peripherals. Buses connect these components: Bus Matrix 1 connects D1 components to CPU_SS; CPU_SS connects to SDMMC1, PER..., and Bus Matrix 2; Bus Matrix 2 connects to SPI5, SAI1, I2C2, PER..., SRAM1, and SRAM2; Bus Matrix 3 connects D3 components to the CPU_SS bus. A legend indicates that blue-outlined boxes represent peripherals implicitly allocated to the CPU.

When the CPU enters CStop mode, the RCC automatically disables the bus interface and kernel clocks of all the peripherals of the CPU_SS as well as the CPU clock. The PLLs, if enabled, are not disabled by the RCC since D3 is still running.

The D3 domain can be kept in DRun mode while the CPU is in CStop mode and D1 and D2 domains are in DStop or DStandby mode. This is done by setting RUN_D3 bit in PWR_CPUCR registers.

Note that the CPU can control if D1, D2 or D3 domains are allowed to enter in DStandby when conditions are met, via bits PDDS_D1, PDDS_D2 and PDDS_D3 of PWR_CPUCR.

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

In addition, more autonomy can be given to some peripherals located into D3 domain (refer to Section : D3 domain Autonomous mode for details).

D3 domain Autonomous mode

The Autonomous mode allows to deliver the peripheral clocks to peripherals located in D3, even if the CPU 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 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, the CPU can enter CStop mode, while the SAI4 is filling the SRAM4 with data received from an external device via BDMA. When the amount of received data is reached, the CPU can be activated by a wakeup event. This can be done by setting the SAI4, the BDMA, 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 CPU. 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

The CPU can access all the memory areas available in the product:

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

If the CPU wants to use memories located into D2 domain (SRAM1 and SRAM2), it has to enable them.

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

Note: 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 57 gives an overview of the system states with respect to the D1, D2 and D3 domain modes.

Table 57. System states overview

System StateD1 StateD2 StateD3 State
RunDRunDRun/DStop/DStandbyDRun
DStop/DStandbyDStop/DStandby
StopDStop/DStandbyDStop/ DStandbyDStop
StandbyDStandbyDStandbyDStandby

8.5.10 Peripheral allocation

The CPU can allocate a peripheral and hence control its kernel and bus interface clock.

The CPU can allocate a peripheral by setting the dedicated PERxEN bit located into:

The CPU can control the peripheral clocks gating when it is in CSleep mode via the PERxLPEN bits located into:

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

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 the 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 62 , both input clocks shall be present during transition time.

Figure 62. Kernel Clock switching

Timing diagram for Figure 62: Kernel Clock switching. The diagram shows four waveforms: PERxSRC (control signal), in0_ck (input clock 0), in1_ck (input clock 1), and rcc_perx_ker_ck (kernel clock provided to PERx). A 'Transition time' is marked between two vertical dashed lines. During this transition, the kernel clock is gated (low). The diagram indicates that both in0_ck and in1_ck must be present during the transition. A shaded area on the right of the transition indicates that in this area, the ck_in0 clock can be disabled. An inset diagram on the right shows a multiplexer (MUX) with inputs in0_ck (0) and in1_ck (1), controlled by PERxSRC, outputting rcc_perx_ker_ck. The MUX has a red 'D' symbol, indicating a delay or latch.

The diagram illustrates the timing for kernel clock switching. The top signal, PERxSRC, is a control signal that switches from a low state to a high state at the beginning of the transition. Below it are two input clocks, in0_ck and in1_ck. in0_ck is initially active, and in1_ck becomes active after the transition. The bottom signal, rcc_perx_ker_ck, is the kernel clock provided to the peripheral. It is shown that during the transition time (marked by two vertical dashed lines), the kernel clock is gated (held low). The diagram indicates that both in0_ck and in1_ck must be present during the transition. A shaded area on the right of the transition indicates that in this area, the ck_in0 clock can be disabled. An inset diagram on the right shows a multiplexer (MUX) with inputs in0_ck (0) and in1_ck (1), controlled by PERxSRC, outputting rcc_perx_ker_ck. The MUX has a red 'D' symbol, indicating a delay or latch.

Timing diagram for Figure 62: Kernel Clock switching. The diagram shows four waveforms: PERxSRC (control signal), in0_ck (input clock 0), in1_ck (input clock 1), and rcc_perx_ker_ck (kernel clock provided to PERx). A 'Transition time' is marked between two vertical dashed lines. During this transition, the kernel clock is gated (low). The diagram indicates that both in0_ck and in1_ck must be present during the transition. A shaded area on the right of the transition indicates that in this area, the ck_in0 clock can be disabled. An inset diagram on the right shows a multiplexer (MUX) with inputs in0_ck (0) and in1_ck (1), controlled by PERxSRC, outputting rcc_perx_ker_ck. The MUX has a red 'D' symbol, indicating a delay or latch.

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 into 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 the CPU 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.

  1. 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.
  2. 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.

8.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 63 , enabling the kernel and bus interface clocks of each peripheral depends on several input signals:

Refer to Section 8.5.10: Peripheral allocation for more details.

Figure 63. Peripheral kernel clock enable logic details

Schematic diagram of peripheral kernel clock enable logic. It shows the internal logic for generating 'rcc_perx_bus_ck' and 'rcc_perx_ker_ck' signals for a peripheral (PERx). The diagram includes blocks for SCGU (System clock generation), SCEU (System Clock Enabling Unit), PKSU (Peripheral kernel clock Selection), and PKEU (Peripheral Kernel Clock Enabling). Control signals like PERxEN, PERxLPEN, CPU_state, PERxAMEN, and D3_state are inputs to the logic. The SCEU logic uses AND/OR gates and a 'sync' block to generate 'rcc_perx_bus_en', which is ANDed with SCGU outputs. The PKEU logic similarly generates 'rcc_perx_ker_en' from its inputs and a 'sync' block. A dashed box labeled 'perx_ker_ckreq' is shown as an optional feature from the peripheral.

The diagram illustrates the internal clock enable logic for a peripheral (PERx). It is divided into two main paths: the System Clock Enabling Unit (SCEU) and the Peripheral Kernel Clock Enabling (PKEU).

When the peripheral offers the feature

MSV41942V1

Schematic diagram of peripheral kernel clock enable logic. It shows the internal logic for generating 'rcc_perx_bus_ck' and 'rcc_perx_ker_ck' signals for a peripheral (PERx). The diagram includes blocks for SCGU (System clock generation), SCEU (System Clock Enabling Unit), PKSU (Peripheral kernel clock Selection), and PKEU (Peripheral Kernel Clock Enabling). Control signals like PERxEN, PERxLPEN, CPU_state, PERxAMEN, and D3_state are inputs to the logic. The SCEU logic uses AND/OR gates and a 'sync' block to generate 'rcc_perx_bus_en', which is ANDed with SCGU outputs. The PKEU logic similarly generates 'rcc_perx_ker_en' from its inputs and a 'sync' block. A dashed box labeled 'perx_ker_ckreq' is shown as an optional feature from the peripheral.

Table 58 gives a detailed description of the enabling logic of the peripheral clocks for peripherals located in D1 or D2 domain and allocated by the CPU.

Table 58. Peripheral clock enabling for D1 and D2 peripherals

PERxENPERxLPENPERxSRCperx_ker_ckreqCPU Statercc_perx_ker_c_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 CPU is in CRun, and PERxEN=1
10XXCSleep00No clock provided to the peripheral, because the CPU is in CSleep, and PERxLPEN=0
11XX11Kernel and bus interface clocks are provided to the peripheral, because CPU 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 CPU 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 CPU is in CStop, and no kernel clock request pending

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 is in CRun mode, and the peripheral is allocated.
  2. 2. The CPU is in CSleep mode, and the peripheral is allocated with PERxLPEN = 1.
  3. 3. The CPU is in CStop mode, and the peripheral is allocated with PERxLPEN = 1, and the peripheral generates a kernel clock request, and the selected clock is hsi_ker_ck or csi_ker_ck .
  4. 4. The CPU is in CStop mode, and the peripheral is allocated 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 59 gives a detailed description of the enabling logic of the kernel clock for all peripherals located in D3.

Table 59. Peripheral clock enabling for D3 peripherals

PERxENPERxLPENPERxAMENPERxSRCperx_ker_ckreqCPU StateD3 Statercc_perx_ker_d3_enrcc_perx_bus_d3_enComments
0XXXXAnyAny00No clock provided to the peripheral, as PERxEN=0
1XXXXCRun11Kernel and bus interface clocks are provided to the peripheral, because the CPU is in CRun, and PERxEN=1
10XXXCSleepDRun00No clock provided to the peripheral, because the CPU is in CSleep, and PERxLPEN=0
11XXX11Kernel and bus interface clocks are provided to the peripheral, because the CPU is in CSleep, and PERxLPEN=1
1X0XXCStop00As the CPU is in CStop, and PERxEN=1, then the kernel clock gating depends on D3 state and PERxAMEN bits.
No clock provided to the peripheral because PERxAMEN = 0.
1X1XX11The kernel and bus interface clocks are provided because even if the CPU is in CStop mode, D3 is in DRun mode, with PERxEN and PERxAMEN bits set to 1.
1X1not lse_ck and not lsi_ck0DStop00No clock provided to the peripheral, because D3 is in DStop, req_ker_perx = 0, and lse_ck or lsi_ck are not selected.

Table 59. Peripheral clock enabling for D3 peripherals (continued)

PERxENPERxLPENPERxAMENPERxSRCperx_ker_ckreqCPU 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_ck100No clock provided to the peripheral, because even if req_ker_perx = 0, lse_ck or lsi_ck or hsi_ker_ck or csi_ker_ck are not selected.
1X1hsi_ker_ck or csi_ker_ck110Kernel clock is provided to the peripheral because req_ker_perx = 1, and PERxEN = PERxAMEN=1, and the selected clock is hsi_ker_ck or csi_ker_ck .
The bus interface clock is not provided as D3 is in DStop.
1X1lse_ck or lsi_ckX10Kernel clock is provided to the peripheral because PERxEN = PERxAMEN=1 and lse_ck or lsi_ck are selected, while D3 is in STOP.
The bus interface clock is not provided as D3 is in DSTOP.

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 is in CRun mode, and the peripheral is allocated.
  2. 2. The CPU is in CSleep mode, and the peripheral is allocated with PERxLPEN = 1.
  3. 3. The CPU is in CStop mode, and the peripheral is allocated and D3 domain is in DRun mode with PERxAMEN = 1.
  4. 4. The CPU is in CStop mode, and the peripheral is allocated, and D3 domain is in DStop mode with PERxAMEN = 1, and 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 is in CStop mode, and the peripheral is allocated, and 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.

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 CPU.

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

8.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 8.5.11: Peripheral clock gating control .

The clocks of the CPU, AHB and AXI bridges and APB busses are enabled according to the rules hereafter:

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

Figure 64. Bus clock enable logic

Schematic diagram of bus clock enable logic showing RCC and SCEU blocks with various inputs and outputs.

The diagram illustrates the bus clock enable logic. On the left, the RCC block contains an AND gate that takes sys_ck and a signal from the SCGU as inputs. The output of this AND gate is connected to the SCEU block and also to one input of an OR gate. The SCGU (System clock generation) block is connected to the SCEU block. The SCEU block contains four AND gates that generate the following outputs: rcc_c_ck , rcc_bus_d1_ck , rcc_bus_d2_ck , and rcc_bus_d3_ck . The rcc_c_ck output is also connected to the OR gate. The OR gate's output is connected to three logic functions: Logic function , Logic function D1 , and Logic function D2 . These logic functions take various inputs: c_deepsleep , d3_deepsleep , RUN_D3 of PWR_CPUCR , CPU Mode (c_sleep, c_deepsleep) , and c_per_alloc_d2 . The outputs of these logic functions are connected to the inputs of the AND gates in the SCEU block. A note at the bottom left states: run_c is a combination of NOT c_deepsleep and NOT c_sleep . Another note states: rcc_bus_dx represents the clocks for the bus matrix and the peripheral bus interface for domain x . The diagram is labeled with MSV41943V2 in the bottom right corner.

Schematic diagram of bus clock enable logic showing RCC and SCEU blocks with various inputs and outputs.

8.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 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 60 gives a summary of the interrupt sources, and the way to control them.

Table 60. Interrupt sources and control

Interrupt SourceDescriptionInterrupt enableAction to clear interruptInterrupt Line
LSIRDYFLSI readyLSIRDYIESet LSIRDYC to 1rcc_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 1rcc_lsecss_it
HSECSSFHSE Clock security system failure-( 2 )Set HSECSSC to 1rcc_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).

8.7 RCC registers

8.7.1 Register mapping overview

Note that the control of PERxEN and PERxLPEN bits can be performed at two different address offset: 0x0D0 and 0x130. So the application can use the registers named:

This feature is provided to insure the compatibility with other products of this family.

Figure 65 shows the RCC mapping overview.

Figure 65. RCC mapping overview

Figure 65. RCC mapping overview diagram showing physical and logical register mappings.

The diagram illustrates the mapping of RCC registers between physical and logical address spaces. It is divided into two main columns: 'Physical register mapping' on the left and 'Logical register mapping' on the right.

Physical register mapping: This column shows a vertical stack of registers starting from address 0x000 at the bottom. The registers are: RCC_CR, followed by a vertical ellipsis, then RCC_APB4RSTR, RCC_RSR (highlighted with diagonal hatching), another vertical ellipsis, and RCC_APB4LPENR at the top. An arrow points from the top register (RCC_APB4LPENR) to the address 0x130 on the logical side.

Logical register mapping: This column shows registers at two different address ranges. The first range starts at 0x000 and includes RCC_CR, a vertical ellipsis, RCC_APB4RSTR, RCC_RSR (hatched), and RCC_APB4LPENR. The second range starts at 0x130 and includes RCC_C1_RSR (hatched), a vertical ellipsis, and RCC_C1_APB4LPENR. Arrows indicate the mapping: from 0x000 to 0x000, from 0x130 to 0x130, and from the physical top register to the logical top register.

Banking: The logical registers are grouped into three banks: 'bank 0' (RCC_CR to RCC_APB4RSTR), 'bank 1' (RCC_RSR to RCC_APB4LPENR), and 'bank 2' (RCC_C1_RSR to RCC_C1_APB4LPENR). The address 0x1FF is indicated at the top of the logical mapping.

The diagram is labeled with 'MSV41944V1' in the bottom right corner.

Figure 65. RCC mapping overview diagram showing physical and logical register mappings.

8.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.

This bit can be cleared by software, but clearing this bit through software has no impact on the feature.

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 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)

8.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.

8.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.

8.7.5 RCC CSI configuration register (RCC_CSICFGR)

Address offset: 0x00C

Reset value: 0x2000 0XXX

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.

8.7.6 RCC clock configuration register (RCC_CFGR)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
MCO2[2:0]MCO2PRE[3:0]MCO1[2:0]MCO1PRE[3:0]Res.Res.
rwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
TIMPRERes.RTCPRE[5:0]STOPKERWUICKSTOPWUICKSWS[2:0]SW[2:0]
rwrwrwrwrwrwrwrwrrrrwrwrw

Bits 31:29 MCO2[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 MCO1[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 53: Ratio between clock timer and pclk

Bit 14 Reserved, must be kept at reset value.

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 8.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 8.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

8.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 the CPU clock, and all bus matrix clocks.

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.

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.

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.

8.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.

8.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.Res.Res.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.

8.7.10 RCC PLLs clock source selection register (RCC_PLLCKSELR)

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 (default after reset)

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

8.7.11 RCC PLLs Configuration Register (RCC_PLLCFGR)

Address offset: 0x02C

Reset value: 0x01FF 0000

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

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, DIVR2EN and DIVR2 bits must be set to 0 when the pll2_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, DIVR2EN and DIVR2 bits must be set to 0 when the pll2_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, DIVR2EN and DIVR2 bits must be set to 0 when the pll2_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, DIVR1EN and DIVR1 bits must be set to 0 when the pll1_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 836 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 836 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 836 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.

8.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: pll1_r_ck = vco1_ck

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, except for 1 (no division).

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:

8.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_{\text{ref1\_ck}} \times (\text{DIVN1} + (\text{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:

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

8.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

8.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.

8.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[8: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

8.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.

8.7.18 RCC domain 1 kernel clock configuration register (RCC_D1CCIPR)

Address offset: 0x04C

Reset value: 0x0000 0000

313029 28272625242322212019181716
Res.Res.CKPERSEL[1:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMCESEL
rwrwrw
15141312111098765 4321 0
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OCTOSPISSEL[1:0]Res.Res.FMCSEL[1:0]
rwrwrwrw

Note: 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 SDMMCESEL : SDMMC kernel clock source selection

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

Bits 5:4 OCTOSPISEL[1:0] : OCTOSPI 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

8.7.19 RCC domain 2 kernel clock configuration register (RCC_D2CCIP1R)

Address offset: 0x050

Reset value: 0x0000 0000

31302928272625242322212019181716
SWPMISELRes.FDCANSEL[1:0]Res.Res.Res.DFSDM1SELRes.Res.SPDIFRXSEL[1:0]Res.SPI45SEL[2:0]
rwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.SPI123SEL[2:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI1SEL[2:0]
rwrwrwrwrwrw

Note: 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 SWPMISEL : 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

Bits 30 Reserved, must be kept at reset value.

Bits 29:28 FDCANSEL[1:0] : 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 SPDIFRXSEL[1:0] : SPDIFRX kernel clock source selection

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.

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.

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

Bits 11: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.

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

8.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.
rwrwrwrwrwrwrw
1514131211109876543210
Res.Res.I2C1235SEL[1:0] (1)Res.Res.RNGSEL[1:0] (1)Res.Res.USART16910SEL[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] : USBOTG1 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 I2C1235SEL[1:0] : I2C1/2/3/5 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: hsi8_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 USART16910SEL[2:0] : USART1/6/9/10 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

8.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
1514131211109876543210
LPTIM345SEL[2:0] (1)LPTIM2SEL[2:0] (1)I2C4SEL[1:0] (1)Res.Res.Res.Res.Res.LPUART1SEL[2:0] (1)
rwrwrwrwrwrwrwrwrwrwrw
  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 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
110: i2s_ckin 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
101: spdifrx_symb_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
101: spdifrx_symb_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

8.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

8.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

8.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

8.7.25 RCC backup domain control register (RCC_BDCR)

Address offset: 0x070

Backup domain reset value: 0x0000 0000

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 control register 1 (PWR_CR1) has to be set to 1. RCC_BDCR bits are only reset after a backup domain reset (see Section 8.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]LSEBYPLSEDRYLSEON
rwrworworrsrwrwrwrrw

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

Bit 16 BDRST : Backup domain software reset

Set and reset by software.

0: Reset not activated (default after backup domain reset)

1: Resets the entire VSW domain

Bit 15 RTCEN : RTC clock enable

Set and reset by software.

0: rtc_ck clock is disabled (default after backup domain reset)

1: rtc_ck clock enabled

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).

00: No clock (default after backup domain reset)

01: LSE clock used as RTC clock

10: LSI clock used as RTC clock

11: HSE clock divided by RTCPRE value is used as RTC clock

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

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

8.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

8.7.27 RCC AHB3 reset register (RCC_AHB3RSTR)

Address offset: 0x07C

Reset value: 0x0000 0000

31302928272625242322212019181716
CPURSTRes.Res.Res.Res.Res.Res.Res.OTFD2RSTOTFD1RSTIOMNGRRSTRes.OCTOSPI2RSTRes.Res.SDMMC1RST
rsrwrwrwrwrw
1514131211109876543210
Res.OCTOSPI1RSTRes.FMCIRSTRes.Res.Res.Res.Res.Res.Res.DMA2DRSTRes.Res.Res.MDMARST
rwrwrwrw

Bit 31 CPURST : CPU reset

Set and reset by software.

0: does not reset the CPU (default after reset)

1: resets the CPU

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

Bit 23 OTFD2RST : OTFDEC2 reset

Set and reset by software.

0: does not reset OTFDEC2 (default after reset)

1: resets OTFDEC2

Bit 22 OTFD1RST : OTFDEC1 reset

Set and reset by software.

0: does not reset OTFDEC1 (default after reset)

1: resets OTFDEC1

Bit 21 IOMNGRRST : OCTOSPI I/O manager reset

Set and reset by software.

0: does not reset the OCTOSPI I/O manager (default after reset)

1: resets the OCTOSPI I/O manager

Bit 20 Reserved, must be kept at reset value.

Bit 19 OCTOSPI2RST : OCTOSPI2 and OCTOSPI2 delay block reset

Set and reset by software.

0: does not reset OCTOSPI2 and OCTOSPI2 delay block (default after reset)

1: resets OCTOSPI2 and OCTOSPI2 delay block

Bits 18: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

Bit 15 Reserved, must be kept at reset value.

Bit 14 OCTOSPI1RST : OCTOSPI1 and OCTOSPI1 delay block reset

Set and reset by software.

0: does not reset OCTOSPI1 and OCTOSPI1 delay block (default after reset)

1: resets OCTOSPI1 and OCTOSPI1 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:5 Reserved, must be kept at reset value.

Bit 4 DMA2DRST : DMA2D block reset

Set and reset by software.

0: does not reset DMA2D block (default after reset)

1: resets DMA2D block

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

8.7.28 RCC AHB1 peripheral reset register(RCC_AHB1RSTR)

Address offset: 0x080

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.USB1OTGRSTRes.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
ETH1MACRSTRes.Res.Res.Res.Res.Res.Res.Res.Res.ADC12RSTRes.Res.Res.DMA2RSTDMA1RST
r/wr/wr/wr/w

Bits 31: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

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

Bit 5 ADC12RST : ADC1 and 2 block reset

Set and reset by software.

0: does not reset ADC1 and 2 block (default after reset)

1: resets ADC1 and 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

8.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.CORDICRSTFMACRST
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.SDMMC2RSTRes.Res.RNGRSTHASHRSTCRYPTRSTRes.Res.Res.DCML_PSSIRST
rwrwrwrwrw

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

Bit 17 CORDICRST : CORDIC coprocessor block reset

Set and reset by software.

0: does not reset CORDIC block (default after reset)

1: resets CORDIC block

Bit 16 FMACRST : FMAC reset

Set and reset by software.

0: does not reset the FMAC (default after reset)

1: resets the FMAC

Bits 15: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 CRYPTIRST : 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 DCMI_PSSIRST : Digital camera interface block reset (DCMI or PSSI, depending which peripheral is active)

Set and reset by software.

0: does not reset the DCMI/PSSI peripheral (default after reset)

1: resets the DCMI/PSSI peripheral

8.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.GPIOKRSTGPIOJRSTRes.GPIOHRSTGPIOGRSTGPIOFRSTGPIOERSTGPIODRSTGPIOCRSTGPIOBRSTGPIOARST
rwrwrwrwrwrwrwrwrwrw

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

Bit 8 Reserved, must be kept at reset value.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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

8.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.Res.LTDCRSTRes.Res.Res.
rw

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

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.

8.7.32 RCC APB1 peripheral reset register (RCC_APB1LRSTR)

Address offset: 0x090

Reset value: 0x0000 0000

31302928272625242322212019181716
UART8RSTUART7RSTDAC12RSTRes.CECRSTRes.I2C5RSTRes.I2C3RSTI2C2RSTI2C1RSTUART5RSTUART4RSTUSART3RSTUSART2RSTSPDIFRXRST
r/wr/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

Bit 26 Reserved, must be kept at reset value.

Bit 25 I2C5RST : I2C5 block reset

Set and reset by software.

0: does not reset the I2C5 block (default after reset)

1: resets the I2C5 block

Bit 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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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

8.7.33 RCC APB1 peripheral reset register (RCC_APB1HRSTR)

Address offset: 0x094

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.TIM24RSTTIM23RSTRes.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.FDCANRSTRes.Res.MDIOSRSTOPAMPRSTRes.SWPMIRSTCRSRSTRes.
rwrwrwrwrw

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

Bit 25 TIM24RST : TIM24 block reset

Set and reset by software.

0: does not reset the TIM24 block (default after reset)

1: resets the TIM24 block

Bit 24 TIM23RST : TIM23 block reset

Set and reset by software.

0: does not reset the TIM23 block (default after reset)

1: resets the TIM23 block

Bits 23: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 SWPMIRST : 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.

8.7.34 RCC APB2 peripheral reset register (RCC_APB2RSTR)

Address offset: 0x098

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.DFSDM1RSTRes.Res.Res.Res.Res.Res.Res.SAI1RSTRes.SPI5RSTRes.TIM17RSTTIM16RSTTIM15RST
rwrwrwrwrwrw
1514131211109876543210
Res.Res.SPI4RSTSPI1RSTRes.Res.Res.Res.USART10RSTUART9RSTUSART6RSTUSART1RSTRes.Res.TIM8RSTTIM1RST
rwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bit 30 DFSDM1RST : DFSDM1 block reset

Set and reset by software.

0: does not reset DFSDM1 block (default after reset)

1: resets DFSDM1 block

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

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:8 Reserved, must be kept at reset value.

Bit 7 USART10RST : USART10 block reset

Set and reset by software.

0: does not reset the USART10 block (default after reset)

1: resets the USART10 block

Bit 6 UART9RST : UART9 block reset

Set and reset by software.

0: does not reset the UART9 block (default after reset)

1: resets the UART9 block

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

8.7.35 RCC APB4 peripheral reset register (RCC_APB4RSTR)

Address offset: 0x09C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.DTSRSTRes.Res.Res.Res.SAI4RSTRes.Res.Res.Res.Res.
rwrw
1514131211109876543210
VREFRSTCOMP12RSTRes.LPTIM5RSTLPTIM4RSTLPTIM3RSTLPTIM2RSTRes.I2C4RSTRes.SPI6RSTRes.LPUART1RSTRes.SYSCFGIRSTRes.
rwrwrwrwrwrwrwrwrwrw

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

Bit 26 DTSRST : Digital temperature sensor block reset

Set and reset by software.

0: does not reset the digital temperature sensor block (default after reset)

1: resets the digital temperature sensor block

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 VREF block (default after reset)

1: resets the VREF 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

  1. 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
  2. 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
  3. Bit 8 Reserved, must be kept at reset value.
  4. 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
  5. Bit 6 Reserved, must be kept at reset value.
  6. 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
  7. Bit 4 Reserved, must be kept at reset value.
  8. 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
  9. Bit 2 Reserved, must be kept at reset value.
  10. 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
  11. Bit 0 Reserved, must be kept at reset value.

8.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.Res.Res.Res.WW1RSC
w

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

Bit 0 WW1RSC : WWDG1 reset scope control

This bit can be set by software but is cleared by hardware during a system reset
In order to work properly, before enabling the WWDG1, this bit must be set to 1.

8.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 is in CStop mode. When a peripheral is enabled, and has its autonomous bit enabled, it receives its peripheral clocks according to D3 domain state, if the CPU is in CStop mode.

Address offset: 0x0A8

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.SRAM4AMENBKPRAMAMENRes.DTSAMENRes.ADC3AMENRes.Res.SAI4AMENRes.CRCAMENRes.Res.RTCAMEN
rwrwrwrwrwrwrw
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 the CPU is in CStop (default after reset)

1: SRAM4 peripheral bus clock enabled when D3 domain is in DRun.

Refer to Section 8.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 is in CStop (default after reset)

1: Backup RAM clock enabling is controlled by D3 domain state.

Refer to Section 8.5.11: Peripheral clock gating control for additional information

Bit 27 Reserved, must be kept at reset value.

Bit 26 DTSAMEN : Digital temperature sensor Autonomous mode enable

Set and reset by software.

0: Digital temperature sensor peripheral clocks are disabled when the CPU is in CStop (default after reset)

1: Digital temperature sensor peripheral clocks enabled when D3 domain is in DRun.

Refer to Section 8.5.11: Peripheral clock gating control for additional information

Bits 26: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 is in CStop (default after reset)

1: ADC3 peripheral clocks enabled when D3 domain is in DRun.

Refer to Section 8.5.11: Peripheral clock gating control for additional information

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

  1. Bit 21 SAI4AMEN : SAI4 Autonomous mode enable
    Set and reset by software.
    0: SAI4 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: SAI4 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  2. Bit 20 Reserved, must be kept at reset value.
  3. Bit 19 CRCAMEN : CRC Autonomous mode enable
    Set and reset by software.
    0: CRC peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: CRC peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  4. Bits 18:17 Reserved, must be kept at reset value.
  5. Bit 16 RTCAMEN : RTC Autonomous mode enable
    Set and reset by software.
    0: RTC peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: RTC peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  6. Bit 15 VREFAMEN : VREF Autonomous mode enable
    Set and reset by software.
    0: VREF peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: VREF peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  7. Bit 14 COMP12AMEN : COMP12 Autonomous mode enable
    Set and reset by software.
    0: COMP12 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: COMP12 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  8. Bit 13 Reserved, must be kept at reset value.
  9. Bit 12 LPTIM5AMEN : LPTIM5 Autonomous mode enable
    Set and reset by software.
    0: LPTIM5 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: LPTIM5 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  10. Bit 11 LPTIM4AMEN : LPTIM4 Autonomous mode enable
    Set and reset by software.
    0: LPTIM4 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: LPTIM4 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  11. Bit 10 LPTIM3AMEN : LPTIM3 Autonomous mode enable
    Set and reset by software.
    0: LPTIM3 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: LPTIM3 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  12. Bit 9 LPTIM2AMEN : LPTIM2 Autonomous mode enable
    Set and reset by software.
    0: LPTIM2 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: LPTIM2 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  1. Bit 8 Reserved, must be kept at reset value.
  2. Bit 7 I2C4AMEN : I2C4 Autonomous mode enable
    Set and reset by software.
    0: I2C4 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: I2C4 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  3. Bit 6 Reserved, must be kept at reset value.
  4. Bit 5 SPI6AMEN : SPI6 Autonomous mode enable
    Set and reset by software.
    0: SPI6 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: SPI6 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  5. Bit 4 Reserved, must be kept at reset value.
  6. Bit 3 LPUART1AMEN : LPUART1 Autonomous mode enable
    Set and reset by software.
    0: LPUART1 peripheral clocks are disabled when the CPU is in CStop (default after reset)
    1: LPUART1 peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information
  7. Bits 2:1 Reserved, must be kept at reset value.
  8. 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 is in CStop (default after reset)
    1: BDMA and DMAMUX peripheral clocks enabled when D3 domain is in DRun.
    Refer to Section 8.5.11: Peripheral clock gating control for additional information

8.7.38 RCC reset status register (RCC_RSR)

This register can be accessed via two different offset address.

Table 61. RCC_RSR address offset and reset value

Register NameAddress OffsetReset Value
RCC_RSR0x0D00x00FA 0000 (1)
RCC_C1_RSR0x130

1. Reset by power-on reset only

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.LPWRRSTFRes.WWDG1RSTFRes.IWDG1RSTFRes.SFTRSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFRes.CPURSTFRMVF
rrrrrrrrrrnw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bit 31 Reserved, must be kept at reset value.

Bit 30 LPWRRSTF : Reset due to illegal D1 DStandby or CPU CStop flag

Reset by software by writing the RMVF bit.

Set by hardware when D1 domain goes erroneously in DStandby or when CPU goes erroneously in CStop.

0: No illegal reset occurred (default after power-on reset)

1: Illegal D1 DStandby or CPU CStop reset occurred

Bit 29 Reserved, must be kept at reset value.

Bit 28 WWDG1RSTF : Window Watchdog reset flag

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

Bit 27 Reserved, must be kept at reset value.

Bit 26 IWDG1RSTF : Independent Watchdog reset flag

Reset by software by writing the RMVF bit.

Set by hardware when an independent watchdog reset occurs.

0: No independent watchdog reset occurred (default after power-on reset)

1: Independent watchdog reset occurred

Bit 25 Reserved, must be kept at reset value.

Bit 24 SFTRSTF : System reset from CPU reset flag

Reset by software by writing the RMVF bit.

Set by hardware when the system reset is due to CPU. The CPU can generate a system reset by writing SYSRESETREQ bit of AIRCR register of the CM7.

0: No CPU software reset occurred (default after power-on reset)

1: A system reset has been generated by the CPU

Bit 23 PORRSTF : POR/PDR reset flag

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)

Bit 22 PINRSTF : Pin reset flag (NRST)

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)

Bit 21 BORRSTF : BOR reset flag

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)

Bit 20 D2RSTF : D2 domain power switch reset flag

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 52 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

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 52 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 Reserved, must be kept at reset value.

Bit 17 CPURSTF : CPU reset flag

Reset by software by writing the RMVF bit.

Set by hardware every time a CPU reset occurs.

0: No CPU reset occurred

1: A CPU 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.

8.7.39 RCC AHB3 clock register (RCC_AHB3ENR)

This register can be accessed via two different offset address.

Table 62. RCC_AHB3ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB3ENR0x0D40x0000 0000
RCC_C1_AHB3ENR0x134
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.OTFD2ENOTFD1ENIOMNGRENRes.OCTOSPI2ENRes.Res.SDMMC1EN
rwrwrwrwrw
1514131211109876543210
Res.OCTOSPI1ENRes.FMCENRes.Res.Res.Res.Res.Res.Res.DMA2DENRes.Res.Res.MDMAEN
rwrwrwrw

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

Bit 23 OTFD2EN : OTFDEC2 clock enable
Set and reset by software.
0: OTFDEC2 clock disabled (default after reset)
1: OTFDEC2 clock enabled

Bit 22 OTFD1EN : OTFDEC1 clock enable
Set and reset by software.
0: OTFDEC1 clock disabled (default after reset)
1: OTFDEC1 clock enabled

Bit 21 IOMNGREN : OCTOSPI I/O manager clock enable
Set and reset by software.
0: OCTOSPI I/O manager clock disabled (default after reset)
1: OCTOSPI I/O manager clock enabled

Bit 20 Reserved, must be kept at reset value.

Bit 19 OCTOSPI2EN : OCTOSPI2 and OCTOSPI2 delay clock enable
Set and reset by software.
0: OCTOSPI2 and OCTOSPI2 delay clock disabled (default after reset)
1: OCTOSPI2 and OCTOSPI2 delay clock enabled

Bits 18: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 OCTOSPI1EN : OCTOSPI1 and OCTOSPI1 delay clock enable

Set and reset by software.

0: OCTOSPI1 and OCTOSPI1 delay clock disabled (default after reset)

1: OCTOSPI1 and OCTOSPI1 delay clock enabled

Bit 13 Reserved, must be kept at reset value.

Bit 12 FMCEN : 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:5 Reserved, must be kept at reset value.

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

8.7.40 RCC AHB1 clock register (RCC_AHB1ENR)

This register can be accessed via two different offset address.

Table 63. RCC_AHB1ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB1ENR0x0D80x0000 0000
RCC_C1_AHB1ENR0x138
31302928272625242322212019181716
Res.Res.Res.Res.Res.USB1OTGHSULPIENUSB1OTGHSENRes.Res.Res.Res.Res.Res.Res.ETH1RXENETH1TXEN
rwrwrwrw
1514131211109876543210
ETH1MACENRes.Res.Res.Res.Res.Res.Res.Res.Res.ADC12ENRes.Res.Res.DMA2ENDMA1EN
rwrwrwrw

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

Bit 26 USB1OTGHSULPIEN : USB_PHY1 Clocks Enable

Set and reset by software.

0: USB1ULPI PHY clocks disabled (default after reset)

1: USB1ULPI PHY clocks enabled

Bit 25 USB1OTGHSEN : USB1OTG (OTG_HS1) Peripheral Clocks Enable

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 : Ethernet Reception Clock Enable

Set and reset by software.

0: Ethernet Reception clock disabled (default after reset)

1: Ethernet Reception clock enabled

Bit 16 ETH1TXEN : Ethernet Transmission Clock Enable

Set and reset by software.

0: Ethernet Transmission clock disabled (default after reset)

1: Ethernet Transmission clock enabled

Bit 15 ETH1MACEN : Ethernet MAC bus interface Clock Enable

Set and reset by software.

0: Ethernet MAC bus interface clock disabled (default after reset)

1: Ethernet MAC bus interface clock enabled

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

Bit 5 ADC12EN : ADC1/2 Peripheral Clocks Enable

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

8.7.41 RCC AHB2 clock register (RCC_AHB2ENR)

This register can be accessed via two different offset address.

Table 64. RCC_AHB2ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB2ENR0x0DC0x0000 0000
RCC_C1_AHB2ENR0x13C
31302928272625242322212019181716
Res.SRAM2ENSRAM1ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CORDICENFMACEN
r/wr/wr/wr/w

1514131211109876543210
Res.Res.Res.Res.Res.Res.SDMMC2ENRes.Res.RNGENHASHENCRYPTENRes.Res.Res.DCML_PSS1EN
r/wr/wr/wr/wr/w

Bit 31 Reserved, must be kept at reset value.

Bit 30 SRAM2EN : SRAM2 block enable

Set and reset by software.

When set, this bit indicates that the SRAM2 is allocated by the CPU. It causes the D2 domain to take into account also the CPU operation modes, i.e. keeping D2 domain in DRun when the CPU is in CRun.

0: SRAM2 interface clock is disabled. (default after reset)

1: SRAM2 interface clock is enabled.

Bit 29 SRAM1EN : SRAM1 block enable

Set and reset by software.

When set, this bit indicates that the SRAM1 is allocated by the CPU. It causes the D2 domain to take into account also the CPU operation modes, i.e. keeping D2 domain in DRun when the CPU is in CRun.

0: SRAM1 interface clock is disabled. (default after reset)

1: SRAM1 interface clock is enabled.

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

Bit 17 CORDICEN : CORDIC peripheral clock enable

Set and reset by software.

0: CORDIC clock disabled (default after reset)

1: CORDIC clock enabled

Bit 16 FMACEN : FMAC peripheral clock enable

Set and reset by software.

0: FMAC clock disabled (default after reset)

1: FMAC clock enabled

Bits 15: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 DCMI_PSSIEN : Digital camera interface clock enable (DCMI or PSSI, depending which peripheral is active)

Set and reset by software.

0: DCMI/PSSI peripheral clock disabled (default after reset)

1: DCMI/PSSI peripheral clock enabled

8.7.42 RCC AHB4 clock register (RCC_AHB4ENR)

This register can be accessed via two different offset address.

Table 65. RCC_AHB4ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB4ENR0x0E00x0000 0000
RCC_C1_AHB4ENR0x140
31302928272625242322212019181716
Res.Res.Res.BKPRAMENRes.Res.HSEMENADC3ENRes.Res.BDMAENRes.CRCENRes.Res.Res.
rwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.GPIOENGPIOJENRes.GPIOHENGPIOGENGPIOFENGPIOEENGPIO DENGPIOCENGPIOBENGPIOAEN
rwrwrwrwrwrwrwrwrwrw

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 : GPIO peripheral clock enable

Set and reset by software.

0: GPIO peripheral clock disabled (default after reset)

1: GPIO 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 Reserved, must be kept at reset value.

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

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

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

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

8.7.43 RCC APB3 clock register (RCC_APB3ENR)

This register can be accessed via two different offset address.

Table 66. RCC_APB3ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB3ENR0x0E40x0000 0000
RCC_C1_APB3ENR0x144
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.Res.LTDCENRes.Res.Res.
rsrw

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.

Note that 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

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

Bit 3 LTDCEN : LTDC peripheral clock enable

Provides the pixel clock ( ltcd_ker_ck ) to the LTDC block.

Set and reset by software.

0: LTDC peripheral clock disabled (default after reset)

1: LTDC peripheral clock provided to the LTDC block

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

8.7.44 RCC APB1 clock register (RCC_APB1LENR)

This register can be accessed via two different offset address.

Table 67. RCC_APB1ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1LENR0x0E80x0000 0000
RCC_C1_APB1LENR0x148
31302928272625242322212019181716
UART8ENUART7ENDAC12ENRes.CECENRes.I2C5ENRes.I2C3ENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2ENSPDIFRXEN
rwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
SPI3ENSPI2ENRes.Res.Res.Res.LPTIM1ENTIM14ENTIM13ENTIM12ENTIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
rwrwrwrwrwrwrwrwrwrwrwrw

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 rcc_pclk1 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 rcc_pclk1 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 rcc_pclk1 bus interface clock.

Bits 26 Reserved, must be kept at reset value.

Bit 25 I2C5EN : I2C5 peripheral clocks enable

Set and reset by software.

0: I2C5 peripheral clocks disable (default after reset)

1: I2C5 peripheral clocks enabled

The peripheral clocks of the I2C5 are: the kernel clock selected by I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 bus interface clock.

Bits 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 I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 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 I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 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 I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 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 rcc_pclk1 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 rcc_pclk1 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 usart_ker_ck input, and the rcc_pclk1 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 usart_ker_ck input, and the rcc_pclk1 bus interface clock.

Bit 16 SPDIFRXEN : 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 SPDIFRXSEL and provided to spdifrx_ker_ck input, and the rcc_pclk1 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 rcc_pclk1 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 rcc_pclk1 bus interface clock.

Bits 13: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 rcc_pclk1 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

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

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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

8.7.45 RCC APB1 clock register (RCC_APB1HENR)

This register can be accessed via two different offset address.

Table 68. RCC_APB1ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1HENR0x0EC0x0000 0000
RCC_C1_APB1HENR0x14C
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.TIM24ENTIM23ENRes.Res.Res.Res.Res.Res.Res.Res.
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.FDCANENRes.Res.MDIOSENOPAMPENRes.SWPMIENCRSENRes.
rwrwrwrwrw

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

Bit 25 TIM24EN : TIM24 peripheral clocks enable

Set and reset by software.

0: TIM24 peripheral clocks disable (default after reset)

1: TIM24 peripheral clocks enabled:

Bit 24 TIM23EN : TIM23 peripheral clocks enable

Set and reset by software.

0: TIM23 peripheral clocks disable (default after reset)

1: TIM23 peripheral clocks enabled:

Bits 23: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 fdcan_ker_ck input, and the rcc_pclk1 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 SWPMIEN: 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 SWPMISEL and provided to swpmi_ker_ck input, and the rcc_pclk1 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.

8.7.46 RCC APB2 clock register (RCC_APB2ENR)

This register can be accessed via two different offset address.

Table 69. RCC_APB2ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB2ENR0x0F00x0000 0000
RCC_C1_APB2ENR0x150
31302928272625242322212019181716
Res.DFSDM1ENRes.Res.Res.Res.Res.Res.Res.SAI1ENRes.SPI5ENRes.TIM17ENTIM16ENTIM15EN
rwrwrwrwrwrw
1514131211109876543210
Res.Res.SPI4ENSPI1ENRes.Res.Res.Res.USART10ENUART9ENUSART6ENUSART1ENRes.Res.TIM8ENTIM1EN
rwrwrwrwrwrwrwrw

Bits 31 Reserved, must be kept at reset value.

Bit 30 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 29:23 Reserved, must be kept at reset value.

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:8 Reserved, must be kept at reset value.

Bit 7 USART10EN : USART10 peripheral clocks enable

Set and reset by software.

0: USART10 peripheral clocks disabled (default after reset)

1: USART10 peripheral clocks enabled:

The peripheral clocks of the USART10 are: the kernel clock selected by USART16910SEL and provided to usart_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 6 UART9EN : UART9 peripheral clocks enable

Set and reset by software.

0: UART9 peripheral clocks disabled (default after reset)

1: UART9 peripheral clocks enabled:

The peripheral clocks of the USART9 are the kernel clock selected by USART16910SEL and provided to usart_ker_ck input, and the rcc_pclk2 bus interface clock.

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 USART16910SEL 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 USART16910SEL 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

8.7.47 RCC APB4 clock register (RCC_APB4ENR)

This register can be accessed via two different offset address.

Table 70. RCC_APB4ENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB4ENR0x0F40x0001 0000
RCC_C1_APB4ENR0x154
31302928272625242322212019181716
Res.Res.Res.Res.Res.DTSENRes.Res.Res.Res.SAI4ENRes.Res.Res.Res.RTCAPBEN
rwrwrw

1514131211109876543210
VREFENCOMP12ENRes.LPTIM5ENLPTIM4ENLPTIM3ENLPTIM2ENRes.I2C4ENRes.SPI6ENRes.LPUART1ENRes.SYSCFGENRes.
rwrwrwrwrwrwrwrwrwrw

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

Bit 26 DTSEN : Digital temperature sensor peripheral clock enable

Set and reset by software.

0: Digital temperature sensor peripheral clock disabled (default after reset)

1: Digital temperature sensor peripheral clock enabled

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 rcc_pclk4 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: VREF peripheral clock disabled (default after reset)

1: VREF peripheral clock enabled

  1. 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
  2. Bit 13 Reserved, must be kept at reset value.
  3. 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 rcc_pclk4 bus interface clock.
  4. 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 rcc_pclk4 bus interface clock.
  5. 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 rcc_pclk4 bus interface clock.
  6. 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 rcc_pclk4 bus interface clock.
  7. Bit 8 Reserved, must be kept at reset value.
  8. 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 rcc_pclk4 bus interface clock.
  9. Bit 6 Reserved, must be kept at reset value.
  10. 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 rcc_pclk4 bus interface clock.
  11. 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 rcc_pclk4 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.

8.7.48 RCC AHB3 Sleep clock register (RCC_AHB3LPENR)

This register can be accessed via two different offset address.

Table 71. RCC_AHB3LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB3LPENR0x0FC0xF0E9 5111
RCC_C1_AHB3LPENR0x15C
31302928272625242322212019181716
AXISRAMLPENITCMLPENDTOM2LPENDTOM1LPENRes.Res.Res.Res.OTFD2LPENOTFD1LPENIOMNGRLPENRes.OCTO2LPENRes.Res.SDMMC1LPEN
r/wr/wr/wr/wr/wr/wr/wr/wr/w
1514131211109876543210
Res.OCTO1LPENRes.FMCLPENRes.Res.Res.FLASHLPENRes.Res.Res.DMA2DLPENRes.Res.Res.MDMALPEN
r/wr/wr/wr/wr/w

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 DTOM2LPEN : 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:24 Reserved, must be kept at reset value.

Bit 23 OTFD2LPEN : OTFDEC2 clock enable during CSleep mode

Set and reset by software.

0: OTFDEC2 clock disabled during CSleep mode

1: OTFDEC2 clock enabled during CSleep mode (default after reset)

Bit 22 OTFD1LPEN : OTFDEC1 clock enable during CSleep mode

Set and reset by software.

0: OTFDEC1 clock disabled during CSleep mode

1: OTFDEC1 clock enabled during CSleep mode (default after reset)

Bit 21 IOMNGRLPEN : OCTOSPI I/O manager clock enable during CSleep mode

Set and reset by software.

0: OCTOSPI I/O manager clock disabled during CSleep mode

1: OCTOSPI I/O manager clock enabled during CSleep mode (default after reset)

Bit 20 Reserved, must be kept at reset value.

Bit 19 OCTO2LPEN : OCTOSPI2 clock enable during CSleep mode

Set and reset by software.

0: OCTOSPI2 clock disabled during CSleep mode

1: OCTOSPI2 clock enabled during CSleep mode (default after reset)

Bits 18: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)

Bit 15 Reserved, must be kept at reset value.

Bit 14 OCTO1LPEN : OCTOSPI1 clock enable during CSleep mode

Set and reset by software.

0: OCTOSPI1 clock disabled during CSleep mode

1: OCTOSPI1 clock enabled during CSleep mode (default after reset)

Bit 13 Reserved, must be kept at reset value.

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.

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

Bit 8 FLASHLPEN : Flash interface Clock Enable During CSleep Mode

Set and reset by software.

0: Flash interface clock disabled during CSleep mode

1: Flash interface clock enabled during CSleep mode (default after reset)

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

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)

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

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)

8.7.49 RCC AHB1 Sleep clock register (RCC_AHB1LPENR)

This register can be accessed via two different offset address.

Table 72. RCC_AHB1LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB1LPENR0x1000x0603 8023
RCC_C1_AHB1LPENR0x160
31302928272625242322212019181716
Res.Res.Res.Res.Res.USB1OTGHSULPILPENUSB1OTGHSLOPENRes.Res.Res.Res.Res.Res.Res.ETH1RXLPENETH1TXLPEN
rwrwrwrw
1514131211109876543210
ETH1MACLPENRes.Res.Res.Res.Res.Res.Res.Res.Res.ADC12LPENRes.Res.Res.DMA2LPENDMA1LPEN
rwrwrwrw

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

Bit 26 USB1OTGHSULPILPEN : USB_PHY1 clock enable during CSleep mode

Set and reset by software.

Bit 25 USB1OTGHSLOPEN : USB1OTG (OTG_HS1) peripheral clock enable during CSleep mode

Set and reset by software.

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.

Bit 16 ETH1TXLPEN : Ethernet Transmission Clock Enable During CSleep Mode

Set and reset by software.

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)

Bits 14: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)

8.7.50 RCC AHB2 Sleep clock register (RCC_AHB2LPENR)

This register can be accessed via two different offset address.

Table 73. RCC_AHB2LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB2LPENR0x1040x6003 0271
RCC_C1_AHB2LPENR0x164
31302928272625242322212019181716
Res.SRAM2LPENSRAM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CORDICLPENFMACLPEN
rwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.SDMMC2LPENRes.Res.RNGLPENHASHLPENCRYPTLPENRes.Res.Res.DCMI_PSSILPEN
rwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

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:18 Reserved, must be kept at reset value.

Bit 17 CORDICLPEN : CORDIC clock enable during CSleep mode

Set and reset by software.
0: CORDIC clock disabled during CSleep mode
1: CORDIC clock enabled during CSleep mode (default after reset)

Bit 16 FMACLPEN : FMAC clock enable during CSleep mode

Set and reset by software.
0: FMAC clock disabled during CSleep mode
1: FMAC clock enabled during CSleep mode (default after reset)

Bits 15: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 DCMI_PSSILPEN : Digital camera interface clock enable during CSleep mode (DCMI or PSSI depending which peripheral is active)

Set and reset by software.

0: DCMI/PSSI peripheral clock disabled during CSleep mode

1: DCMI/PSSI peripheral clock enabled during CSleep mode (default after reset)

8.7.51 RCC AHB4 Sleep clock register (RCC_AHB4LPENR)

This register can be accessed via two different offset address.

Table 74. RCC_AHB4LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_AHB4LPENR0x1080x3128 06FF
RCC_C1_AHB4LPENR0x168
31302928272625242322212019181716
Res.Res.SRAM4LPENBKPRAMLPENRes.Res.Res.ADC3LPENRes.Res.BDMALPENRes.CROLPENRes.Res.Res.
rwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.GPIOKLPENGPIOJLPENRes.GPIOHLPENGPIOGLPENGPIOFLPENGPIOELPENGPIOILPENGPIOCLPENGPIOBLPENGPIOALPEN
rwrwrwrwrwrwrwrwrwrw

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 GPIOJLPEN : 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 Reserved, must be kept at reset value.

Bit 7 GPIOHLPEN : 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 GPIOGLPEN : 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 GPIOFLPEN : 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 GPIOELPEN : 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 GPIODLPEN : 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)

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)

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)

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)

8.7.52 RCC APB3 Sleep Clock Register (RCC_APB3LPENR)

This register can be accessed via two different offset address.

Table 75. RCC_APB3LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB3LPENR0x10C0x0000 0048
RCC_C1_APB3LPENR0x16C
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.Res.LTDC1LPENRes.Res.Res.
r/wr/w

Bits 31:7 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)

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

Bit 3 LTDC1LPEN : LTDC peripheral clock enable during CSleep mode

Provides the pixel clock ( ltdc_ker_ck ) to the LTDC block.

Set and reset by software.

0: LTDC clock disabled during CSleep mode

1: LTDC clock provided to the LTDC during CSleep mode (default after reset)

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

8.7.53 RCC APB1 Low Sleep clock register (RCC_APB1LLPENR)

This register can be accessed via two different offset address.

Table 76. RCC_APB1LLPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1LLPENR0x1100xEA9FF C3FF
RCC_C1_APB1LLPENR0x170
31302928272625242322212019181716
UART8LPENUART7LPENDAC12LPENRes.CECLPENRes.I2C5LPENRes.I2C3LPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPENSPDIFRXLPEN
rrrrrrrrrrrrr
1514131211109876543210
SPI3LPENSPI2LPENRes.Res.Res.Res.LPTIM1LPENTIM14LPENTIM13LPENTIM12LPENTIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
rrrrrrrrrrrr

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 rcc_pclk1 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 rcc_pclk1 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 CECELSEL and provided to cec_ker_ck input, and the rcc_pclk1 bus interface clock.

Bit 26 Reserved, must be kept at reset value.

  1. Bit 25 I2C5LPEN : I2C5 peripheral clocks enable during CSleep mode
    Set and reset by software.
    0: I2C5 peripheral clocks disabled during CSleep mode
    1: I2C5 peripheral clocks enabled during CSleep mode (default after reset):
    The peripheral clocks of the I2C3 are: the kernel clock selected by I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 bus interface clock.
  2. Bit 24 Reserved, must be kept at reset value.
  3. 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 I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 bus interface clock.
  4. 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 I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 bus interface clock.
  5. 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 I2C1235SEL and provided to i2c_ker_ck input, and the rcc_pclk1 bus interface clock.
  6. 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 rcc_pclk1 bus interface clock.
  7. 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 rcc_pclk1 bus interface clock.
  8. 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 rcc_pclk1 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 rcc_pclk1 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 SPDIFRXSEL and provided to spdifrx_ker_ck input, and the rcc_pclk1 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 rcc_pclk1 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 rcc_pclk1 bus interface clock.

Bits 13: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 rcc_pclk1 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)

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)

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)

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)

  1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)

8.7.54 RCC APB1 High Sleep clock register (RCC_APB1HLPENR)

This register can be accessed via two different offset address.

Table 77. RCC_APB1HLPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB1HLPENR0x1140x0300 0136
RCC_C1_APB1HLPENR0x174
31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.TIM24LPENTIM23LPENRes.Res.Res.Res.Res.Res.Res.Res.
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.FDCANLPENRes.Res.MDIOSLPENOPAMPLPENRes.SWPMILPENCRSLPENRes.
rwrwrwrwrw

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

Bit 25 TIM24LPEN : TIM24 peripheral clocks enable during CSleep mode

Set and reset by software.

0: TIM24 peripheral clocks disabled during CSleep mode

1: TIM24 peripheral clocks enabled during CSleep mode (default after reset)

Bit 24 TIM23LPEN : TIM23 peripheral clocks enable during CSleep mode

Set and reset by software.

0: TIM23 peripheral clocks disabled during CSleep mode

1: TIM23 peripheral clocks enabled during CSleep mode (default after reset)

Bits 23: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 rcc_pclk1 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 SWPMILPEN : 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 SWPMISEL and provided to swpmi_ker_ck input, and the rcc_pclk1 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.

8.7.55 RCC APB2 Sleep clock register (RCC_APB2LPENR)

This register can be accessed via two different offset address.

Table 78. RCC_APB2LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB2LPENR0x1180x4057 30F3
RCC_C1_APB2LPENR0x178
31302928272625242322212019181716
Res.DFSDM1LPENRes.Res.Res.Res.Res.Res.Res.SAI1LPENRes.SPI5LPENRes.TIM17LPENTIM16LPENTIM15LPEN
rwrwrwrwrwrw
1514131211109876543210
Res.Res.SPI4LPENSPI1LPENRes.Res.Res.Res.USART10LPENUART9LPENUSART6LPENUSART1LPENRes.Res.TIM8LPENTIM1LPEN
rwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bit 30 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 29:23 Reserved, must be kept at reset value.

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 SPI5SEL 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:8 Reserved, must be kept at reset value.

Bit 7 USART10LPEN : USART10 peripheral clocks enable during CSleep mode

Set and reset by software.

0: USART10 peripheral clocks disabled during CSleep mode

1: USART10 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the USART10 are: the kernel clock selected by USART16910SEL and provided to usart_ker_ck input, and the rcc_pclk2 bus interface clock.

Bit 6 UART9LPEN : UART9 peripheral clocks enable during CSleep mode

Set and reset by software.

0: UART9 peripheral clocks disabled during CSleep mode

1: UART9 peripheral clocks enabled during CSleep mode (default after reset)

The peripheral clocks of the UART9 are: the kernel clock selected by USART16910SEL and provided to usart_ker_ck input, and the rcc_pclk2 bus interface clock.

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 USART16910SEL 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 USART16910SEL 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)

8.7.56 RCC APB4 Sleep clock register (RCC_APB4LPENR)

This register can be accessed via two different offset address.

Table 79. RCC_APB4LPENR address offset and reset value

Register NameAddress OffsetReset Value
RCC_APB4LPENR0x11C0x0421 DEAA
RCC_C1_APB4LPENR0x17C
31302928272625242322212019181716
Res.Res.Res.Res.Res.DTSLPENRes.Res.Res.Res.SAI4LPENRes.Res.Res.Res.RTCAPBLPEN
rwrwrw
1514131211109876543210
VREFLPENCOMP12LPENRes.LPTIM5LPENLPTIM4LPENLPTIM3LPENLPTIM2LPENRes.I2C4LPENRes.SPI6LPENRes.LPUART1LPENRes.SYSCFGLPENRes.
rwrwrwrwrwrwrwrwrwrw

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

Bit 26 DTSLPEN : Digital temperature sensor peripheral clock enable during CSleep mode

Set and reset by software.

0: Digital temperature sensor peripheral clock disabled during CSleep mode

1: Digital temperature sensor peripheral clock enabled during CSleep mode (default after reset)

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 rcc_pclk4 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 rcc_pclk4 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 rcc_pclk4 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 rcc_pclk4 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 rcc_pclk4 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 rcc_pclk4 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 rcc_pclk4 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 rcc_pclk4 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.

8.7.57 RCC register map

Table 80. 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.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 value----------
0x00CreservedReserved
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_CFGRMCO2[2:0]MCO2PRE[3:0]MCO1[2:0]MCO1PRE[3:0]Res.Res.TIMPRERes.Res.Res.RTCPRE[5:0]STOPKERWUCKSTOPWUCKSWS[2:0]SW[2:0]
Reset value0000000000000000000000000000
0x014reservedReserved
0x018RCC_D1CFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.D1CPRE[3:0]Res.D1PPRE[2:0]HPRE[3:0]
Reset value00000000000

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x01CRCC_D2CFGRRes.Res.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.Res.
Reset value000000
0x020RCC_D3CFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.D3PPRE2[2:0]Res.D3PPRE1[2:0]Res.Res.Res.Res.Res.
Reset value000000
0x024reservedReserved
0x028RCC_PLLCKSELRes.Res.Res.Res.Res.Res.DIVM3[5:0]Res.Res.DIVM2[5:0]Res.Res.DIVM1[5:0]Res.Res.PLL_SRC[1:0]
Reset value10000010000010000000
0x02CRCC_PLLCFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PLL3RGE[1:0]PLL3VCOSELPLL3FRACENPLL2RGE[1:0]PLL2VCOSELPLL2FRACENPLL1RGE[1:0]PLL1VCOSELPLL1FRACEN
Reset value0000000000
0x030RCC_PLL1DIVRRes.DIVR1[6:0]Res.DIVQ1[6:0]DIVP1[6:0]DIVN1[8:0]
Reset value0000001000000100000001010000000
0x034RCC_PLL1FRACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FRACN1[12:0]Res.Res.Res.Res.
Reset value000000000000000
0x038RCC_PLL2DIVRRes.DIVR2[6:0]Res.DIVQ2[6:0]DIVP2[6:0]DIVN2[8:0]
Reset value0000001000000100000001010000000
0x03CRCC_PLL2FRACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FRACN2[12:0]Res.Res.Res.Res.
Reset value000000000000000
0x040RCC_PLL3DIVRRes.DIVR3[6:0]Res.DIVQ3[6:0]DIVP3[6:0]DIVN3[8:0]
Reset value0000001000000100000001010000000
0x044RCC_PLL3FRACRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FRACN3[12:0]Res.Res.Res.Res.
Reset value000000000000000
0x048reservedReserved
0x04CRCC_D1CCIPRRes.Res.CKPERSEL[1:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SDMMCSELRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OCTOSPISSEL[1:0]Res.Res.FMCSEL[1:0]
Reset value0000000

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x050RCC_D2CCIP1RSWPMISELRes.FDCANSEL[1:0]Res.Res.Res.DFSDM1SELRes.Res.Res.SPDIFRXSEL[1:0]Res.Res.Res.SP145SEL[2:0]Res.Res.Res.SP1123SEL[2:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI1SEL[2:0]
Reset value00 000 00 0 00 0 00 0 0
0x054RCC_D2CCIP2RRes.LPTIM1SEL[2:0]Res.Res.Res.Res.Res.CECSEL[1:0]USBSEL[1:0]Res.Res.Res.Res.Res.Res.Res.I2C123SEL[1:0]Res.Res.Res.USART16910SEL[2:0]USART234578SEL[2:0]
Reset value0 0 00 00 00 00 0 00 0 0
0x058RCC_D3CCIPRRes.SP6SEL[2:0]Res.Res.Res.SAI4BSEL[2:0]Res.Res.Res.SAI4ASEL[2:0]Res.Res.Res.ADCSEL[1:0]Res.Res.Res.LPTIM345SEL[2:0]Res.Res.Res.LPJUART1SEL[2:0]
Reset value0 0 00 0 00 0 00 0 00 0 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.LSECCSSIEPLL3RDYIEPLL2RDYIEPLL1RDYIEHSI48RDYIECSIRDYIEHSERDYIEHSIRDYIELSERDYIELSIRDYIE
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.HSECCSSFLSECCSSFPLL3RDYFPLL2RDYFPLL1RDYFHSI48RDYFCSIRDYFHSERDYFHSIRDYFLSERDYFLSIRDYF
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.HSECCSSCLSECCSSCPLL3RDYCPLL2RDYCPLL1RDYCHSI48RDYCCSIRDYCHSERDYCHSIRDYCLSERDYCLSIRDYC
Reset value0000000000
0x06CreservedReserved
0x070RCC_BDCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BDRSTRTCENRes.Res.Res.Res.Res.Res.Res.RTCOSEL[1:0]Res.LSECCSSDLSECCSSONLSEDRV[1:0]LSEBYPLSERDYLSEON
Reset value000 0000 0000

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
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_AHB3RSTRCPURSTRes.Res.Res.Res.Res.Res.Res.OTFD2RSTOTFD1RSTOMNGRSTRes.OCTOSPI2RSTRes.Res.SDMMC1RSTRes.Res.Res.FMCRSTRes.Res.Res.Res.Res.Res.Res.DMA2DRSTRes.Res.Res.MDMARST
Reset value000000000
0x080RCC_AHB1RSTRRes.Res.Res.Res.Res.Res.USB1OTGRSTRes.Res.Res.Res.Res.Res.Res.Res.ETH1MACRSTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.ADC12RSTRes.Res.Res.DMA2RSTDMA1RST
Reset value00000
0x084RCC_AHB2RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CORDICRSTFMACRSTRes.Res.Res.Res.Res.Res.Res.Res.SDMMC2RSTRes.Res.RNGRSTHASHRSTCRYPTRSTRes.Res.Res.DCM_PSSIRS
Reset value0000000
0x088RCC_AHB4RSTRRes.Res.Res.Res.Res.Res.HSEMRSTADC3RSTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GPIOKRSTGPIOJRSTRes.GPIOHRSTGPIOGRSTGPIOFRSTGPIOERSTGPIODRSTGPIOCRSTGPIOBRSTGPIOARST
Reset value000000000000
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.LTDRCRSTRes.Res.Res.Res.
Reset value0
0x090RCC_APB1LSTRUART8RSTUART7RSTDAC12RSTRes.CECRSTRes.I2C5RSTRes.I2C3RSTI2C2RSTI2C1RSTUART5RSTUART4RSTUSART3RSTUSART2RSTSPDIFRXRSTSPI3RSTSPI2RSTRes.Res.Res.Res.LPTIM1RSTTIM14RSTTIM13RSTTIM12RSTTIM7RSTTIM6RSTTIM5RSTTIM4RSTTIM3RSTTIM2RST
Reset value0000000000000000000000000
0x094RCC_APB1HRSTRRes.Res.Res.Res.Res.Res.TIM24RSTTIM23RSTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANRSTRes.Res.MDIOSRSTOPAMPFRSTRes.SWMPPIRSTCRSRSTRes.
Reset value0000000

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x098RCC_APB2RSTRRes.DFSDM1RSTRes.Res.Res.Res.Res.Res.Res.SAI1RSTRes.SPI5RSTRes.TIM17RSTTIM16RSTTIM15RSTRes.Res.SP4RSTSP1RSTRes.Res.Res.Res.Res.UART10RSTUART9RSTUSART6RSTUSART1RSTRes.Res.TIM8RSTTIM1RST
Reset value00000000000000
0x09CRCC_APB4RSTRRes.Res.Res.Res.Res.DTISRSTRes.Res.Res.Res.SAI4RSTRes.Res.Res.Res.Res.VREFRSTCOMP12RSTRes.LPTIM5RSTLPTIM4RSTLPTIM3RSTLPTIM2RSTRes.I2C4RSTRes.SP16RSTRes.LPUART1RSTRes.Res.SYSCFGGRSTRes.
Reset value000000000000
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.Res.Res.Res.WW1RSC
Reset value0
0x0A4reservedReserved
0x0A8RCC_D3AMRRes.Res.SRAM4AMENBKPRAMAMENRes.DTSAMENRes.ADC3AMENRes.Res.SAI4AMENRes.CRCAMENRes.Res.RTCAMENVREFAMENCOMP12AMENRes.LPTIM5AMENLPTIM4AMENLPTIM3AMENLPTIM2AMENRes.I2C4AMENRes.Res.SP16AMENRes.LPUART1AMENRes.Res.BDMAAMEN
Reset value00000000000000000
0x0AC
to
0x0CC
reservedReserved
0x0D0RCC_RSRRes.LPWRRSTFRes.WWDG1RSTFRes.TWDG1RSTFRes.SFTRSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFRes.CPURSTFRMVFRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00001111110
0x0D4RCC_AHB3ENRRes.Res.Res.Res.Res.Res.Res.Res.OTFD2ENOTFD1ENIOMNGRENRes.OCTO2ENRes.Res.SDMMC1ENRes.OCTO1ENRes.FMCENRes.Res.Res.Res.Res.Res.Res.DMA2DENRes.Res.Res.MDMAEN
Reset value000000000
0x0D8RCC_AHB1ENRRes.Res.Res.Res.Res.USB1OTGHSENUSB1OTGHSENRes.Res.Res.Res.Res.Res.Res.ETH1RXENETH1TXENETH1MACENRes.Res.Res.Res.Res.Res.Res.Res.Res.ADC12ENRes.Res.Res.DMA2ENDMA1EN
Reset value00000000

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x0DCRCC_AHB2ENRRes.SRAM2ENSRAM1ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CORIDIENFMACENRes.Res.Res.Res.Res.Res.SDMMC2ENRes.Res.RNGENHASHENCRYPTENRes.Res.Res.DCMI_PSSIE
Reset value000000000
0x0E0RCC_AHB4ENRRes.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.Res.Res.
Reset value
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.Res.Res.Res.Res.Res.Res.Res.
Reset value
0x0E8RCC_APB1ENRUART8ENUART7ENDAC12ENRes.CECENRes.I2C5ENRes.I2C3ENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2ENSPDIFRXENSP13ENSP12ENRes.Res.Res.Res.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.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value
0x0F0RCC_APB2ENRRes.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.Res.Res.
Reset value
0x0F4RCC_APB4ENRRes.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.Res.Res.
Reset value
0x0F8reservedReserved
0x0FCRCC_AHB3LPENRAXISRAM1LPENITCM1LPENDTCM2LPENDTCM1LPENRes.Res.Res.Res.OTFD2LPENOTFD1LPENIOMNGRLPENRes.SDMMC1LPENRes.SDMMC1LPENRes.OCTO1LPENRes.FMCLPENRes.Res.Res.Res.FLASHLPENRes.Res.Res.Res.DMA2DLPENRes.Res.MDMALPEN
Reset value11111111111111

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x100RCC_AHB1LPENRRes.Res.Res.Res.Res.USB1OTGHSULPILPENRes.Res.Res.Res.Res.Res.Res.Res.ETH1RXLPENETH1TXLPENETH1MACLPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.ADC12LPENRes.Res.Res.DMA2LPEN
Reset value111111
0x104RCC_AHB2LPENRRes.SRAM2LPENSRAM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CORCDLPENFMACLPENRes.Res.Res.Res.Res.Res.SDMMC2LPENRes.Res.RNGLPENHASHLPENCRYPTLPENRes.Res.Res.DCMI_PSSILPEN
Reset value111111111
0x108RCC_AHB4LPENRRes.Res.SRAM4LPENBKPRAMLPENRes.Res.ADC3LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GPIO1LPENGPIO2LPENGPIO3LPENGPIO4LPENGPIO5LPENGPIO6LPENGPIO7LPENGPIO8LPENGPIO9LPENGPIO10LPEN
Reset value111111111111
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.Res.Res.Res.Res.Res.Res.Res.
Reset value
0x110RCC_APB1LLPENRUART8LPENUART7LPENDAC12LPENRes.CECLPENRes.I2C5LPENRes.I2C3LPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPENSPDIFRXLPENSPI3LPENSPI2LPENRes.Res.Res.Res.LPTIM1LPENTIM14LPENTIM13LPENTIM12LPENTIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
Reset value1111111111111111111111111
0x114RCC_APB1HLPENRRes.Res.Res.Res.Res.TIM24LPENTIM23LPENRes.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.
Reset value11
0x118RCC_APB2LPENRRes.DFSDM1LPENRes.Res.Res.Res.Res.Res.Res.SAHLPENRes.SPI5LPENRes.TIM17LPENTIM16LPENTIM15LPENRes.Res.SPI4LPENSPI1LPENRes.Res.Res.Res.Res.Res.USART10LPENUSART9LPENUSART6LPENUSART1LPENRes.Res.
Reset value1111111111111

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x11CRCC_
APB4LPENR
Res.Res.Res.Res.Res.DTSLPENRes.Res.Res.Res.SA4LPENRes.Res.Res.Res.RTCAPBLPENVREFLPENCOMP12LPENRes.LPTIM5LPENLPTIM4LPENLPTIM3LPENLPTIM2LPENRes.I2C4LPENRes.SPI6LPENRes.LPUART1LPENRes.SYSCFGLPENRes.
Reset value1111111111111
0x120
to
0x12C
reservedReserved
0x130RCC_C1_RSRRes.LPWRRSTFRes.WWDG1RSTFRes.IWDG1RSTFRes.SFTRSTFPORRSTFPINRSTFBORRSTFD2RSTFD1RSTFRes.CPURSTFRMVFRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00001111110
0x134RCC_C1_
AHB3ENR
Res.Res.Res.Res.Res.Res.Res.Res.OTFD2ENOTFD1ENIOMNGRENRes.OCTO2ENRes.Res.SDMMC1ENRes.OCTO1ENRes.FMCPENRes.Res.Res.Res.Res.Res.Res.DMA2DENRes.Res.Res.MDMAEN
Reset value000000000
0x138RCC_C1_
AHB1ENR
Res.Res.Res.Res.Res.USB1OTGHSULPENUSB1OTGHSENRes.Res.Res.Res.Res.Res.Res.ETH1RXENETH1TXENETH1MACENRes.Res.Res.Res.Res.Res.Res.Res.Res.ADC12ENRes.Res.Res.DMA2ENDMA1EN
Reset value00000000
0x13CRCC_C1_
AHB2ENR
Res.SRAM2ENSRAM1ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CORDICENFMACENRes.Res.Res.Res.Res.SDMMC2ENRes.Res.Res.RNGENHASHENCRYPTENRes.Res.DCMI_PSS1EN
Reset value000000000
0x140RCC_C1_
AHB4ENR
Res.Res.Res.BKPRAMENRes.Res.HSEMENADC3ENRes.Res.BDMAENRes.CRCENRes.Res.Res.Res.Res.Res.Res.GPIOENGPIOJENRes.Res.GPIOHENGPIOGENGPIOFENGPIOEENGIOPDENGIOPCENGIOPBENGIOPAEN
Reset value000000000000000
0x144RCC_C1_
APB3ENR
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.Res.Res.LTDCCENRes.Res.Res.
Reset value00

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x148RCC_C1_APB1LENRUART8ENUART7ENDAC12ENRes.CECENRes.I2C5ENRes.I2C3ENI2C2ENI2C1ENUART5ENUART4ENUSART3ENUSART2ENSPDIFRXENSPI3ENSPI2ENRes.Res.Res.Res.LPTIM1ENTIM14ENTIM13ENTIM12ENTIM7ENTIM6ENTIM5ENTIM4ENTIM3ENTIM2EN
Reset value0000000000000000000000000
0x14CRCC_C1_APB1HENRRes.Res.Res.Res.Res.Res.TIM24ENTIM23ENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANENRes.Res.MDIOSENOPAMPENRes.SWPMIENCRSENRes.
Reset value0000000
0x150RCC_C1_APB2ENRRes.DFSDM1ENRes.Res.Res.Res.Res.Res.SA1ENRes.Res.SP5ENRes.TIM17ENTIM16ENTIM15ENRes.Res.SP4ENSP1ENRes.Res.Res.Res.USART10ENUSART9ENUSART6ENUSART1ENRes.Res.TIM8ENTIM1EN
Reset value00000000000000
0x154RCC_C1_APB4ENRRes.Res.Res.Res.Res.DTSENRes.Res.Res.Res.SA4ENRes.Res.Res.Res.RTCAPBENVREFENCOMP12ENRes.LPTIM5ENLPTIM4ENLPTIM3ENLPTIM2ENRes.I2C4ENReservedSPI6ENRes.LPUART1ENRes.SYSCFGENRes.
Reset value00100000000000000
0x158reservedReserved
0x15CRCC_C1_AHB3LPENRAXISRAM1LPENITCMLPENDTCM2LPENDTCM1LPENRes.Res.Res.Res.OTFD2LPENOTFD1LPENIOMNGRLPENRes.SDMMC1LPENRes.Res.SDMMC1LPENRes.OCTOT1LPENRes.FMCLPENRes.Res.Res.FLASHLPENRes.Res.Res.DMA2LPENRes.Res.Res.MDMALPEN
Reset value11111111111111
0x160RCC_C1_AHB1LPENRRes.Res.Res.Res.Res.USB1OTGHSULPILPENUSB1OTGHSILPENRes.Res.Res.Res.Res.Res.ETH1RXLPENETH1TXLPENETH1MACLPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.ADC12LPENRes.Res.Res.DMA2LPENDMA1LPEN
Reset value11111111
0x164RCC_C1_AHB2LPENRRes.SRAM2LPENSRAM1LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.CORDICLPENFMACLPENRes.Res.Res.Res.Res.Res.Res.SDMMC2LPENRes.Res.RNGLPENHASHPENCRYPTLPENRes.Res.Res.DCMI_PSSILPEN
Reset value111111111

Table 80. RCC register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x168RCC_C1_AHB4LPENRRes.Res.SRAM4LPENBKPRAMLPENRes.Res.Res.ADC3LPENRes.Res.BDMALPENRes.CRCLPENRes.Res.Res.Res.Res.Res.Res.Res.GPIO1LPENGPIOJLPENRes.GPIOHLPENGPIOGLPENGPIOFLPENGPIOELPENGPIODLPENGPIOCLPENGPIOBLPENGPIOALPEN
Reset value111111111111111
0x16CRCC_C1_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.Res.LTDCLPENRes.Res.Res.
Reset value11
0x170RCC_C1_APB1LLPENRUART8LPENUART7LPENDAC12LPENRes.CECLPENRes.I2C5LPENRes.I2C3LPENI2C2LPENI2C1LPENUART5LPENUART4LPENUSART3LPENUSART2LPENSPDIFRXLPENSPI3LPENSPI2LPENRes.Res.Res.Res.LPTIM1LPENTIM14LPENTIM13LPENTIM12LPENTIM7LPENTIM6LPENTIM5LPENTIM4LPENTIM3LPENTIM2LPEN
Reset value1111111111111111111111111
0x174RCC_C1_APB1HLPENRRes.Res.Res.Res.Res.Res.TIM24LPENTIM23LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FDCANLPENRes.Res.MDIOSLPENOPAMP1LPENRes.SWPMILPENCRSLPENRes.Res.
Reset value1111111
0x178RCC_C1_APB2LPENRRes.DFSDM1LPENRes.Res.Res.Res.Res.Res.Res.SA1LPENRes.SPI5LPENRes.TIM17LPENTIM16LPENTIM15LPENRes.Res.SPI4LPENSPI1LPENRes.Res.Res.Res.USART10LPENUSART9LPENUSART8LPENUSART1LPENRes.Res.TIM8LPENTIM1LPEN
Reset value11111111111111
0x17CRCC_C1_APB4LPENRRes.Res.Res.Res.Res.Res.DTSLPENRes.Res.Res.SA4LPENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value11
0x180
to
0x1FC
reservedReserved

Refer to Section 2.3 on page 131 for the register boundary addresses.