6. Reset and clock control (RCC)

6.1 Reset

There are three types of reset, defined as system reset, power reset and backup domain reset.

6.1.1 Power reset

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

  1. 1. a Brown-out reset (BOR).
  2. 2. when exiting from Standby mode.
  3. 3. when exiting from Shutdown mode.

A Brown-out reset, including power-on or power-down reset (POR/PDR), sets all registers to their reset values except the Backup domain.

When exiting Standby mode, all registers in the \( V_{CORE} \) domain are set to their reset value. Registers outside the \( V_{CORE} \) domain (RTC, WKUP, IWDG, and Standby/Shutdown modes control) are not impacted.

When exiting Shutdown mode, a Brown-out reset is generated, resetting all registers except those in the Backup domain.

6.1.2 System reset

A system reset sets all registers to their reset values unless specified otherwise in the register description.

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

  1. 1. A low level on the NRST pin (external reset)
  2. 2. Window watchdog event (WWDG reset)
  3. 3. Independent watchdog event (IWDG reset)
  4. 4. A firewall event (FIREWALL reset)
  5. 5. A software reset (SW reset) (see Software reset )
  6. 6. Low-power mode security reset (see Low-power mode security reset )
  7. 7. Option byte loader reset (see Option byte loader reset )
  8. 8. A Brown-out reset

The reset source can be identified by checking the reset flags in the Control/Status register, RCC_CSR (see Section 6.4.29: Control/status register (RCC_CSR) ).

These sources act on the NRST pin and it is always kept low during the delay phase. The RESET service routine vector is fixed at address 0x0000_0004 in the memory map.

The system reset signal provided to the device is output on the NRST pin. The pulse generator guarantees a minimum reset pulse duration of 20 µs for each internal reset source. In case of an external reset, the reset pulse is generated while the NRST pin is asserted low.

In case of an internal reset, the internal pull-up \( R_{PU} \) is deactivated in order to save the power consumption through the pull-up resistor.

Figure 12. Simplified diagram of the reset circuit

Simplified diagram of the reset circuit. The diagram shows an external reset pin (NRST) connected to a switch. The switch is pulled up to VDD by a resistor (Rpu) and has a Zener diode to ground. The output of the switch is connected to a filter and a pulse generator (min 20 µs). The filter output is connected to a system reset line. The pulse generator output is connected to a multi-input OR gate. The OR gate also receives inputs from WWDG reset, IWDG reset, Firewall reset, Software reset, Low-power manager reset, Option byte loader reset, and BOR reset. The output of the OR gate is connected to the system reset line. The diagram is labeled M8849902V1.
Simplified diagram of the reset circuit. The diagram shows an external reset pin (NRST) connected to a switch. The switch is pulled up to VDD by a resistor (Rpu) and has a Zener diode to ground. The output of the switch is connected to a filter and a pulse generator (min 20 µs). The filter output is connected to a system reset line. The pulse generator output is connected to a multi-input OR gate. The OR gate also receives inputs from WWDG reset, IWDG reset, Firewall reset, Software reset, Low-power manager reset, Option byte loader reset, and BOR reset. The output of the OR gate is connected to the system reset line. The diagram is labeled M8849902V1.

Software reset

The SYSRESETREQ bit in Cortex ® -M4 Application Interrupt and Reset Control Register must be set to force a software reset on the device (refer to the STM32F3 , STM32F4 , STM32L4 and STM32L4+ Series Cortex ® -M4 (PM0214)).

Low-power mode security reset

To prevent that critical applications mistakenly enter a low-power mode, two low-power mode security resets are available. If enabled in option bytes, the resets are generated in the following conditions:

  1. 1. Entering Standby mode: this type of reset is enabled by resetting nRST_STDBY bit in User option Bytes. In this case, whenever a Standby mode entry sequence is successfully executed, the device is reset instead of entering Standby mode.
  2. 2. Entering Stop mode: this type of reset is enabled by resetting nRST_STOP bit in User option bytes. In this case, whenever a Stop mode entry sequence is successfully executed, the device is reset instead of entering Stop mode.
  3. 3. Entering Shutdown mode: this type of reset is enabled by resetting nRST_SHDW bit in User option bytes. In this case, whenever a Shutdown mode entry sequence is successfully executed, the device is reset instead of entering Shutdown mode.

For further information on the User Option Bytes, refer to Section 3.4.1: Option bytes description .

Option byte loader reset

The option byte loader reset is generated when the OBL_LAUNCH bit (bit 27) is set in the FLASH_CR register. This bit is used to launch the option byte loading by software.

6.1.3 Backup domain reset

The backup domain has two specific resets.

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

  1. 1. Software reset, triggered by setting the BDRST bit in the Backup domain control register (RCC_BDCR) .
  2. 2. \( V_{DD} \) or \( V_{BAT} \) power on, if both supplies have previously been powered off.

A backup domain reset only affects the LSE oscillator, the RTC, the Backup registers and the RCC Backup domain control register.

6.2 Clocks

Four different clock sources can be used to drive the system clock (SYSCLK):

The MSI is used as system clock source after startup from Reset, configured at 4 MHz.

The devices have the following additional clock sources:

Each clock source can be switched on or off independently when it is not used, to optimize power consumption.

Several prescalers can be used to configure the AHB frequency, the high speed APB (APB2) and the low speed APB (APB1) domains. The maximum frequency of the AHB, the APB1 and the APB2 domains is 80 MHz.

All the peripheral clocks are derived from their bus clock (HCLK, PCLK1 or PCLK2) except:

The wakeup from Stop mode is supported only when the clock is HSI16 or LSE.

The wakeup from Stop mode is supported only when the clock is HSI16.

The wakeup from Stop mode is supported only when the clock is HSI16.

The functionality in Stop mode (including wakeup) is supported only when the clock is LSI or LSE, or in external clock mode.

The functionality in Stop mode (including wakeup) is supported only when the clock is LSI or LSE.

The RCC feeds the Cortex ® System Timer (SysTick) external clock with the AHB clock (HCLK) divided by 8. The SysTick can work either with this clock or directly with the Cortex ® clock (HCLK), configurable in the SysTick Control and Status Register.

FCLK acts as Cortex ® -M4 free-running clock. For more details refer to the STM32F3, STM32F4, STM32L4 and STM32L4+ Series Cortex ® -M4 programming manual (PM0214) .

Figure 13. Clock tree

Detailed clock tree diagram for STM32 microcontrollers showing various clock sources (LSI, LSE, HSE, HSI, MSI, PLL) and their distribution to different system components like the core, memory, DMA, and various peripherals (TIMx, USARTx, I2Cx, LPTIMx, SWPMI, ADCx, SAI1, DFSDM1).

The diagram illustrates the internal clock architecture of an STM32 microcontroller. On the left, various clock sources are shown:

A central Clock source control block contains multiplexers to select the system clock (SYSCLK) from LSI, LSE, HSE, MSI, HSI16, or RC48. The SYSCLK is distributed to:Additional connections include:

1. Only SYSCLK could be selected on STM32L41xxx and STM32L42xxx devices.

Detailed clock tree diagram for STM32 microcontrollers showing various clock sources (LSI, LSE, HSE, HSI, MSI, PLL) and their distribution to different system components like the core, memory, DMA, and various peripherals (TIMx, USARTx, I2Cx, LPTIMx, SWPMI, ADCx, SAI1, DFSDM1).
  1. 1. For full details about the internal and external clock source characteristics, please refer to the ‘‘Electrical characteristics’’ section in your device datasheet.
  2. 2. The ADC clock can be derived from the AHB clock of the ADC bus interface, divided by a programmable factor (1, 2 or 4). When the programmable factor is ‘1’, the AHB prescaler must be equal to ‘1’.

6.2.1 HSE clock

The high speed external clock signal (HSE) can be generated from two possible clock sources:

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

Figure 14. HSE/ LSE clock sources

Clock sourceHardware configuration
External clockSchematic showing an external clock source connected to the OSC_IN pin. The OSC_OUT pin is shown as a GPIO. Both pins are represented as square pads on a horizontal line representing the chip boundary.
External clock
(available on some package, please refer to the corresponding datasheet)
Schematic showing an external clock source connected to a single CK_IN pin, which is also labeled as a GPIO. The pin is represented as a square pad on a horizontal line.
Crystal/Ceramic resonatorsSchematic of a crystal/ceramic resonator circuit. A resonator is connected between OSC_IN and OSC_OUT pins. Two load capacitors, CL1 and CL2, connect each side of the resonator to ground. The text 'Load capacitors' with arrows points to CL1 and CL2.

External crystal/ceramic resonator (HSE crystal)

The 4 to 48 MHz external oscillator has the advantage of producing a very accurate rate on the main clock.

The associated hardware configuration is shown in Figure 14 . Refer to the electrical characteristics section of the datasheet for more details.

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

The HSE Crystal can be switched on and off using the HSEON bit in the Clock control register (RCC_CR) .

External source (HSE bypass)

In this mode, an external clock source must be provided. It can have a frequency of up to 48 MHz. You select this mode by setting the HSEBYP and HSEON bits in the Clock control register (RCC_CR) . The external clock signal (square, sinus or triangle) with ~40-60 % duty cycle depending on the frequency (refer to the datasheet ) has to drive the OSC_IN pin while the OSC_OUT pin can be used a GPIO. See Figure 14 .

6.2.2 HSI16 clock

The HSI16 clock signal is generated from an internal 16 MHz RC Oscillator.

The HSI16 RC oscillator has the advantage of providing a clock source at low cost (no external components). It also has a faster startup time than the HSE crystal oscillator however, even with calibration the frequency is less accurate than an external crystal oscillator or ceramic resonator.

The HSI16 clock can be selected as system clock after wakeup from Stop modes (Stop 0, Stop 1 or Stop 2). Refer to Section 6.3: Low-power modes . It can also be used as a backup clock source (auxiliary clock) if the HSE crystal oscillator fails. Refer to Section 6.2.10: Clock security system (CSS) .

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 ST for 1 % accuracy at \( T_A=25^\circ\text{C} \) .

After reset, the factory calibration value is loaded in the HSICAL[7:0] bits in the Internal clock sources calibration register (RCC_ICSCR) .

If the application is subject to voltage or temperature variations this may affect the RC oscillator speed. You can trim the HSI16 frequency in the application using the HSITRIM[6:0] bits in the Internal clock sources calibration register (RCC_ICSCR) .

For more details on how to measure the HSI16 frequency variation, refer to Section 6.2.17: Internal/external clock measurement with TIM15/TIM16 .

Note: There are only HSITRIM[4:0] bits on STM32L45xxx and STM32L46xxx devices.

The HSIRDY flag in the Clock control register (RCC_CR) indicates if the HSI16 RC is stable or not. At startup, the HSI16 RC output clock is not released until this bit is set by hardware.

The HSI16 RC can be switched on and off using the HSION bit in the Clock control register (RCC_CR) .

The HSI16 signal can also be used as a backup source (Auxiliary clock) if the HSE crystal oscillator fails. Refer to Section 6.2.10: Clock security system (CSS) on page 190 .

6.2.3 MSI clock

The MSI clock signal is generated from an internal RC oscillator. Its frequency range can be adjusted by software by using the MSIRANGE[3:0] bits in the Clock control register (RCC_CR) . Twelve frequency ranges are available: 100 kHz, 200 kHz, 400 kHz, 800 kHz, 1 MHz, 2 MHz, 4 MHz (default value), 8 MHz, 16 MHz, 24 MHz, 32 MHz and 48 MHz.

The MSI clock is used as system clock after restart from Reset, wakeup from Standby and Shutdown low-power modes. After restart from Reset, the MSI frequency is set to its default value 4 MHz. Refer to Section 6.3: Low-power modes .

The MSI clock can be selected as system clock after a wakeup from Stop mode (Stop 0, Stop 1 or Stop 2). Refer to Section 6.3: Low-power modes . It can also be used as a backup clock source (auxiliary clock) if the HSE crystal oscillator fails. Refer to Section 6.2.10: Clock security system (CSS) .

The MSI RC oscillator has the advantage of providing a low-cost (no external components) low-power clock source. In addition, when used in PLL-mode with the LSE, it provides a very accurate clock source which can be used by the USB FS device, and feed the main PLL to run the system at the maximum speed 80 MHz.

The MSIRDY flag in the Clock control register (RCC_CR) indicates whether the MSI RC is stable or not. At startup, the MSI RC output clock is not released until this bit is set by hardware. The MSI RC can be switched on and off by using the MSION bit in the Clock control register (RCC_CR) .

Hardware auto calibration with LSE (PLL-mode)

When a 32.768 kHz external oscillator is present in the application, it is possible to configure the MSI in a PLL-mode by setting the MSIPLLEN bit in the Clock control register (RCC_CR) . When configured in PLL-mode, the MSI automatically calibrates itself thanks to the LSE. This mode is available for all MSI frequency ranges. At 48 MHz, the MSI in PLL-mode can be used for the USB FS device, saving the need of an external high-speed crystal.

Software calibration

The MSI RC oscillator frequency can vary from one chip to another due to manufacturing process variations, this is why each device is factory calibrated by ST for 1 % accuracy at an ambient temperature, TA, of 25 °C. After reset, the factory calibration value is loaded in the MSICAL[7:0] bits in the Internal clock sources calibration register (RCC_ICSCR) . If the application is subject to voltage or temperature variations, this may affect the RC oscillator speed. You can trim the MSI frequency in the application by using the MSITRIM[7:0] bits in the RCC_ICSCR register. For more details on how to measure the MSI frequency variation please refer to Section 6.2.17: Internal/external clock measurement with TIM15/TIM16 .

Note: Hardware auto calibration with LSE must not be used in conjunction with software calibration.

6.2.4 HSI48 clock

The HSI48 clock signal is generated from an internal 48 MHz RC oscillator and can be used directly for USB and for random number generator (RNG) as well as SDMMC.

The internal 48 MHz RC oscillator is mainly dedicated to provide a high precision clock to the USB peripheral by means of a special Clock Recovery System (CRS) circuitry. The CRS can use the USB SOF signal, the LSE or an external signal to automatically and quickly adjust the oscillator frequency on-fly. It is disabled as soon as the system enters Stop or Standby mode. When the CRS is not used, the HSI48 RC oscillator runs on its default frequency which is subject to manufacturing process variations.

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

The HSI48RDY flag in the Clock recovery RC register (RCC_CRRRCR) indicates whether the HSI48 RC oscillator is stable or not. At startup, the HSI48 RC oscillator output clock is not released until this bit is set by hardware.

The HSI48 can be switched on and off using the HSI48ON bit in the Clock recovery RC register (RCC_CRRRCR).

6.2.5 PLL

The device embeds PLLs: PLL, PLLSAI1. Each PLL provides up to three independent outputs. The internal PLLs can be used to multiply the HSI16, HSE or MSI output clock frequency. The PLLs input frequency must be between 4 and 16 MHz. The selected clock source is divided by a programmable factor PLLM from 1 to 8 to provide a clock frequency in the requested input range. Refer to Figure 13: Clock tree and PLL configuration register (RCC_PLLCFGR) .

The PLLs configuration (selection of the input clock and multiplication factor) must be done before enabling the PLL. Once the PLL is enabled, these parameters cannot be changed.

To modify the PLL configuration, proceed as follows:

  1. 1. Disable the PLL by setting PLLON to 0 in Clock control register (RCC_CR) .
  2. 2. Wait until PLLRDY is cleared. The PLL is now fully stopped.
  3. 3. Change the desired parameter.
  4. 4. Enable the PLL again by setting PLLON to 1.
  5. 5. Enable the desired PLL outputs by configuring PLLPEN, PLLQEN, PLLREN in PLL configuration register (RCC_PLLCFGR) .

An interrupt can be generated when the PLL is ready, if enabled in the Clock interrupt enable register (RCC_CIER) .

The same procedure is applied for changing the configuration of the PLLSAI1:

  1. 1. Disable the PLLSAI1 by setting PLLSAI1ON to 0 in Clock control register (RCC_CR) .
  2. 2. Wait until PLLSAI1RDY is cleared. The PLLSAI1 is now fully stopped.
  3. 3. Change the desired parameter.
  4. 4. Enable the PLLSAI1 again by setting PLLSAI1ON to 1.
  5. 5. Enable the desired PLL outputs by configuring PLLSAI1PEN, PLLSAI1QEN, PLLSAI1REN in PLLSAI1 configuration register (RCC_PLLSAI1CFGR) .

The PLL output frequency must not exceed 80 MHz.

The enable bit of each PLL output clock (PLLPEN, PLLQEN, PLLREN, PLLSAI1PEN, PLLSAI1QEN, PLLSAI1REN) can be modified at any time without stopping the corresponding PLL. PLLREN cannot be cleared if PLLCLK is used as system clock.

PLLP may sometimes be referred to as PLLSAI, as its primary goal is to be a source of the audio clock. PLLQ may sometimes be referred to as PLL48M, because its primary goal is to be a source of the 48MHz clock.

6.2.6 LSE clock

The LSE crystal is a 32.768 kHz Low Speed External crystal or ceramic resonator. It has the advantage of providing a low-power but highly accurate clock source to the real-time clock peripheral (RTC) for clock/calendar or other timing functions.

The LSE crystal is switched on and off using the LSEON bit in Backup domain control register (RCC_BDCR) . The crystal oscillator driving strength can be changed at runtime using the LSEDRV[1:0] bits in the Backup domain control register (RCC_BDCR) to obtain the best compromise between robustness and short start-up time on one side and low-power-consumption on the other side. The LSE drive can be decreased to the lower drive capability (LSEDRV=00) when the LSE is ON. However, once LSEDRV is selected, the drive capability can not be increased if LSEON=1.

The LSERDY flag in the 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 Clock interrupt enable register (RCC_CIER) .

Distribution of the external 32 kHz clock (LSE) outside the RTC block could be disabled by setting LSESYSDIS bit in Backup domain control register (RCC_BDCR) to reduce power consumption. Propagation will be stopped regardless the use of LSE by other IP's. This feature is present on STM32L412xx and STM32L422xx devices only.

External source (LSE bypass)

In this mode, an external clock source must be provided. It can have a frequency of up to 1 MHz. You select this mode by setting the LSEBYP and LSEON bits in the Backup domain control register (RCC_BDCR) . The external clock signal (square, sinus or triangle) with ~50 % duty cycle has to drive the OSC32_IN pin while the OSC32_OUT pin can be used as GPIO. See Figure 14 .

6.2.7 LSI clock

The LSI RC acts as a low-power clock source that can be kept running in Stop and Standby mode for the independent watchdog (IWDG), RTC and LCD. The clock frequency is 32 kHz. For more details, refer to the electrical characteristics section of the datasheets.

The LSI RC can be switched on and off using the LSION bit in the Control/status register (RCC_CSR) .

The LSIRDY flag in the Control/status register (RCC_CSR) indicates if the LSI oscillator is stable or not. At startup, the clock is not released until this bit is set by hardware. An interrupt can be generated if enabled in the Clock interrupt enable register (RCC_CIER) .

6.2.8 System clock (SYSCLK) selection

Four different clock sources can be used to drive the system clock (SYSCLK):

The system clock maximum frequency is 80 MHz. After a system reset, the MSI oscillator, at 4 MHz, is selected as system clock. When a clock source is used directly or through the PLL as a system clock, it is not possible to stop it.

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 which is not yet ready is selected, the switch will occur when the clock source becomes ready. Status bits in the Clock control register (RCC_CR) and Clock configuration register (RCC_CFGR) indicate which clock(s) is (are) ready and which clock is currently used as a system clock.

6.2.9 Clock source frequency versus voltage scaling

The following table gives the different clock source frequencies depending on the product voltage range.

Table 31. Clock source frequency

Product voltage rangeClock frequency
MSIHSI16HSEPLL/PLLSAI1
Range 1 (1)48 MHz16 MHz48 MHz80 MHz
(VCO max = 344 MHz)
Range 2 (2)24 MHz range16 MHz26 MHz26 MHz
(VCO max = 128 MHz)

1. Also for SMPS Range1 and SMPS Range2 High

2. Also for SMPS Range2 Low

6.2.10 Clock security system (CSS)

Clock Security System can be activated by software. In this case, the clock detector is enabled after the HSE oscillator startup delay, and disabled when this oscillator is stopped.

If a failure is detected on the HSE clock, the HSE oscillator is automatically disabled, a clock failure event is sent to the break input of the advanced-control timers (TIM1 and TIM15/16) and an interrupt is generated to inform the software about the failure (Clock Security System Interrupt CSSI), allowing the MCU to perform rescue operations. The CSSI is linked to the Cortex ® -M4 NMI (Non-Maskable Interrupt) exception vector.

Note: Once the CSS is enabled and if the HSE clock fails, the CSS interrupt occurs and a NMI is automatically generated. The NMI will be executed indefinitely unless the CSS interrupt pending bit is cleared. As a consequence, in the NMI ISR user must clear the CSS interrupt by setting the CSSC bit in the Clock interrupt clear register (RCC_CICR) .

If the HSE oscillator is used directly or indirectly as the system clock (indirectly means: it is used as PLL input clock, and the PLL clock is used as system clock), a detected failure

causes a switch of the system clock to the MSI or the HSI16 oscillator depending on the STOPWUCK configuration in the Clock configuration register (RCC_CFGR) , and the disabling of the HSE oscillator. If the HSE clock (divided or not) is the clock entry of the PLL used as system clock when the failure occurs, the PLL is disabled too.

6.2.11 Clock security system on LSE

A Clock Security System on LSE can be activated by software writing the LSECSSON bit in the Backup domain control register (RCC_BDCR) . This bit can be disabled only by a hardware reset or RTC software reset, or after a failure detection on LSE. LSECSSON must be written after LSE and LSI are enabled (LSEON and LSION enabled) and ready (LSERDY and LSIRDY set by hardware), and after the RTC clock has been selected by RTCSEL.

The CSS on LSE is working in all modes except VBAT. It is working also under system reset (excluding power on reset). If a failure is detected on the external 32 kHz oscillator, the LSE clock is no longer supplied to the RTC but no hardware action is made to the registers. If the MSI was in PLL-mode, this mode is disabled.

In Standby mode a wakeup is generated. In other modes an interrupt can be sent to wakeup the software (see Clock interrupt enable register (RCC_CIER) , Clock interrupt flag register (RCC_CIFR) , Clock interrupt clear register (RCC_CICR) ).

The software MUST then disable the LSECSSON bit, stop the defective 32 kHz oscillator (disabling LSEON), and change the RTC clock source (no clock or LSI or HSE, with RTCSEL), or take any required action to secure the application.

The frequency of LSE oscillator have to be higher than 30 kHz to avoid false positive CSS detection.

The CSS provides no protection in case the expected frequency is exceeded.

6.2.12 ADC clock

The ADC clock is derived from the system clock, or from the PLLSAI1 output (a) . It can reach 80 MHz and can be divided by the following prescalers values: 1,2,4,6,8,10,12,16,32,64,128 or 256 by configuring the ADC1_CCR register. It is asynchronous to the AHB clock. Alternatively, the ADC clock can be derived from the AHB clock of the ADC bus interface, divided by a programmable factor (1, 2 or 4). This programmable factor is configured using the CKMODE bit fields in the ADC1_CCR.

If the programmed factor is '1', the AHB prescaler must be set to '1'.

6.2.13 RTC clock

The RTCCLK clock source can be either the HSE/32, LSE or LSI clock. It is selected by programming the RTCSEL[1:0] bits in the Backup domain control register (RCC_BDCR) . This selection cannot be modified without resetting the Backup domain. The system must always be configured so as to get a PCLK frequency greater then or equal to the RTCCLK frequency for a proper operation of the RTC.


a. Except STM32L41xxx/42xxx devices

The LSE clock is in the Backup domain, whereas the HSE and LSI clocks are not. Consequently:

When the RTC clock is LSE or LSI, the RTC remains clocked and functional under system reset.

6.2.14 Timer clock

The timer clock frequencies are automatically defined by hardware. There are two cases:

  1. 1. If the APB prescaler equals 1, the timer clock frequencies are set to the same frequency as that of the APB domain.
  2. 2. Otherwise, they are set to twice ( \( \times 2 \) ) the frequency of the APB domain.

6.2.15 Watchdog clock

If the Independent watchdog (IWDG) is started by either hardware option or software access, the LSI oscillator is forced ON and cannot be disabled. After the LSI oscillator temporization, the clock is provided to the IWDG.

6.2.16 Clock-out capability

The microcontroller clock output (MCO) capability allows the clock to be output onto the external MCO pin. One of eight clock signals can be selected as the MCO clock.

The selection is controlled by the MCOSEL[:0] bits of the Clock configuration register (RCC_CFGR) . The selected clock can be divided with the MCOPRE[2:0] field of the Clock configuration register (RCC_CFGR) .

Another output (LSCO) allows a low speed clock to be output onto the external LSCO pin:

This output remains available in Stop (Stop 0, Stop 1 and Stop 2) and Standby modes. The selection is controlled by the LSCOSEL, and enabled with the LSCOEN in the Backup domain control register (RCC_BDCR) .

The MCO clock output requires the corresponding alternate function selected on the MCO pin, the LSCO pin should be left in default POR state.

6.2.17 Internal/external clock measurement with TIM15/TIM16

It is possible to indirectly measure the frequency of all on-board clock sources by mean of the TIM15 or TIM16 channel 1 input capture, as represented on Figure 15 and Figure 16

Figure 15. Frequency measurement with TIM15 in capture mode

Diagram showing the internal connection for frequency measurement with TIM15. A multiplexer selects between a GPIO pin and the LSE (Low Speed External) clock source. The output of the multiplexer, labeled TI1_RMP, is connected to the TI1 input of the TIM 15 timer block. The diagram is labeled MS33433V1.

The diagram illustrates the internal hardware configuration for clock frequency measurement. On the left, a multiplexer is shown with two input sources: a GPIO pin and the LSE (Low Speed External) clock. The output of this multiplexer is labeled 'TI1_RMP'. This output is connected to the 'TI1' input of a block labeled 'TIM 15'. The entire diagram is enclosed in a rectangular frame, and the identifier 'MS33433V1' is located in the bottom right corner.

Diagram showing the internal connection for frequency measurement with TIM15. A multiplexer selects between a GPIO pin and the LSE (Low Speed External) clock source. The output of the multiplexer, labeled TI1_RMP, is connected to the TI1 input of the TIM 15 timer block. The diagram is labeled MS33433V1.

The input capture channel of the Timer 15 can be a GPIO line or an internal clock of the MCU. This selection is performed through the TI1_RMP bit in the TIM15_OR register. The possibilities are the following ones:

Figure 16. Frequency measurement with TIM16 in capture mode

Diagram of frequency measurement with TIM16 in capture mode. A multiplexer selects between GPIO, LSI, LSE, and RTC wakeup interrupt signals. The output of the multiplexer is connected to the TI1 input of the TIM16 timer block. The selection is controlled by the TI1_RMP[1:0] bits. The diagram is labeled MS33434V1.

The diagram shows a multiplexer on the left with four input lines: GPIO, LSI, LSE, and RTC wakeup interrupt. The output of the multiplexer is connected to the TI1 input of a block labeled TIM16. Above the multiplexer, the text TI1_RMP[1:0] indicates the control signals for the selection. In the bottom right corner of the diagram area, the text MS33434V1 is present.

Diagram of frequency measurement with TIM16 in capture mode. A multiplexer selects between GPIO, LSI, LSE, and RTC wakeup interrupt signals. The output of the multiplexer is connected to the TI1 input of the TIM16 timer block. The selection is controlled by the TI1_RMP[1:0] bits. The diagram is labeled MS33434V1.

The input capture channel of the Timer 16 can be a GPIO line or an internal clock of the MCU. This selection is performed through the TI1_RMP[1:0] bits in the TIM16_OR register. The possibilities are the following ones:

Calibration of the HSI16 and the MSI

For TIM15 and TIM16, the primary purpose of connecting the LSE to the channel 1 input capture is to be able to precisely measure the HSI16 and MSI system clocks (for this, either the HSI16 or MSI should be used as the system clock source). The number of HSI16 (MSI, respectively) clock counts between consecutive edges of the LSE signal provides a measure of the internal clock period. Taking advantage of the high precision of LSE crystals (typically a few tens of ppm's), it is possible to determine the internal clock frequency with the same resolution, and trim the source to compensate for manufacturing, process, temperature and/or voltage related frequency deviations.

The MSI and HSI16 oscillator both have dedicated user-accessible calibration bits for this purpose.

The basic concept consists in providing a relative measurement (e.g. the HSI16/LSE ratio): the precision is therefore closely related to the ratio between the two clock sources. The higher the ratio is, the better the measurement will be.

If LSE is not available, HSE/32 will be the better option in order to reach the most precise calibration possible.

It is however not possible to have a good enough resolution when the MSI clock is low (typically below 1 MHz). In this case, it is advised to:

Calibration of the LSI

The calibration of the LSI will follow the same pattern that for the HSI16, but changing the reference clock. It will be necessary to connect LSI clock to the channel 1 input capture of the TIM16. Then define the HSE as system clock source, the number of his clock counts between consecutive edges of the LSI signal provides a measure of the internal low speed clock period.

The basic concept consists in providing a relative measurement (e.g. the HSE/LSI ratio): the precision is therefore closely related to the ratio between the two clock sources. The higher the ratio is, the better the measurement will be.

6.2.18 Peripheral clock enable register
(RCC_AHBxENR, RCC_APBxENRy)

Each peripheral clock can be enabled by the xxxxEN bit of the RCC_AHBxENR, RCC_APBxENRy registers.

When the peripheral clock is not active, the peripheral registers read or write accesses are not supported.

The enable bit has a synchronization mechanism to create a glitch free clock for the peripheral. After the enable bit is set, there is a 2 clock cycles delay before the clock be active.

Caution: Just after enabling the clock for a peripheral, software must wait for a delay before accessing the peripheral registers.

6.3 Low-power modes

All U(S)ARTs, LPUARTs and \( I^2C \) s have the capability to enable the HSI16 oscillator even when the MCU is in Stop mode (if HSI16 is selected as the clock source for that peripheral).

All U(S)ARTs and LPUARTs can also be driven by the LSE oscillator when the system is in Stop mode (if LSE is selected as clock source for that peripheral) and the LSE

oscillator is enabled (LSEON). In that case the LSE remains always ON in Stop mode (they do not have the capability to turn on the LSE oscillator).

The CPU's deepsleep mode can be overridden for debugging by setting the DBG_STOP or DBG_STANDBY bits in the DBGMCU_CR register.

When leaving the Stop modes (Stop 0, Stop 1 or Stop 2), the system clock is either MSI or HSI16, depending on the software configuration of the STOPWUCK bit in the RCC_CFGR register. The frequency (range and user trim) of the MSI oscillator is the one configured before entering Stop mode. The user trim of HSI16 is kept. If the MSI was in PLL-mode before entering Stop mode, the PLL-mode stabilization time must be waited for after wakeup even if the LSE was kept ON during the Stop mode.

When leaving the Standby and Shutdown modes, the system clock is MSI. The MSI frequency at wakeup from Standby mode is configured with the MSISRANGE in the RCC_CSR register, from 1 to 8 MHz. The MSI frequency at wakeup from Shutdown mode is 4 MHz. The user trim is lost.

If a Flash memory programming operation is on going, Stop, Standby and Shutdown modes entry is delayed until the Flash memory interface access is finished. If an access to the APB domain is ongoing, Stop, Standby and Shutdown modes entry is delayed until the APB access is finished.

6.4 RCC registers

6.4.1 Clock control register (RCC_CR)

Address offset: 0x00

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.PLL SAI1 RDY (1)PLL SAI1 ON (1)PLL RDYPLLONRes.Res.Res.Res.CSS ONHSE BYPHSE RDYHSE ON
rrwrrwrsrwrrw
1514131211109876543210
Res.Res.Res.Res.HSI ASFSHSI RDYHSI KERONHSIONMSIRANGE[3:0]MSI RGSELMSI PLLENMSI RDYMSION
rwrrwrwrwrwrwrwrsrwrrw

1. Not available on STM3L41xxx and STM32L42xxx devices

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

Bit 27 PLLSAI1RDY : SAI1 PLL clock ready flag

Set by hardware to indicate that the PLLSAI1 is locked.

0: PLLSAI1 unlocked

1: PLLSAI1 locked

Bit 26 PLLSAI1ON : SAI1 PLL enable

Set and cleared by software to enable PLLSAI1.

Cleared by hardware when entering Stop, Standby or Shutdown mode.

0: PLLSAI1 OFF

1: PLLSAI1 ON

Bit 25 PLL RDY : Main PLL clock ready flag

Set by hardware to indicate that the main PLL is locked.

0: PLL unlocked

1: PLL locked

Bit 24 PLLON : Main PLL enable

Set and cleared by software to enable the main PLL.

Cleared by hardware when entering Stop, Standby or Shutdown mode. This bit cannot be reset if the PLL clock is used as the system clock.

0: PLL OFF

1: PLL ON

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

Bit 19 CSSON : Clock security system enable

Set by software to enable the clock security system. When CSSON is set, the clock detector is enabled by hardware when the HSE oscillator is ready, and disabled by hardware if a HSE clock failure is detected. This bit is set only and is cleared by reset.

0: Clock security system OFF (clock detector OFF)

1: Clock security system ON (Clock detector ON if the HSE oscillator is stable, OFF if not).

Bit 18 HSEBYP : HSE crystal oscillator bypass

Set and cleared by software to bypass the oscillator with an external clock. The external clock must be enabled with the HSEON bit set, to be used by the device. The HSEBYP bit can be written only if the HSE oscillator is disabled.

0: HSE crystal oscillator not bypassed

1: HSE crystal oscillator bypassed with external clock

Bit 17 HSERDY : HSE clock ready flag

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

0: HSE oscillator not ready

1: HSE oscillator ready

Note: Once the HSEON bit is cleared, HSERDY goes low after 6 HSE clock cycles.

Bit 16 HSEON : HSE clock enable

Set and cleared by software.

Cleared by hardware to stop the HSE oscillator when entering Stop, Standby or Shutdown mode. This bit cannot be reset if the HSE oscillator is used directly or indirectly as the system clock.

0: HSE oscillator OFF

1: HSE oscillator ON

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

Bit 11 HSIASFS : HSI16 automatic start from Stop

Set and cleared by software. When the system wakeup clock is MSI, this bit is used to wakeup the HSI16 is parallel of the system wakeup.

0: HSI16 oscillator is not enabled by hardware when exiting Stop mode with MSI as wakeup clock.

1: HSI16 oscillator is enabled by hardware when exiting Stop mode with MSI as wakeup clock.

Bit 10 HSIRDY : HSI16 clock ready flag

Set by hardware to indicate that HSI16 oscillator is stable. This bit is set only when HSI16 is enabled by software by setting HSION.

0: HSI16 oscillator not ready

1: HSI16 oscillator ready

Note: Once the HSION bit is cleared, HSIRDY goes low after 6 HSI16 clock cycles.

Bit 9 HSIKERON : HSI16 always enable for peripheral kernels.

Set and cleared by software to force HSI16 ON even in Stop modes. The HSI16 can only feed USARTs and I 2 Cs peripherals configured with HSI16 as kernel clock. Keeping the HSI16 ON in Stop mode allows to avoid slowing down the communication speed because of the HSI16 startup time. This bit has no effect on HSION value.

0: No effect on HSI16 oscillator.

1: HSI16 oscillator is forced ON even in Stop mode.

Bit 8 HSION : HSI16 clock enable

Set and cleared by software.

Cleared by hardware to stop the HSI16 oscillator when entering Stop, Standby or Shutdown mode.

Set by hardware to force the HSI16 oscillator ON when STOPWUCK=1 or HSIASFS = 1 when leaving Stop modes, or in case of failure of the HSE crystal oscillator.

This bit is set by hardware if the HSI16 is used directly or indirectly as system clock.

0: HSI16 oscillator OFF

1: HSI16 oscillator ON

Bits 7:4 MSIRANGE[3:0]: MSI clock ranges

These bits are configured by software to choose the frequency range of MSI when MSIRGSEL is set. 12 12 frequency ranges are available:

0000: range 0 around 100 kHz

0001: range 1 around 200 kHz

0010: range 2 around 400 kHz

0011: range 3 around 800 kHz

0100: range 4 around 1M Hz

0101: range 5 around 2 MHz

0110: range 6 around 4 MHz (reset value)

0111: range 7 around 8 MHz

1000: range 8 around 16 MHz

1001: range 9 around 24 MHz

1010: range 10 around 32 MHz

1011: range 11 around 48 MHz

others: not allowed (hardware write protection)

Note: Warning: MSIRANGE can be modified when MSI is OFF (MSION=0) or when MSI is ready (MSIRDY=1). MSIRANGE must NOT be modified when MSI is ON and NOT ready (MSION=1 and MSIRDY=0)

Bit 3 MSIRGSEL: MSI clock range selection

Set by software to select the MSI clock range with MSIRANGE[3:0]. Write 0 has no effect. After a standby or a reset MSIRGSEL is at 0 and the MSI range value is provided by MSISRANGE in CSR register.

0: MSI Range is provided by MSISRANGE[3:0] in RCC_CSR register

1: MSI Range is provided by MSIRANGE[3:0] in the RCC_CR register

Bit 2 MSIPPLEN: MSI clock PLL enable

Set and cleared by software to enable/ disable the PLL part of the MSI clock source. MSIPPLEN must be enabled after LSE is enabled (LSEON enabled) and ready (LSERDY set by hardware). There is a hardware protection to avoid enabling MSIPPLEN if LSE is not ready.

This bit is cleared by hardware when LSE is disabled (LSEON = 0) or when the Clock Security System on LSE detects a LSE failure (refer to RCC_CSR register).

0: MSI PLL OFF

1: MSI PLL ON

Bit 1 MSIRDY: MSI clock ready flag

This bit is set by hardware to indicate that the MSI oscillator is stable.

0: MSI oscillator not ready

1: MSI oscillator ready

Note: Once the MSION bit is cleared, MSIRDY goes low after 6 MSI clock cycles.

Bit 0 MSION: MSI clock enable

This bit is set and cleared by software.

Cleared by hardware to stop the MSI oscillator when entering Stop, Standby or Shutdown mode.

Set by hardware to force the MSI oscillator ON when exiting Standby or Shutdown mode.

Set by hardware to force the MSI oscillator ON when STOPWUCK=0 when exiting from Stop modes, or in case of a failure of the HSE oscillator

Set by hardware when used directly or indirectly as system clock.

0: MSI oscillator OFF

1: MSI oscillator ON

6.4.2 Internal clock sources calibration register (RCC_ICSCR)

Address offset: 0x04

Reset value: 0x40XX 00XX where X is factory-programmed.

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.HSITRIM[6:0]HSICAL[7:0]
rwrwrwrwrwrwrwrrrrrrrr
1514131211109876543210
MSITRIM[7:0]MSICAL[7:0]
rwrwrwrwrwrwrrwrwrrrrrrrr

Bit 31 Reserved, must be kept at reset value.

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

These bits provide an additional user-programmable trimming value that is added to the HSICAL[7:0] bits. It can be programmed to adjust to variations in voltage and temperature that influence the frequency of the HSI16.

The default value is 64, except for STM32L43xxx and STM32L44xxx devices, which have a default value of 16. When added to the HSICAL value, the default HSITRIM value trims the HSI16 to a frequency of 16 MHz \( \pm \) 1%. This is with the exception of cases where the sum of HSICAL and HSITRIM is a multiple of 64.

Note: Bits [6:5] are available only on STM32L41xxx/42xxx/45xxx/46xxx devices.

Bits 23:16 HSICAL[7:0]: HSI16 clock calibration

These bits are initialized at startup with the factory-programmed HSI16 calibration trim value. When HSITRIM is written, HSICAL is updated with the sum of HSITRIM and the factory trim value.

Bits 15:8 MSITRIM[7:0]: MSI clock trimming

These bits provide an additional user-programmable trimming value that is added to the MSICAL[7:0] bits. It can be programmed to adjust to variations in voltage and temperature that influence the frequency of the MSI. The MSITRIM value is a signed integer; the default is 0, which leaves the calibration at the factory-set value.

Bits 14:8 HSITRIM[6:0]: HSI16 clock trimming

These bits provide an additional user-programmable trimming value that is added to the HSICAL[7:0] bits. They can be programmed to adjust for variations in voltage and temperature that affect the frequency of the HSI16 clock. The default value is 64 (16 for STM32L43xxx/44xxx devices), which, when combined with the HSICAL value, trims the HSI16 to a frequency of 16 MHz \( \pm \) 1%.

Note: Bits [6:5] are available only on STM32L41xxx/42xxx/45xxx/46xxx devices.

Bits 7:0 MSICAL[7:0]: MSI clock calibration

These bits are initialized at startup with the factory-programmed MSI calibration trim value. When MSITRIM is written, MSICAL is updated with the sum of MSITRIM and the factory trim value.

Bits 7:0 HSICAL[7:0]: HSI16 clock calibration

These bits are initialized at startup with the factory-programmed HSI16 calibration trim value. When HSITRIM is written to, HSICAL is updated with the sum of HSITRIM and the factory trim value. Refer to the datasheet for details on the granularity of trimming steps. Note that the frequency progression presents discontinuities when HSICAL crosses multiples of 64.

6.4.3 Clock configuration register (RCC_CFGR)

Address offset: 0x08

Reset value: 0x0000 0000

Access: 0 ≤ wait state ≤ 2, word, half-word and byte access

1 or 2 wait states inserted only if the access occurs during clock source switch.

From 0 to 15 wait states inserted if the access occurs when the APB or AHB prescalers values update is on going.

31302928272625242322212019181716
Res.MCOPRE[2:0]MCOSEL[3:0]Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrwrw
1514131211109876543210
STOP
WUCK
Res.PPRE2[2:0]PPRE1[2:0]HPRE[3:0]SWS[1:0]SW[1:0]
rwrwrwrwrwrwrwrwrwrwrwrrrwrw

Bit 31 Reserved, must be kept at reset value.

Bits 30:28 MCOPRE[2:0] : Microcontroller clock output prescaler

These bits are set and cleared by software.

It is highly recommended to change this prescaler before MCO output is enabled.

000: MCO is divided by 1

001: MCO is divided by 2

010: MCO is divided by 4

011: MCO is divided by 8

100: MCO is divided by 16

Others: not allowed

Bits 27:24 MCOSEL[3:0] : Microcontroller clock output

Set and cleared by software.

0000: MCO output disabled, no clock on MCO

0001: SYSCLK system clock selected

0010: MSI clock selected.

0011: HSI16 clock selected.

0100: HSE clock selected

0101: Main PLL clock selected

0110: LSI clock selected

0111: LSE clock selected

1000: Internal HSI48 clock selected

Others: Reserved

Note: This clock output may have some truncated cycles at startup or during MCO clock source switching.

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

Bit 15 STOPWUCK : Wakeup from Stop and CSS backup clock selection

Set and cleared by software to select the system clock used when exiting Stop mode.

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

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

0: MSI oscillator selected as wakeup from stop clock and CSS backup clock.

1: HSI16 oscillator selected as wakeup from stop clock and CSS backup clock

Bit 14 Reserved, must be kept at reset value.

Bits 13:11 PPRE2[2:0] : APB high-speed prescaler (APB2)

Set and cleared by software to control the division factor of the APB2 clock (PCLK2).

0xx: HCLK not divided

100: HCLK divided by 2

101: HCLK divided by 4

110: HCLK divided by 8

111: HCLK divided by 16

Bits 10:8 PPRE1[2:0] : APB low-speed prescaler (APB1)

Set and cleared by software to control the division factor of the APB1 clock (PCLK1).

0xx: HCLK not divided

100: HCLK divided by 2

101: HCLK divided by 4

110: HCLK divided by 8

111: HCLK divided by 16

Bits 7:4 HPRE[3:0] : AHB prescaler

Set and cleared by software to control the division factor of the AHB clock.

Caution: Depending on the device voltage range, the software has to set correctly these bits to ensure that the system frequency does not exceed the maximum allowed frequency (for more details please refer to Section 5.1.7: Dynamic voltage scaling management ). After a write operation to these bits and before decreasing the voltage range, this register must be read to be sure that the new value has been taken into account.

0xxx: SYSCLK not divided

1000: SYSCLK divided by 2

1001: SYSCLK divided by 4

1010: SYSCLK divided by 8

1011: SYSCLK divided by 16

1100: SYSCLK divided by 64

1101: SYSCLK divided by 128

1110: SYSCLK divided by 256

1111: SYSCLK divided by 512

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

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

00: MSI oscillator used as system clock

01: HSI16 oscillator used as system clock

10: HSE used as system clock

11: PLL used as system clock

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

Set and cleared by software to select system clock source (SYSCLK).

Configured by HW to force MSI oscillator selection when exiting Standby or Shutdown mode.

Configured by HW to force MSI or HSI16 oscillator selection when exiting Stop mode or in case of failure of the HSE oscillator, depending on STOPWUCK value.

00: MSI selected as system clock

01: HSI16 selected as system clock

10: HSE selected as system clock

11: PLL selected as system clock

6.4.4 PLL configuration register (RCC_PLLCFGR)

Address offset: 0x0C

Reset value: 0x0000 1000

Access: no wait state, word, half-word and byte access

This register is used to configure the PLL clock outputs according to the formulas:

31302928272625242322212019181716
PLLPDIV[4:0]PLLR[1:0]PLL RENRes.PLLQ[1:0]PLL QENRes.Res.PLLPPLL PEN
rwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.PLLN[7:0]Res.PLLM[2:0]Res.Res.PLLSRC[1:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:27 PLLPDIV[4:0] : Main PLL division factor for PLLCLK

Set and cleared by software to control the SAI1 clock frequency. PLLCLK output clock frequency = VCO frequency / PLLPDIV.

00000: PLLCLK is controlled by the bit PLLP

00001: Reserved.

00010: PLLCLK = VCO / 2

....

11111: PLLCLK = VCO / 31

Bits 26:25 PLLR[1:0] : Main PLL division factor for PLLCLK (system clock)

Set and cleared by software to control the frequency of the main PLL output clock PLLCLK. This output can be selected as system clock. These bits can be written only if PLL is disabled.

PLLCLK output clock frequency = VCO frequency / PLLR with PLLR = 2, 4, 6, or 8

00: PLLR = 2

01: PLLR = 4

10: PLLR = 6

11: PLLR = 8

Caution: The software has to set these bits correctly not to exceed 80 MHz on this domain.

Bit 24 PLLREN : Main PLL PLLCLK output enable

Set and reset by software to enable the PLLCLK output of the main PLL (used as system clock).

This bit cannot be written when PLLCLK output of the PLL is used as System Clock.

In order to save power, when the PLLCLK output of the PLL is not used, the value of PLLREN should be 0.

0: PLLCLK output disable

1: PLLCLK output enable

Bit 23 Reserved, must be kept at reset value.

Bits 22:21 PLLQ[1:0] : Main PLL division factor for PLL48M1CLK (48 MHz clock).

Set and cleared by software to control the frequency of the main PLL output clock PLL48M1CLK. This output can be selected for USB, RNG, SDMMC (48 MHz clock). These

bits can be written only if PLL is disabled.

PLL48M1CLK output clock frequency = VCO frequency / PLLQ with PLLQ = 2, 4, 6, or 8

00: PLLQ = 2

01: PLLQ = 4

10: PLLQ = 6

11: PLLQ = 8

Caution: The software has to set these bits correctly not to exceed 80 MHz on this domain.

Bit 20 PLLQEN : Main PLL PLL48M1CLK output enable

Set and reset by software to enable the PLL48M1CLK output of the main PLL.

In order to save power, when the PLL48M1CLK output of the PLL is not used, the value of PLLQEN should be 0.

0: PLL48M1CLK output disable

1: PLL48M1CLK output enable

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

Bit 17 PLLP : Main PLL division factor for PLLP.

Set and cleared by software to control the frequency of the main PLL output clock PLLP. This output can be selected for SAI1. These bits can be written only if PLL is disabled.

When the PLLPDIV[4:0] is set to "00000", output clock frequency = VCO frequency / PLLP with PLLP = 7, or 17

0: PLLP = 7

1: PLLP = 17

Caution: The software has to set these bits correctly not to exceed 80 MHz on this domain.

Bit 16 PLLPEN : Main PLL PLLP output enable

Set and reset by software to enable the PLLP output of the main PLL.

In order to save power, when the PLLP output of the PLL is not used, the value of PLLPEN should be 0.

0: PLLP output disable

1: PLLP output enable

Bit 15 Reserved, must be kept at reset value.

Bits 14:8 PLLN[6:0] : Main PLL multiplication factor for VCO

Set and cleared by software to control the multiplication factor of the VCO. These bits can be written only when the PLL is disabled.

VCO output frequency = VCO input frequency x PLLN with \( 8 \leq PLLN \leq 86 \)

0000000: PLLN = 0 wrong configuration

0000001: PLLN = 1 wrong configuration

...

0000111: PLLN = 7 wrong configuration

0001000: PLLN = 8

0001001: PLLN = 9

...

1010101: PLLN = 85

1010110: PLLN = 86

1010111: PLLN = 87 wrong configuration

...

1111111: PLLN = 127 wrong configuration

Caution: The software has to set correctly these bits to assure that the VCO output frequency is between 64 and 344 MHz.

Bit 7 Reserved, must be kept at reset value.

Bits 6:4 PLLM : Division factor for the main PLL and audio PLL (PLLSAI1) input clock

Set and cleared by software to divide the PLL and PLLSAI1 input clock before the VCO. These bits can be written only when all PLLs are disabled.

VCO input frequency = PLL input clock frequency / PLLM with \( 1 \leq PLLM \leq 8 \)

000: PLLM = 1

001: PLLM = 2

010: PLLM = 3

011: PLLM = 4

100: PLLM = 5

101: PLLM = 6

110: PLLM = 7

111: PLLM = 8

Caution: The software has to set these bits correctly to ensure that the VCO input frequency ranges from 4 to 16 MHz.

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

Bits 1:0 PLLSRC : Main PLL and PLLSAI1 entry clock source

Set and cleared by software to select PLL and PLLSAI1 clock source. These bits can be written only when PLL and PLLSAI1 are disabled.
In order to save power, when no PLL is used, the value of PLLSRC should be 00.

00: No clock sent to PLL and PLLSAI1

01: MSI clock selected as PLL and PLLSAI1 clock entry

10: HSI16 clock selected as PLL and PLLSAI1 clock entry

11: HSE clock selected as PLL and PLLSAI1 clock entry

6.4.5 PLLSAI1 configuration register (RCC_PLLSAI1CFGR) (a)

Address offset: 0x10

Reset value: 0x0000 1000

Access: no wait state, word, half-word and byte access

This register is used to configure the PLLSAI1 clock outputs according to the formulas:

31302928272625242322212019181716
PLLSAI1PDIV[4:0]PLLSAI1R[1:0]PLL
SAI1
REN
Res.PLLSAI1Q[1:0]PLL
SAI1
QEN
Res.Res.PLL
SAI1P
PLL
SAI1
PEN
rwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.PLLSAI1N[6:0]Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrwrw

a. Not available on STM32L41xxx and STM32L42xxx devices.

Bits 31:27 PLLSAI1PDIV[4:0] : PLLSAI1 division factor for PLLSAI1CLK

Set and cleared by software to control the SAI1 clock frequency. PLLSAI1CLK output clock frequency = VCOSAI1 frequency / PLLPDIV.

00000: PLLSAI1CLK is controlled by the bit PLLP

00001: Reserved.

00010: PLLSAI1CLK = VCOSAI1 / 2

...

11111: PLLSAI1CLK = VCOSAI1 / 31

Bits 26:25 PLLSAI1R[1:0] : PLLSAI1 division factor for PLLADC1CLK (ADC clock)

Set and cleared by software to control the frequency of the PLLSAI1 output clock

PLLADC1CLK. This output can be selected as ADC clock. These bits can be written only if PLLSAI1 is disabled.

PLLADC1CLK output clock frequency = VCOSAI1 frequency / PLLSAI1R with PLLSAI1R = 2, 4, 6, or 8

00: PLLSAI1R = 2

01: PLLSAI1R = 4

10: PLLSAI1R = 6

11: PLLSAI1R = 8

Bit 24 PLLSAI1REN : PLLSAI1 PLLADC1CLK output enable

Set and reset by software to enable the PLLADC1CLK output of the PLLSAI1 (used as clock for ADC).

In order to save power, when the PLLADC1CLK output of the PLLSAI1 is not used, the value of PLLSAI1REN should be 0.

0: PLLADC1CLK output disable

1: PLLADC1CLK output enable

Bit 23 Reserved, must be kept at reset value.

Bits 22:21 PLLSAI1Q[1:0] : PLLSAI1 division factor for PLL48M2CLK (48 MHz clock)

Set and cleared by software to control the frequency of the PLLSAI1 output clock

PLL48M2CLK. This output can be selected for USB, RNG, SDMMC (48 MHz clock). These bits can be written only if PLLSAI1 is disabled.

PLL48M2CLK output clock frequency = VCOSAI1 frequency / PLLQ with PLLQ = 2, 4, 6, or 8

00: PLLQ = 2

01: PLLQ = 4

10: PLLQ = 6

11: PLLQ = 8

Caution: The software has to set these bits correctly not to exceed 80 MHz on this domain.

Bit 20 PLLSAI1QEN : PLLSAI1 PLL48M2CLK output enable

Set and reset by software to enable the PLL48M2CLK output of the PLLSAI1.

In order to save power, when the PLL48M2CLK output of the PLLSAI1 is not used, the value of PLLSAI1QEN should be 0.

0: PLL48M2CLK output disable

1: PLL48M2CLK output enable

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

Bit 17 PLLSAI1P : PLLSAI1 division factor for PLLSAI1CLK (SAI1 clock).

Set and cleared by software to control the frequency of the PLLSAI1 output clock PLLSAI1CLK. This output can be selected for SAI1. These bits can be written only if PLLSAI1 is disabled.

When the PLLSAI1PDIV[4:0] is set to "00000", PLLSAI1CLK output clock frequency = VCOSA1 frequency / PLLSAI1P with PLLSAI1P = 7, or 17

0: PLLSAI1P = 7

1: PLLSAI1P = 17

Bit 16 PLLSAI1PEN : PLLSAI1 PLLSAI1CLK output enable

Set and reset by software to enable the PLLSAI1CLK output of the PLLSAI1.

In order to save power, when the PLLSAI1CLK output of the PLLSAI1 is not used, the value of PLLSAI1PEN should be 0.

0: PLLSAI1CLK output disable

1: PLLSAI1CLK output enable

Bit 15 Reserved, must be kept at reset value.

Bits 14:8 PLLSAI1N[6:0] : PLLSAI1 multiplication factor for VCO

Set and cleared by software to control the multiplication factor of the VCO. These bits can be written only when the PLLSAI1 is disabled.

\( \text{VCOSA1 output frequency} = \text{VCOSA1 input frequency} \times \text{PLLSAI1N} \)

with \( 8 \leq \text{PLLSAI1N} \leq 86 \)

0000000: PLLSAI1N = 0 wrong configuration

0000001: PLLSAI1N = 1 wrong configuration

...

0000111: PLLSAI1N = 7 wrong configuration

0001000: PLLSAI1N = 8

0001001: PLLSAI1N = 9

...

1010101: PLLSAI1N = 85

1010110: PLLSAI1N = 86

1010111: PLLSAI1N = 87 wrong configuration

...

1111111: PLLSAI1N = 127 wrong configuration

Caution: The software has to set correctly these bits to ensure that the VCO output frequency is between 64 and 344 MHz.

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

6.4.6 Clock interrupt enable register (RCC_CIER)

Address offset: 0x18

Reset value: 0x0000 0000

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.HSI48
RDYIE
LSE
CSSIE
Res.Res.PLL
SAI1
RDYIE
(1)
PLL
RDYIE
HSE
RDYIE
HSI
RDYIE
MSI
RDYIE
LSE
RDYIE
LSI
RDYIE
rwrwrwrwrwrwrwrwrw

1. Not available on STM32L41xxx and STM32L42xxx devices

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

Bit 10 HSI48RDYIE : HSI48 ready interrupt enable

Set and cleared by software to enable/disable interrupt caused by the internal HSI48 oscillator.

0: HSI48 ready interrupt disabled

1: HSI48 ready interrupt enabled

Bit 9 LSECSSIE : LSE clock security system interrupt enable

Set and cleared by software to enable/disable interrupt caused by the clock security system on LSE.

0: Clock security interrupt caused by LSE clock failure disabled

1: Clock security interrupt caused by LSE clock failure enabled

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

Bit 6 PLLSAI1RDYIE : PLLSAI1 ready interrupt enable

Set and cleared by software to enable/disable interrupt caused by PLLSAI1L lock.

0: PLLSAI1 lock interrupt disabled

1: PLLSAI1 lock interrupt enabled

Bit 5 PLLRDYIE : PLL ready interrupt enable

Set and cleared by software to enable/disable interrupt caused by PLL lock.

0: PLL lock interrupt disabled

1: PLL lock interrupt enabled

Bit 4 HSE RDYIE : HSE ready interrupt enable

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

0: HSE ready interrupt disabled

1: HSE ready interrupt enabled

Bit 3 HSIRDYIE : HSI16 ready interrupt enable

Set and cleared by software to enable/disable interrupt caused by the HSI16 oscillator stabilization.

0: HSI16 ready interrupt disabled

1: HSI16 ready interrupt enabled

Bit 2 MSIRDYIE : MSI ready interrupt enable

Set and cleared by software to enable/disable interrupt caused by the MSI oscillator stabilization.

0: MSI ready interrupt disabled

1: MSI ready interrupt enabled

Bit 1 LSERDYIE : LSE ready interrupt enable

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

0: LSE ready interrupt disabled

1: LSE ready interrupt enabled

Bit 0 LSIRDYIE : LSI ready interrupt enable

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

0: LSI ready interrupt disabled

1: LSI ready interrupt enabled

6.4.7 Clock interrupt flag register (RCC_CIFR)

Address offset: 0x1C

Reset value: 0x0000 0000

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.HSI48
RDYF
LSE
CSSF
CSSFRes.PLLSAI
1RDYF
(1)
PLL
RDYF
HSE
RDYF
HSI
RDYF
MSI
RDYF
LSE
RDYF
LSI
RDYF
rrrrrrrrr

1. Not available on STM32L41xxx and STM32L42xxx devices

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

Bit 10 HSI48RDYF : HSI48 ready interrupt flag

Set by hardware when the HSI48 clock becomes stable and HSI48RDYIE is set in a response to setting the HSI48ON (refer to Clock recovery RC register (RCC_CRRCR) ).

Cleared by software setting the HSI48RDYC bit.

0: No clock ready interrupt caused by the HSI48 oscillator

1: Clock ready interrupt caused by the HSI48 oscillator

Bit 9 LSECSSF : LSE Clock security system interrupt flag

Set by hardware when a failure is detected in the LSE oscillator.

Cleared by software setting the LSECSSC bit.

0: No clock security interrupt caused by LSE clock failure

1: Clock security interrupt caused by LSE clock failure

Bit 8 CSSF : Clock security system interrupt flag

Set by hardware when a failure is detected in the HSE oscillator.

Cleared by software setting the CSSC bit.

0: No clock security interrupt caused by HSE clock failure

1: Clock security interrupt caused by HSE clock failure

Bit 7 Reserved, must be kept at reset value.

Bit 6 PLLSAI1RDYF : PLLSAI1 ready interrupt flag

Set by hardware when the PLLSAI1 locks and PLLSAI1RDYIE is set.

Cleared by software setting the PLLSAI1RDYC bit.

0: No clock ready interrupt caused by PLLSAI1 lock

1: Clock ready interrupt caused by PLLSAI1 lock

Bit 5 PLLRDYF : PLL ready interrupt flag

Set by hardware when the PLL locks and PLLRDYIE is set.

Cleared by software setting the PLLRDYC bit.

0: No clock ready interrupt caused by PLL lock

1: Clock ready interrupt caused by PLL lock

Bit 4 HSERDYF : HSE ready interrupt flag

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

Cleared by software setting the HSERDYC bit.

0: No clock ready interrupt caused by the HSE oscillator

1: Clock ready interrupt caused by the HSE oscillator

Bit 3 HSIRDYF : HSI16 ready interrupt flag

Set by hardware when the HSI16 clock becomes stable and HSIRDYIE is set in a response to setting the HSION (refer to Clock control register (RCC_CR) ). When HSION is not set but the HSI16 oscillator is enabled by the peripheral through a clock request, this bit is not set and no interrupt is generated.

Cleared by software setting the HSIRDYC bit.

0: No clock ready interrupt caused by the HSI16 oscillator

1: Clock ready interrupt caused by the HSI16 oscillator

Bit 2 MSIRDYF : MSI ready interrupt flag

Set by hardware when the MSI clock becomes stable and MSIRDYIE is set.

Cleared by software setting the MSIRDYC bit.

0: No clock ready interrupt caused by the MSI oscillator

1: Clock ready interrupt caused by the MSI oscillator

Bit 1 LSERDYF : LSE ready interrupt flag

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

Cleared by software setting the LSERDYC bit.

0: No clock ready interrupt caused by the LSE oscillator

1: Clock ready interrupt caused by the LSE oscillator

Bit 0 LSIRDYF : LSI ready interrupt flag

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

Cleared by software setting the LSIRDYC bit.

0: No clock ready interrupt caused by the LSI oscillator

1: Clock ready interrupt caused by the LSI oscillator

6.4.8 Clock interrupt clear register (RCC_CICR)

Address offset: 0x20

Reset value: 0x0000 0000

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.HSI48
RDYC
LSE
CSSC
CSSCRes.PLL
SAI1
RDYC
(1)
PLL
RDYC
HSE
RDYC
HSI
RDYC
MSI
RDYC
LSE
RDYC
LSI
RDYC
wwwwwwwww

1. Not available on STM32L41xxx and STM32L42xxx devices

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

Bit 10 HSI48RDYC : HSI48 oscillator ready interrupt clear

This bit is set by software to clear the HSI48RDYF flag.

0: No effect

1: Clear the HSI48RDYC flag

Bit 9 LSECSSC : LSE Clock security system interrupt clear

This bit is set by software to clear the LSECSSF flag.

0: No effect

1: Clear LSECSSF flag

Bit 8 CSSC : Clock security system interrupt clear

This bit is set by software to clear the CSSF flag.

0: No effect

1: Clear CSSF flag

Bit 7 Reserved, must be kept at reset value.

Bit 6 PLLSAI1RDYC : PLLSAI1 ready interrupt clear

This bit is set by software to clear the PLLSAI1RDYF flag.

0: No effect

1: Clear PLLSAI1RDYF flag

Bit 5 PLLRDYC : PLL ready interrupt clear

This bit is set by software to clear the PLLRDYF flag.

0: No effect

1: Clear PLLRDYF flag

Bit 4 HSERDYC : HSE ready interrupt clear

This bit is set by software to clear the HSERDYF flag.

0: No effect

1: Clear HSERDYF flag

Bit 3 HSIRDYC : HSI16 ready interrupt clear

This bit is set software to clear the HSIRDYF flag.

0: No effect

1: Clear HSIRDYF flag

Bit 2 MSIRDYC : MSI ready interrupt clear

This bit is set by software to clear the MSIRDYF flag.

0: No effect

1: MSIRDYF cleared

Bit 1 LSERDYC : LSE ready interrupt clear

This bit is set by software to clear the LSERDYF flag.

0: No effect

1: LSERDYF cleared

Bit 0 LSIRDYC : LSI ready interrupt clear

This bit is set by software to clear the LSIRDYF flag.

0: No effect

1: LSIRDYF cleared

6.4.9 AHB1 peripheral reset register (RCC_AHB1RSTR)

Address offset: 0x28

Reset value: 0x00000 0000

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TSC
RST
rw
1514131211109876543210
Res.Res.Res.CRC
RST
Res.Res.Res.FLASH
RST
Res.Res.Res.Res.Res.Res.DMA2
RST
DMA1
RST
rwrwrwrw

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

Bit 16 TSCRST : Touch Sensing Controller reset

Set and cleared by software.

0: No effect

1: Reset TSC

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

Bit 12 CRCRST : CRC reset

Set and cleared by software.

0: No effect

1: Reset CRC

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

Bit 8 FLASHRST : Flash memory interface reset

Set and cleared by software. This bit can be activated only when the Flash memory is in power down mode.

0: No effect

1: Reset Flash memory interface

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

Bit 1 DMA2RST : DMA2 reset

Set and cleared by software.

0: No effect

1: Reset DMA2

Bit 0 DMA1RST : DMA1 reset

Set and cleared by software.

0: No effect

1: Reset DMA1

6.4.10 AHB2 peripheral reset register (RCC_AHB2RSTR)

Address offset: 0x2C

Reset value: 0x00000 0000

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RNG
RST
Res.AES
RST (1)
rwrw
1514131211109876543210
Res.Res.ADC
RST
Res.Res.Res.Res.Res.GPIOH
RST
Res.Res.GPIOE
RST (2)
GPIOE
RST (2)
GPIOC
RST
GPIOB
RST
GPIOA
RST
rwrwrwrwrwrwrwrw

1. Available on STM32L42xxx, STM32L44xxx and STM32L46xxx devices only.

2. Not available on STM32L41xxx, STM32L42xxx, STM32L432xx and STM32L442xx devices.

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

Bit 18 RNGRST : Random number generator reset

Set and cleared by software.

0: No effect

1: Reset RNG

Bit 17 Reserved, must be kept at reset value.

Bit 16 AESRST : AES hardware accelerator reset

Set and cleared by software.

0: No effect

1: Reset AES

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

Bit 13 ADCIRST : ADC reset

Set and cleared by software.

0: No effect

1: Reset ADC interface

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

Bit 7 GPIOHRST : IO port H reset
Set and cleared by software.

0: No effect

1: Reset IO port H

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

Bit 4 GPIOERST : IO port E reset
Set and cleared by software.

0: No effect

1: Reset IO port E

Bit 3 GPIOIRST : IO port I reset
Set and cleared by software.

0: No effect

1: Reset IO port I

Bit 2 GPIOCRST : IO port C reset
Set and cleared by software.

0: No effect

1: Reset IO port C

Bit 1 GPIOBRST : IO port B reset
Set and cleared by software.

0: No effect

1: Reset IO port B

Bit 0 GPIOARST : IO port A reset
Set and cleared by software.

0: No effect

1: Reset IO port A

6.4.11 AHB3 peripheral reset register (RCC_AHB3RSTR)

Address offset: 0x30

Reset value: 0x00000 0000

Access: no wait state, word, half-word and byte access

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.QSPI
RST
Res.Res.Res.Res.Res.Res.Res.Res.

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

Bit 8 QSPIRST : QUADSPI1 memory interface reset
Set and cleared by software.

0: No effect

1: Reset QUADSPI

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

6.4.12 APB1 peripheral reset register 1 (RCC_APB1RSTR1)

Address offset: 0x38

Reset value: 0x0000 0000

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
LPTIM1
RST
OPAMP
RST
DAC1
RST (1)
PWR
RST
Res.USBFS
RST (2)
CAN1
RST (1)
CRSRS
T
I2C3R
ST
I2C2
RST (3)
I2C1
RST
Res.UART4
RST (4)
USART3
RST (3)
USART2
RST
Res.
rwrwrwrwrwrwrwrwrwrwrwrw

1514131211109876543210
SPI3
RST (1)
SPI2
RST
Res.Res.Res.Res.LCD
RST (5)
Res.Res.Res.TIM7
RST (6)
TIM6
RST
Res.Res.TIM3
RST (4)
TIM2
RST
rwrwrwrwrwrwrw
  1. 1. Not available on STM32L41xxx and STM32L42xxx devices
  2. 2. Available on STM32L4x2xx and STM32L4x3xx devices only.
  3. 3. Not available on STM32L432xx and STM32L442xx devices.
  4. 4. Available on STM32L45xxx and STM32L46xxx devices only.
  5. 5. Available on STM32L4x3xx devices only.
  6. 6. Available on STM32L43xxx and STM32L44xxx devices only.

Bit 31 LPTIM1RST : Low Power Timer 1 reset

Set and cleared by software.

0: No effect

1: Reset LPTIM1

Bit 30 OPAMP_RST : OPAMP interface reset

Set and cleared by software.

0: No effect

1: Reset OPAMP interface

Bit 29 DAC1RST : DAC1 interface reset

Set and cleared by software.

0: No effect

1: Reset DAC1 interface

Bit 28 PWRRST : Power interface reset

Set and cleared by software.

0: No effect

1: Reset PWR

Bit 27 Reserved, must be kept at reset value.

Bit 26 USBFSRST : USB FS reset

Set and cleared by software.

0: No effect

1: Reset the USB FS

Bit 25 CAN1RST : CAN1 reset

Set and reset by software.

0: No effect

1: Reset the CAN1

  1. Bit 24 CRSRST : CRS reset
    Set and cleared by software.
    0: No effect
    1: Reset the CRS
  2. Bit 23 I2C3RST : I2C3 reset
    Set and reset by software.
    0: No effect
    1: Reset I2C3
  3. Bit 22 I2C2RST : I2C2 reset
    Set and cleared by software.
    0: No effect
    1: Reset I2C2
  4. Bit 21 I2C1RST : I2C1 reset
    Set and cleared by software.
    0: No effect
    1: Reset I2C1
  5. Bit 20 Reserved, must be kept at reset value.
  6. Bit 19 UART4RST : UART4 reset
    Set and cleared by software.
    0: No effect
    1: Reset UART4
  7. Bit 18 USART3RST : USART3 reset
    Set and cleared by software.
    0: No effect
    1: Reset USART3
  8. Bit 17 USART2RST : USART2 reset
    Set and cleared by software.
    0: No effect
    1: Reset USART2
  9. Bit 16 Reserved, must be kept at reset value.
  10. Bit 15 SPI3RST : SPI3 reset
    Set and cleared by software.
    0: No effect
    1: Reset SPI3
  11. Bit 14 SPI2RST : SPI2 reset
    Set and cleared by software.
    0: No effect
    1: Reset SPI2
  12. Bits 13:10 Reserved, must be kept at reset value.
  13. Bit 9 LCDRST : LCD interface reset
    Set and cleared by software.
    0: No effect
    1: Reset LCD
  14. Bits 8:6 Reserved, must be kept at reset value.

Bit 5 TIM7RST : TIM7 timer reset
Set and cleared by software.

0: No effect

1: Reset TIM7

Bit 4 TIM6RST : TIM6 timer reset
Set and cleared by software.

0: No effect

1: Reset TIM6

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

Bit 1 TIM3RST : TIM3 timer reset
Set and cleared by software.

0: No effect

1: Reset TIM3

Bit 0 TIM2RST : TIM2 timer reset
Set and cleared by software.

0: No effect

1: Reset TIM2

6.4.13 APB1 peripheral reset register 2 (RCC_APB1RSTR2)

Address offset: 0x3C

Reset value: 0x00000 0000

Access: no wait state, word, half-word and byte access

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.LPTIM2
RST
Res.Res.SWP
MI1
RST (1)
I2C4
RST (2)
LP
UART1
RST
rwrwrwrw

1. Not available on STM32L41xxx and STM32L42xxx devices.

2. Available on STM32L45xxx and STM32L46xxx devices only.

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

Bit 5 LPTIM2RST : Low-power timer 2 reset
Set and cleared by software.

0: No effect

1: Reset LPTIM2

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

Bit 2 SWPMI1RST : Single wire protocol reset

Set and cleared by software.

0: No effect

1: Reset SWPMI1

Bit 1 I2C4RST : I2C4 reset

Set and cleared by software

0: No effect

1: Reset I2C4

Bit 0 LPUART1RST : Low-power UART 1 reset

Set and cleared by software.

0: No effect

1: Reset LPUART1

6.4.14 APB2 peripheral reset register (RCC_APB2RSTR)

Address offset: 0x40

Reset value: 0x00000 0000

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.:Res.Res.DFSD
M1
RST (1)
Res.Res.SAI1
RST (2)
Res.Res.Res.TIM16
RST
TIM15
RST
rwrwrwrw
1514131211109876543210
Res.USART
1
RST
Res.SPI1
RST
TIM1
RST
SD
MMC1
RST (3)
Res.Res.Res.Res.Res.Res.Res.Res.Res.SYS
CFG
RST
rwrwrwrwrw

1. Available on STM32L45xxx and STM32L46xxx devices only.

2. Not available on STM32L41xxx and STM32L42xxx devices.

3. Not available on STM32L41xxx and STM32L42xxx, STM32L432 and STM32L442 devices.

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

Bit 24 DFSDM1RST : Digital filters for sigma-delta modulators (DFSDM1) reset

Set and cleared by software.

0: No effect

1: Reset DFSDM1

Bit 23 Reserved, must be kept at reset value.

Bit 21 SAI1RST : Serial audio interface 1 (SAI1) reset

Set and cleared by software.

0: No effect

1: Reset SAI1

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

  1. Bit 17 TIM16RST : TIM16 timer reset
    Set and cleared by software.
    0: No effect
    1: Reset TIM16 timer
  2. Bit 16 TIM15RST : TIM15 timer reset
    Set and cleared by software.
    0: No effect
    1: Reset TIM15 timer
  3. Bit 15 Reserved, must be kept at reset value.
  4. Bit 14 USART1RST : USART1 reset
    Set and cleared by software.
    0: No effect
    1: Reset USART1
  5. Bit 13 Reserved, must be kept at reset value.
  6. Bit 12 SPI1RST : SPI1 reset
    Set and cleared by software.
    0: No effect
    1: Reset SPI1
  7. Bit 11 TIM1RST : TIM1 timer reset
    Set and cleared by software.
    0: No effect
    1: Reset TIM1 timer
  8. Bit 10 SDMMC1RST : SDMMC reset
    Set and cleared by software.
    0: No effect
    1: Reset SDMMC
  9. Bits 9:1 Reserved, must be kept at reset value.
  10. Bit 0 SYSCFGIRST : SYSCFG + COMP + VREFBUF reset
    0: No effect
    1: Reset SYSCFG + COMP + VREFBUF

6.4.15 AHB1 peripheral clock enable register (RCC_AHB1ENR)

Address offset: 0x48

Reset value: 0x0000 0100

Access: no wait state, word, half-word and byte access

Note: When the peripheral clock is not active, the peripheral registers read or write access is not supported.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TSC
EN
1514131211109876543210
Res.Res.Res.CRCENRes.Res.Res.FLASH
EN
Res.Res.Res.Res.Res.Res.DMA2
EN
DMA1
EN
rwrwrwrw

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

Bit 16 TSCEN : Touch Sensing Controller clock enable

Set and cleared by software.

0: TSC clock disable

1: TSC clock enable

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

Bit 12 CRCEN : CRC clock enable

Set and cleared by software.

0: CRC clock disable

1: CRC clock enable

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

Bit 8 FLASHEN : Flash memory interface clock enable

Set and cleared by software. This bit can be disabled only when the Flash is in power down mode.

0: Flash memory interface clock disable

1: Flash memory interface clock enable

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

Bit 1 DMA2EN : DMA2 clock enable

Set and cleared by software.

0: DMA2 clock disable

1: DMA2 clock enable

Bit 0 DMA1EN : DMA1 clock enable

Set and cleared by software.

0: DMA1 clock disable

1: DMA1 clock enable

6.4.16 AHB2 peripheral clock enable register (RCC_AHB2ENR)

Address offset: 0x4C

Reset value: 0x0000 0000

Access: no wait state, word, half-word and byte access

Note: When the peripheral clock is not active, the peripheral registers read or write access is not supported.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RNG ENres.AESEN (1)
rwrw
1514131211109876543210
Res.res.ADCENres.Res.Res.Res.res.GPIOH ENres.res.GPIOE ENGPIO D ENGPIO C ENGPIO B ENGPIO A EN
rwrwrwrwrwrwrw

1. Available on STM32L42xxx, STM32L44xxx and STM32L46xxx devices only.

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

Bit 18 RNGEN : Random Number Generator clock enable

Set and cleared by software.

0: Random Number Generator clock disabled

1: Random Number Generator clock enabled

Bit 17 Reserved, must be kept at reset value.

Bit 16 AESEN : AES accelerator clock enable

Set and cleared by software.

0: AES clock disabled

1: AES clock enabled

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

Bit 13 ADCEN : ADC clock enable

Set and cleared by software.

0: ADC clock disabled

1: ADC clock enabled

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

Bit 7 GPIOHEN : IO port H clock enable

Set and cleared by software.

0: IO port H clock disabled

1: IO port H clock enabled

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

Bit 4 GPIOEEN : IO port E clock enable

Set and cleared by software.

0: IO port E clock disabled

1: IO port E clock enabled

Bit 3 GPIO DEN : IO port D clock enable

Set and cleared by software.

0: IO port D clock disabled

1: IO port D clock enabled

Bit 2 GPIO CEN : IO port C clock enable

Set and cleared by software.

0: IO port C clock disabled

1: IO port C clock enabled

Bit 1 GPIO BEN : IO port B clock enable

Set and cleared by software.

0: IO port B clock disabled

1: IO port B clock enabled

Bit 0 GPIO AEN : IO port A clock enable

Set and cleared by software.

0: IO port A clock disabled

1: IO port A clock enabled

6.4.17 AHB3 peripheral clock enable register(RCC_AHB3ENR)

Address offset: 0x50

Reset value: 0x00000 0000

Access: no wait state, word, half-word and byte access

Note: When the peripheral clock is not active, the peripheral registers read or write access is not supported.

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.QSPI
EN
Res.Res.Res.Res.Res.Res.Res.Res.
rw

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

Bit 8 QSPI EN : Quad SPI memory interface clock enable

Set and cleared by software.

0: QUADSPI clock disable

1: QUADSPI clock enable

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

6.4.18 APB1 peripheral clock enable register 1 (RCC_APB1ENR1)

Address: 0x58

Reset value: 0x0000 0400

Access: no wait state, word, half-word and byte access

Note: When the peripheral clock is not active, the peripheral registers read or write access is not supported.

31302928272625242322212019181716
LPTIM1 ENOPAMP ENDAC1 EN (1)PWR ENRes.USB FSEN (2)CAN1 EN (1)CRSENI2C3 ENI2C2 EN (3)I2C1 ENRes.UART4 EN (4)USART3 EN (3)USART2 ENRes.
rwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
SPI3 EN (1)SPI2 EN (3)Res.Res.WWD GENRTCPBENLCD EN (5)Res.Res.Res.TIM7 EN (6)TIM6ENRes.Res.TIM3EN (1)TIM2 EN
rwrwrsrwrwrwrwrwrw
  1. 1. Not available on STM32L41xxx and STM32L42xxx devices
  2. 2. Available on STM32L4x2xx and STM32L4x3xx devices only.
  3. 3. Not available on STM32L432xx and STM32L442xx devices.
  4. 4. Available on STM32L45xxx and STM32L46xxx devices only.
  5. 5. Available on STM32L4x3xx devices only.
  6. 6. Available on STM32L43xxx and STM32L44xxx devices only.

Bit 31 LPTIM1EN : Low power timer 1 clock enable

Set and cleared by software.

0: LPTIM1 clock disabled

1: LPTIM1 clock enabled

Bit 30 OPAMPEN : OPAMP interface clock enable

Set and cleared by software.

0: OPAMP interface clock disabled

1: OPAMP interface clock enabled

Bit 29 DAC1EN : DAC1 interface clock enable

Set and cleared by software.

0: DAC1 interface clock disabled

1: DAC1 interface clock enabled

Bit 28 PWREN : Power interface clock enable

Set and cleared by software.

0: Power interface clock disabled

1: Power interface clock enabled

Bit 27 Reserved, must be kept at reset value.

Bit 26 USBFSEN : USB FS clock enable

Set and cleared by software.

0: USB FS clock disabled

1: USB FS clock enabled

Bit 25 CAN1EN : CAN1 clock enable

Set and cleared by software.

0: CAN1 clock disabled

1: CAN1 clock enabled

Bit 24 CRSEN : CRS clock enable

Set and cleared by software.

0: CRS clock disabled

1: CRS clock enabled

Bit 23 I2C3EN : I2C3 clock enable

Set and cleared by software.

0: I2C3 clock disabled

1: I2C3 clock enabled

Bit 22 I2C2EN : I2C2 clock enable

Set and cleared by software.

0: I2C2 clock disabled

1: I2C2 clock enabled

Bit 21 I2C1EN : I2C1 clock enable

Set and cleared by software.

0: I2C1 clock disabled

1: I2C1 clock enabled

Bit 20 Reserved, must be kept at reset value.

Bit 19 UART4EN : UART4 clock enable

Set and cleared by software.

0: UART4 clock disabled

1: UART4 clock enabled

Bit 18 USART3EN : USART3 clock enable

Set and cleared by software.

0: USART3 clock disabled

1: USART3 clock enabled

Bit 17 USART2EN : USART2 clock enable

Set and cleared by software.

0: USART2 clock disabled

1: USART2 clock enabled

Bit 16 Reserved, must be kept at reset value.

Bit 15 SPI3EN : SPI3 clock enable

Set and cleared by software.

0: SPI3 clock disabled

1: SPI3 clock enabled

Bit 14 SPI2EN : SPI2 clock enable

Set and cleared by software.

0: SPI2 clock disabled

1: SPI2 clock enabled

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

Bit 11 WWDGEN : Window watchdog clock enable

Set by software to enable the window watchdog clock. Reset by hardware system reset.

This bit can also be set by hardware if the WWDG_SW option bit is reset.

0: Window watchdog clock disabled

1: Window watchdog clock enabled

Bit 10 RTCPBEN : RTC APB clock enable

Set and cleared by software

0: RTC APB clock disabled

1: RTC APB clock enabled

Bit 9 LCDEN : LCD clock enable

Set and cleared by software.

0: LCD clock disabled

1: LCD clock enabled

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

Bit 5 TIM7EN : TIM7 timer clock enable

Set and cleared by software.

0: TIM7 clock disabled

1: TIM7 clock enabled

Bit 4 TIM6EN : TIM6 timer clock enable

Set and cleared by software.

0: TIM6 clock disabled

1: TIM6 clock enabled

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

Bit 1 TIM3EN : TIM3 timer clock enable

Set and cleared by software.

0: TIM3 clock disabled

1: TIM3 clock enabled

Bit 0 TIM2EN : TIM2 timer clock enable

Set and cleared by software.

0: TIM2 clock disabled

1: TIM2 clock enabled

6.4.19 APB1 peripheral clock enable register 2 (RCC_APB1ENR2)

Address offset: 0x5C

Reset value: 0x00000 0000

Access: no wait state, word, half-word and byte access

Note: When the peripheral clock is not active, the peripheral registers read or write access is not supported.

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.LPTIM2
EN
Res.Res.SWP
MI1
EN (1)
I2C4EN
(2)
LP
UART1
EN
rwrwrw

1. Available on STM32L43xxx and STM32L44xxx devices only.

2. Available on STM32L45xxx and STM32L46xxx devices only.

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

Bit 5 LPTIM2EN Low power timer 2 clock enable

Set and cleared by software.

0: LPTIM2 clock disable

1: LPTIM2 clock enable

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

Bit 2 SWPMI1EN : Single wire protocol clock enable

Set and cleared by software.

0: SWPMI1 clock disable

1: SWPMI1 clock enable

Bit 1 I2C4EN : I2C4 clock enable

Set and cleared by software

0: I2C4 clock disabled

1: I2C4 clock enabled

Bit 0 LPUART1EN : Low power UART 1 clock enable

Set and cleared by software.

0: LPUART1 clock disable

1: LPUART1 clock enable

6.4.20 APB2 peripheral clock enable register (RCC_APB2ENR)

Address: 0x60

Reset value: 0x0000 0000

Access: word, half-word and byte access

Note: When the peripheral clock is not active, the peripheral registers read or write access is not supported.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.DFSD
M1
EN (1)
Res.Res.SAI1
EN (2)
Res.Res.Res.TIM16
EN
TIM15
EN
rwrwrwrw
1514131211109876543210
Res.USART
1
EN
Res.SPI1
EN
TIM1
EN
SD
MMC1
EN (3)
Res.Res.FW
EN
Res.Res.Res.Res.Res.Res.SYS
CFG
EN
rwrwrwrwrsrw
  1. 1. Available on STM32L45xxx and STM32L46xxx devices only.
  2. 2. Not available on STM32L41xxx/42xxx devices.
  3. 3. Not available on STM3L41xxx and STM32L42xxx, STM32L432 and STM32L442 devices.

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

Bit 24 DFSDM1EN : DFSDM1 timer clock enable

Set and cleared by software.

0: DFSDM1 clock disabled

1: DFSDM1 clock enabled

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

Bit 21 SAI1EN : SAI1 clock enable

Set and cleared by software.

0: SAI1 clock disabled

1: SAI1 clock enabled

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

Bit 17 TIM16EN : TIM16 timer clock enable

Set and cleared by software.

0: TIM16 timer clock disabled

1: TIM16 timer clock enabled

Bit 16 TIM15EN : TIM15 timer clock enable

Set and cleared by software.

0: TIM15 timer clock disabled

1: TIM15 timer clock enabled

Bit 15 Reserved, must be kept at reset value.

Bit 14 USART1EN : USART1 clock enable

Set and cleared by software.

0: USART1 clock disabled

1: USART1 clock enabled

Bit 13 Reserved, must be kept at reset value.

Bit 12 SPI1EN : SPI1 clock enable

Set and cleared by software.

0: SPI1 clock disabled

1: SPI1 clock enabled

Bit 11 TIM1EN : TIM1 timer clock enable

Set and cleared by software.

0: TIM1 timer clock disabled

1: TIM1P timer clock enabled

Bit 10 SDMMC1EN : SDMMC clock enable

Set and cleared by software.

0: SDMMC clock disabled

1: SDMMC clock enabled

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

Bit 7 FWEN : Firewall clock enable

Set by software, reset by hardware. Software can only write 1. A write at 0 has no effect.

0: Firewall clock disabled

1: Firewall clock enabled

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

Bit 0 SYSCFGEN : SYSCFG + COMP + VREFBUF clock enable

Set and cleared by software.

0: SYSCFG + COMP + VREFBUF clock disabled

1: SYSCFG + COMP + VREFBUF clock enabled (1)

1. Not available on STM32L41xxx and STM32L42xxx.

6.4.21 AHB1 peripheral clocks enable in Sleep and Stop modes register (RCC_AHB1SMENR)

Address offset: 0x68

Reset value:

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TSC
SMEN
rw
1514131211109876543210
Res.Res.Res.CRCSMENRes.Res.SRAM1
SMEN
FLASH
SMEN
Res.Res.Res.Res.Res.Res.DMA2
SMEN
DMA1
SMEN
rwrwrwrwrw

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

Bit 16 TSCSMEN : Touch Sensing Controller clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TSC clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TSC clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 12 CRCSMEN : CRC clocks enable during Sleep and Stop modes

Set and cleared by software.

0: CRC clocks disabled by the clock gating (1) during Sleep and Stop modes

1: CRC clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 9 SRAM1SMEN : SRAM1 interface clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SRAM1 interface clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SRAM1 interface clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 8 FLASHSMEN : Flash memory interface clocks enable during Sleep and Stop modes

Set and cleared by software.

0: Flash memory interface clocks disabled by the clock gating (1) during Sleep and Stop modes

1: Flash memory interface clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 1 DMA2SMEN : DMA2 clocks enable during Sleep and Stop modes

Set and cleared by software during Sleep mode.

0: DMA2 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: DMA2 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 0 DMA1SMEN : DMA1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: DMA1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: DMA1 clocks enabled by the clock gating (1) during Sleep and Stop modes

  1. 1. This register only configures the clock gating, not the clock source itself. Most of the peripherals are clocked by a single clock (AHB or APB clock), which is always disabled in Stop mode. In this case setting the bit has no effect in Stop mode.

6.4.22 AHB2 peripheral clocks enable in Sleep and Stop modes register (RCC_AHB2SMENR)

Address offset: 0x6C

Reset value: 0x0005 229F

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RNG SMENRes.AES SMEN (1)
rwrw
1514131211109876543210
Res.Res.ADC SMENRes.Res.Res.SRAM2 SMENRes.GPIOH SMENRes.Res.GPIOE SMEN (2) (3)GPIO D SMENGPIO C SMENGPIO B SMENGPIO A SMEN
rwrwrwrwrwrwrwrw
  1. Available on STM32L44xxx and STM32L46xxx devices only.
  2. Not available on STM32L432xx and STM32L442xx devices.
  3. Not available on STM32L41xxx and STM32L42xxx.

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

Bit 18 RNGSMEN : Random Number Generator clocks enable during Sleep and Stop modes

Set and cleared by software.

0: Random Number Generator clocks disabled by the clock gating during Sleep and Stop modes

1: Random Number Generator clocks enabled by the clock gating during Sleep and Stop modes

Bit 17 Reserved, must be kept at reset value.

Bit 16 AESSMEN : AES accelerator clocks enable during Sleep and Stop modes

Set and cleared by software.

0: AES clocks disabled by the clock gating (1) during Sleep and Stop modes

1: AES clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 13 ADCSMEN : ADC clocks enable during Sleep and Stop modes

Set and cleared by software.

0: ADC clocks disabled by the clock gating (1) during Sleep and Stop modes

1: ADC clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 9 SRAM2SMEN : SRAM2 interface clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SRAM2 interface clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SRAM2 interface clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 8 Reserved, must be kept at reset value.

Bit 7 GPIOHSMEN : IO port H clocks enable during Sleep and Stop modes

Set and cleared by software.

0: IO port H clocks disabled by the clock gating (1) during Sleep and Stop modes

1: IO port H clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 4 GPIOESMEN : IO port E clocks enable during Sleep and Stop modes

Set and cleared by software.

0: IO port E clocks disabled by the clock gating (1) during Sleep and Stop modes

1: IO port E clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 3 GPIO DSMEN : IO port D clocks enable during Sleep and Stop modes

Set and cleared by software.

0: IO port D clocks disabled by the clock gating (1) during Sleep and Stop modes

1: IO port D clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 2 GPIOC SMEN : IO port C clocks enable during Sleep and Stop modes

Set and cleared by software.

0: IO port C clocks disabled by the clock gating (1) during Sleep and Stop modes

1: IO port C clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 1 GPIOB SMEN : IO port B clocks enable during Sleep and Stop modes

Set and cleared by software.

0: IO port B clocks disabled by the clock gating (1) during Sleep and Stop modes

1: IO port B clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 0 GPIOA SMEN : IO port A clocks enable during Sleep and Stop modes

Set and cleared by software.

0: IO port A clocks disabled by the clock gating (1) during Sleep and Stop modes

1: IO port A clocks enabled by the clock gating (1) during Sleep and Stop modes

6.4.23 AHB3 peripheral clocks enable in Sleep and Stop modes register (RCC_AHB3SMENR)

Address offset: 0x70

Reset value: 0x000 0100

Access: no wait state, word, half-word and byte access

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.QSPI
SMEN
Res.Res.Res.Res.Res.Res.Res.Res.
nw

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

Bit 8 QSPI SMEN Quad SPI memory interface clocks enable during Sleep and Stop modes

Set and cleared by software.

0: QUADSPI clocks disabled by the clock gating (1) during Sleep and Stop modes

1: QUADSPI clocks enabled by the clock gating (1) during Sleep and Stop modes

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

  1. 1. This register only configures the clock gating, not the clock source itself. Most of the peripherals are clocked by a single clock (AHB or APB clock), which is always disabled in Stop mode. In this case setting the bit has no effect in Stop mode.

6.4.24 APB1 peripheral clocks enable in Sleep and Stop modes register 1 (RCC_APB1SMENR1)

Address: 0x78

Reset value: 0xF7E6 CE31

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
LPTIM1
SMEN
OPAMP
SMEN
DAC1
SMEN
(1)
PWR
SMEN
Res.USB
FSSM
EN (2)
CAN1
SMEN
(1)
CRSS
MEN
I2C3
SMEN
I2C2
SMEN
(3)
I2C1
SMEN
Res.UART4
SMEN (4)
USART3
SMEN (3)
USART2
SMEN
Res.
rwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
SPI3
SMEN
(1)
SPI2
SMEN
Res.Res.WWDG
SMEN
RTCA
PBSM
EN
LCD
SMEN
(5)
Res.Res.Res.TIM7
SMEN
TIM6
SMEN
Res.Res.TIM3
SMEN
(1)
TIM2
SMEN
rwrwrwrwrwrwrwrwrw
  1. 1. Not available on STM32L41xxx and STM32L42xxx.
  2. 2. Available on STM32L4x2xx and STM32L4x3xx devices only.
  3. 3. Not available on STM32L432xx and STM32L442xx devices.
  4. 4. Available on STM32L45xxx and STM32L46xxx devices only.
  5. 5. Available on STM32L4x3xx devices only.

Bit 31 LPTIM1SMEN : Low power timer 1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: LPTIM1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: LPTIM1 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 30 OPAMPSMEN : OPAMP interface clocks enable during Sleep and Stop modes

Set and cleared by software.

0: OPAMP interface clocks disabled by the clock gating (1) during Sleep and Stop modes

1: OPAMP interface clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 29 DAC1SMEN : DAC1 interface clocks enable during Sleep and Stop modes

Set and cleared by software.

0: DAC1 interface clocks disabled by the clock gating (1) during Sleep and Stop modes

1: DAC1 interface clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 28 PWRSMEN : Power interface clocks enable during Sleep and Stop modes

Set and cleared by software.

0: Power interface clocks disabled by the clock gating (1) during Sleep and Stop modes

1: Power interface clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 27 Reserved, must be kept at reset value.

Bit 26 USBFSSMEN : USB FS clock enable during Sleep and Stop modes

Set and cleared by software.

0: USB FS clock disabled by the clock gating (1) during Sleep and Stop modes

1: USB FS clock enabled by the clock gating (1) during Sleep and Stop modes

Bit 25 CAN1SMEN : CAN1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: CAN1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: CAN1 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 24 CRSSMEN : CRS clock enable during Sleep and Stop modes

Set and cleared by software.

0: CRS clocks disabled by the clock gating (1) during Sleep and Stop modes

1: CRS clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 23 I2C3SMEN : I2C3 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: I2C3 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: I2C3 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 22 I2C2SMEN : I2C2 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: I2C2 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: I2C2 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 21 I2C1SMEN : I2C1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: I2C1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: I2C1 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 20 Reserved, must be kept at reset value.

Bit 19 UART4SMEN : UART4 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: UART4 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: UART4 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 18 USART3SMEN : USART3 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: USART3 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: USART3 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 17 USART2SMEN : USART2 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: USART2 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: USART2 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 16 Reserved, must be kept at reset value.

Bit 15 SPI3SMEN : SPI3 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SPI3 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SPI3 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 14 SPI2SMEN : SPI2 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SPI2 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SPI2 clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 11 WWDGSMEN : Window watchdog clocks enable during Sleep and Stop modes

Set and cleared by software. This bit is forced to '1' by hardware when the hardware WWDG option is activated.

0: Window watchdog clocks disabled by the clock gating (1) during Sleep and Stop modes

1: Window watchdog clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 10 RTCAPBSMEN : RTC APB clock enable during Sleep and Stop modes

Set and cleared by software

0: RTC APB clock disabled by the clock gating (1) during Sleep and Stop modes

1: RTC APB clock enabled by the clock gating (1) during Sleep and Stop modes

Bit 9 LCDSMEN : LCD clocks enable during Sleep and Stop modes

Set and cleared by software.

0: LCD clocks disabled by the clock gating (1) during Sleep and Stop modes

1: LCD clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 5 TIM7SMEN : TIM7 timer clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TIM7 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TIM7 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 4 TIM6SMEN : TIM6 timer clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TIM6 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TIM6 clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 1 TIM3SMEN : TIM3 timer clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TIM3 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TIM3 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 0 TIM2SMEN : TIM2 timer clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TIM2 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TIM2 clocks enabled by the clock gating (1) during Sleep and Stop modes

  1. 1. This register only configures the clock gating, not the clock source itself. Most of the peripherals are clocked by a single clock (AHB or APB clock), which is always disabled in Stop mode. In this case setting the bit has no effect in Stop mode.

6.4.25 APB1 peripheral clocks enable in Sleep and Stop modes register 2 (RCC_APB1SMENR2)

Address offset: 0x7C

Reset value: 0x0000 0025

Access: no wait state, word, half-word and byte access

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.LPTIM2SMENRes.Res.SWPMI1SMEN (1)Res.LPUART1SMEN
rwrwrw
  1. 1. Available on STM32L43xxx and STM32L44xxx devices only.

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

Bit 5 LPTIM2SMEN Low power timer 2 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: LPTIM2 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: LPTIM2 clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 2 SWPMI1SMEN : Single wire protocol clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SWPMI1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SWPMI1 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 1 Reserved, must be kept at reset value.

Bit 0 LPUART1SMEN : Low power UART 1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: LPUART1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: LPUART1 clocks enabled by the clock gating (1) during Sleep and Stop modes

  1. 1. This register only configures the clock gating, not the clock source itself. Most of the peripherals are clocked by a single clock (AHB or APB clock), which is always disabled in Stop mode. In this case setting the bit has no effect in Stop mode.

6.4.26 APB2 peripheral clocks enable in Sleep and Stop modes register (RCC_APB2SMENR)

Address: 0x80

Reset value: 0x0235 7C01

Access: word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI1
SMEN
(1)
Res.Res.Res.TIM16
SMEN
TIM15
SMEN
rwrwrw
1514131211109876543210
Res.USART1
SMEN
Res.SPI1
SMEN
TIM1
SMEN
SD
MMC1
SMEN
(1)
Res.Res.Res.Res.Res.Res.Res.Res.Res.SYS
CFG
SMEN
rwrwrwrwrw

1. Not available on STM32L41xxx and STM32L42xxx.

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

Bit 21 SAI1SMEN : SAI1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SAI1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SAI1 clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 17 TIM16SMEN : TIM16 timer clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TIM16 timer clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TIM16 timer clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 16 TIM15SMEN : TIM15 timer clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TIM15 timer clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TIM15 timer clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 15 Reserved, must be kept at reset value.

Bit 14 USART1SMEN : USART1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: USART1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: USART1 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 13 Reserved, must be kept at reset value.

Bit 12 SPI1SMEN : SPI1 clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SPI1 clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SPI1 clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 11 TIM1SMEN : TIM1 timer clocks enable during Sleep and Stop modes

Set and cleared by software.

0: TIM1 timer clocks disabled by the clock gating (1) during Sleep and Stop modes

1: TIM1P timer clocks enabled by the clock gating (1) during Sleep and Stop modes

Bit 10 SDMMC1SMEN : SDMMC clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SDMMC clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SDMMC clocks enabled by the clock gating (1) during Sleep and Stop modes

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

Bit 0 SYSCFGSMEN : SYSCFG + COMP + VREFBUF clocks enable during Sleep and Stop modes

Set and cleared by software.

0: SYSCFG + COMP + VREFBUF clocks disabled by the clock gating (1) during Sleep and Stop modes

1: SYSCFG + COMP + VREFBUF clocks enabled by the clock gating (1) during Sleep and Stop modes (2)

  1. 1. This register only configures the clock gating, not the clock source itself. Most of the peripherals are clocked by a single clock (AHB or APB clock), which is always disabled in Stop mode. In this case setting the bit has no effect in Stop mode.
  2. 2. Not available on STM32L41xxx and STM32L42xxx.

6.4.27 Peripherals independent clock configuration register (RCC_CCIPR)

Address: 0x88

Reset value: 0x0000 0000

Access: no wait states, word, half-word and byte access

31302928272625242322212019181716
Res.SWP
MI1
SEL (1)
ADCSEL[1:0] (2)CLK48SEL[1:0]Res.Res.SAI1SEL[1:0]
(2)
LPTIM2SEL[1:0]LPTIM1SEL[1:0]I2C3SEL[1:0]
rwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
I2C2SEL[1:0] (3)I2C1SEL[1:0]LPUART1SEL
[1:0]
Res.Res.UART4SEL
[1:0] (4)
USART3SEL
[1:0] (3)
USART2SEL
[1:0]
USART1SEL
[1:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw
  1. 1. Available on STM32L43x and STM32L44x devices only.
  2. 2. Not available on STM32L41xxx and STM32L42xxx.
  3. 3. Not available on STM32L432xx and STM32L442xx devices.
  4. 4. Available on STM32L45xxx and STM32L46xxx devices only.

Bit 31 Reserved, must be kept at reset value.

Bit 30 SWPMI1SEL : SWPMI1 clock source selection

This bit is set and cleared by software to select the SWPMI1 clock source.

0: APB1 (PCLK1) selected as SWPMI1 clock

1: HSI16 clock selected as SWPMI1 clock

Bits 29:28 ADCSEL[1:0] : ADCs clock source selection

These bits are set and cleared by software to select the clock source used by the ADC interface.

00: No clock selected

01: PLLSAI1 “R” clock (PLLADC1CLK) selected as ADCs clock (1)

11: System clock selected as ADCs clock

Bits 27:26 CLK48SEL[1:0] : 48 MHz clock source selection

These bits are set and cleared by software to select the 48 MHz clock source used by USB FS, RNG and SDMMC.

00: HSI48 clock selected as 48 MHz clock

01: PLLSAI1 “Q” clock (PLL48M2CLK) selected as 48 MHz clock

10: PLL “Q” clock (PLL48M1CLK) selected as 48 MHz clock

11: MSI clock selected as 48 MHz clock

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

Bits 23:22 SAI1SEL[1:0] : SAI1 clock source selection (1)

These bits are set and cleared by software to select the SAI1 clock source.

00: PLLSAI1 “P” clock (PLLSAI1CLK) selected as SAI1 clock

01: Reserved

Note: When there is no PLL enabled, the HSI16 clock source is connected automatically to the SAI1 to allow audio detection without the need to turn on the PLL source.

10: PLL “P” clock selected as SAI1 clock

11: External input SAI1_EXTCLK selected as SAI1 clock

Caution: If the selected clock is the external clock, it is not possible to switch to another clock if the external clock is not present.

Bits 21:20 LPTIM2SEL[1:0] : Low power timer 2 clock source selection

These bits are set and cleared by software to select the LPTIM2 clock source.

00: PCLK selected as LPTIM2 clock

01: LSI clock selected as LPTIM2 clock

10: HSI16 clock selected as LPTIM2 clock

11: LSE clock selected as LPTIM2 clock

Bits 19:18 LPTIM1SEL[1:0] : Low power timer 1 clock source selection

These bits are set and cleared by software to select the LPTIM1 clock source.

00: PCLK selected as LPTIM1 clock

01: LSI clock selected as LPTIM1 clock

10: HSI16 clock selected as LPTIM1 clock

11: LSE clock selected as LPTIM1 clock

Bits 17:16 I2C3SEL[1:0] : I2C3 clock source selection

These bits are set and cleared by software to select the I2C3 clock source.

00: PCLK selected as I2C3 clock

01: System clock (SYSCLK) selected as I2C3 clock

10: HSI16 clock selected as I2C3 clock

11: Reserved

Bits 15:14 I2C2SEL[1:0]: I2C2 clock source selection

These bits are set and cleared by software to select the I2C2 clock source.

00: PCLK selected as I2C2 clock

01: System clock (SYSCLK) selected as I2C2 clock

10: HSI16 clock selected as I2C2 clock

11: Reserved

Bits 13:12 I2C1SEL[1:0]: I2C1 clock source selection

These bits are set and cleared by software to select the I2C1 clock source.

00: PCLK selected as I2C1 clock

01: System clock (SYSCLK) selected as I2C1 clock

10: HSI16 clock selected as I2C1 clock

11: Reserved

Bits 11:10 LPUART1SEL[1:0]: LPUART1 clock source selection

These bits are set and cleared by software to select the LPUART1 clock source.

00: PCLK selected as LPUART1 clock

01: System clock (SYSCLK) selected as LPUART1 clock

10: HSI16 clock selected as LPUART1 clock

11: LSE clock selected as LPUART1 clock

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

Bits 7:6 UART4SEL[1:0]: UART4 clock source selection

This bit is set and cleared by software to select the UART4 clock source.

00: PCLK selected as UART4 clock

01: System clock (SYSCLK) selected as UART4 clock

10: HSI16 clock selected as UART4 clock

11: LSE clock selected as UART4 clock

Bits 5:4 USART3SEL[1:0]: USART3 clock source selection

This bit is set and cleared by software to select the USART3 clock source.

00: PCLK selected as USART3 clock

01: System clock (SYSCLK) selected as USART3 clock

10: HSI16 clock selected as USART3 clock

11: LSE clock selected as USART3 clock

Bits 3:2 USART2SEL[1:0]: USART2 clock source selection

This bit is set and cleared by software to select the USART2 clock source.

00: PCLK selected as USART2 clock

01: System clock (SYSCLK) selected as USART2 clock

10: HSI16 clock selected as USART2 clock

11: LSE clock selected as USART2 clock

Bits 1:0 USART1SEL[1:0]: USART1 clock source selection

This bit is set and cleared by software to select the USART1 clock source.

00: PCLK selected as USART1 clock

01: System clock (SYSCLK) selected as USART1 clock

10: HSI16 clock selected as USART1 clock

11: LSE clock selected as USART1 clock

  1. 1. Not available on STM3L41xxx and STM32L42xxx.

6.4.28 Backup domain control register (RCC_BDCR)

Address offset: 0x90

Reset value: 0x0000 0000, reset by Backup domain Reset, except LSCOSEL, LSCOEN and BDRST which are reset only by Backup domain power-on reset.

Access: 0 ≤ wait state ≤ 3, word, half-word and byte access

Wait states are inserted in case of successive accesses to this register.

Note: The bits of the Backup domain control register (RCC_BDCR) are outside of the \( V_{CORE} \) domain. As a result, after Reset, these bits are write-protected and the DBP bit in the Section 5.4.1: Power control register 1 (PWR_CR1) has to be set before these can be modified. Refer to Section 5.1.4: Battery backup domain on page 134 for further information. These bits (except LSCOSEL, LSCOEN and BDRST) are only reset after a Backup domain Reset (see Section 6.1.3: Backup domain reset ). Any internal or external Reset will not have any effect on these bits.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.LSCO
SEL
LSCO
EN
Res.Res.Res.Res.Res.Res.Res.BDRST
rwrwrw

1514131211109876543210
RTC
EN
Res.Res.Res.Res.Res.RTCSEL[1:0]LSESY
SDIS (1)
LSE
CSSD
LSE
CSSON
LSEDRV[1:0]LSE
BYP
LSE
RDY
LSEON
rwrwrwrwrrwrwrwrwrrw

1. This bit is available on STM32L412xx and STM32L422xx devices only.

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

Bit 25 LSCOSEL : Low speed clock output selection
Set and cleared by software.
0: LSI clock selected
1: LSE clock selected

Bit 24 LSCOEN : Low speed clock output enable
Set and cleared by software.
0: Low speed clock output (LSCO) disable
1: Low speed clock output (LSCO) enable

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

Bit 16 BDRST : Backup domain software reset
Set and cleared by software.
0: Reset not activated
1: Reset the entire Backup domain

Bit 15 RTCEN : RTC clock enable
Set and cleared by software.
0: RTC clock disabled
1: RTC 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. Once the RTC clock source has been selected, it cannot be changed anymore unless the Backup domain is reset, or unless a failure is detected on LSE (LSECSSD is set). The BDRST bit can be used to reset them.

00: No clock

01: LSE oscillator clock used as RTC clock

10: LSI oscillator clock used as RTC clock

11: HSE oscillator clock divided by 32 used as RTC clock

Bit 7 LSESYSDIS: Disable the Clock LSE propagation to the system. (1)

Set by software to disable the Clock LSE propagation to the system. Only RTC will be clocked by LSE when this bit is set.

1: No clock LSE propagation

0: Clock LSE propagation enabled

Bit 6 LSECSSD CSS on LSE failure Detection

Set by hardware to indicate when a failure has been detected by the Clock Security System on the external 32 kHz oscillator (LSE).

0: No failure detected on LSE (32 kHz oscillator)

1: Failure detected on LSE (32 kHz oscillator)

Bit 5 LSECSSON CSS on LSE enable

Set by software to enable the Clock Security System on LSE (32 kHz oscillator).

LSECSSON must be enabled after the LSE oscillator is enabled (LSEON bit enabled) and ready (LSERDY flag set by hardware), and after the RTCSEL bit is selected.

Once enabled this bit cannot be disabled, except after a LSE failure detection (LSECSSD =1). In that case the software MUST disable the LSECSSON bit.

0: CSS on LSE (32 kHz external oscillator) OFF

1: CSS on LSE (32 kHz external oscillator) ON

Bits 4:3 LSEDRV[1:0] LSE oscillator drive capability

Set by software to modulate the LSE oscillator's drive capability.

00: 'Xtal mode' lower driving capability

01: 'Xtal mode' medium low driving capability

10: 'Xtal mode' medium high driving capability

11: 'Xtal mode' higher driving capability

The oscillator is in Xtal mode when it is not in bypass mode.

Bit 2 LSEBYP : LSE oscillator bypass

Set and cleared by software to bypass oscillator. This bit can be written only when the external 32 kHz oscillator is disabled (LSEON=0 and LSERDY=0).

0: LSE oscillator not bypassed

1: LSE oscillator bypassed

Bit 1 LSERDY : LSE oscillator ready

Set and cleared by hardware to indicate when the external 32 kHz oscillator is stable. After the LSEON bit is cleared, LSERDY goes low after 6 external low-speed oscillator clock cycles.

0: LSE oscillator not ready

1: LSE oscillator ready

Bit 0 LSEON : LSE oscillator enable

Set and cleared by software.

0: LSE oscillator OFF

1: LSE oscillator ON

  1. 1. This bit is available on STM32L412xx and STM32L422xx devices only.

6.4.29 Control/status register (RCC_CSR)

Address: 0x94

Reset value: 0x0C00 0600, reset by system Reset, except reset flags by power Reset only.

Access: 0 ≤ wait state ≤ 3, word, half-word and byte access

Wait states are inserted in case of successive accesses to this register.

31302928272625242322212019181716
LPWR
RSTF
WWDG
RSTF
IWWG
RSTF
SFT
RSTF
BOR
RSTF
PIN
RSTF
OBL
RSTF
FW
RSTF
RMVFRes.Res.Res.Res.Res.Res.Res.
rrrrrrrrrw
1514131211109876543210
Res.Res.Res.Res.MSISRANGE[3:0]Res.Res.Res.LSIPR
EDIV (1)
Res.Res.LSI
RDY
LSION
rwrwrwrwrwrrw
  1. 1. This bit is available on STM32L412xx and STM32L422xx devices only.

Bit 31 LPWRIRSTF : Low-power reset flag

Set by hardware when a reset occurs due to illegal Stop, Standby or Shutdown mode entry.

Cleared by writing to the RMVF bit.

0: No illegal mode reset occurred

1: Illegal mode reset occurred

Bit 30 WWDGRSTF : Window watchdog reset flag

Set by hardware when a window watchdog reset occurs.

Cleared by writing to the RMVF bit.

0: No window watchdog reset occurred

1: Window watchdog reset occurred

Bit 29 IWDGRSTF : Independent window watchdog reset flag

Set by hardware when an independent watchdog reset domain occurs.

Cleared by writing to the RMVF bit.

0: No independent watchdog reset occurred

1: Independent watchdog reset occurred

Bit 28 SFTRSTF : Software reset flag

Set by hardware when a software reset occurs.

Cleared by writing to the RMVF bit.

0: No software reset occurred

1: Software reset occurred

Bit 27 BORRSTF : BOR flag

Set by hardware when a BOR occurs.

Cleared by writing to the RMVF bit.

0: No BOR occurred

1: BOR occurred

Bit 26 PINRSTF : Pin reset flag

Set by hardware when a reset from the NRST pin occurs.

Cleared by writing to the RMVF bit.

0: No reset from NRST pin occurred

1: Reset from NRST pin occurred

Bit 25 OBLRSTF : Option byte loader reset flag

Set by hardware when a reset from the Option Byte loading occurs.

Cleared by writing to the RMVF bit.

0: No reset from Option Byte loading occurred

1: Reset from Option Byte loading occurred

Bit 24 FWRRSTF : Firewall reset flag

Set by hardware when a reset from the firewall occurs.

Cleared by writing to the RMVF bit.

0: No reset from the firewall occurred

1: Reset from the firewall occurred

Bit 23 RMVF : Remove reset flag

Set by software to clear the reset flags.

0: No effect

1: Clear the reset flags

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

Bits 11:8 MSISRANGE[3:0] MSI range after Standby mode

Set by software to choose the MSI frequency at startup. This range is used after exiting Standby mode until MSIRGSEL is set. After a pad or a power-on reset, the range is always 4 MHz. MSISRANGE can be written only when MSIRGSEL = '1'.

0100: Range 4 around 1 MHz

0101: Range 5 around 2 MHz

0110: Range 6 around 4 MHz (reset value)

0111: Range 7 around 8 MHz

others: Reserved

Note: Changing the MSISRANGE does not change the current MSI frequency.

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

Bit 4 LSIPREDIV : Internal Low Speed oscillator pre-divided by 128

Set and reset by hardware to indicate when the Low Speed Internal RC oscillator has to be divided by 128. The software has to switch off the LSI before to change this bit.

0: LSI RC oscillator is not divided

1: LSI RC oscillator divided by 128

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

Bit 1 LSIRDY : LSI oscillator ready

Set and cleared by hardware to indicate when the LSI oscillator is stable. After the LSION bit is cleared, LSIRDY goes low after 3 LSI oscillator clock cycles. This bit can be set even if LSION = 0 if the LSI is requested by the Clock Security System on LSE, by the Independent Watchdog or by the RTC.

0: LSI oscillator not ready

1: LSI oscillator ready

Bit 0 LSION : LSI oscillator enable

Set and cleared by software.

0: LSI oscillator OFF

1: LSI oscillator ON

6.4.30 Clock recovery RC register (RCC_CRRRCR)

Address: 0x98

Reset value: 0x0000 XXX0 where X is factory-programmed.

Access: no wait state, word, half-word and byte access

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
HSI48CAL[8:0]Res.Res.Res.Res.Res.HSI48
RDY
HSI48
ON
rrrrrrrrrrnw

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

Bits 15:7 HSI48CAL[8:0] : HSI48 clock calibration

These bits are initialized at startup with the factory-programmed HSI48 calibration trim value. They are ready only.

Bits 6:2 Reserved, must be kept at reset value

Bit 1 HSI48RDY : HSI48 clock ready flag

Set by hardware to indicate that HSI48 oscillator is stable. This bit is set only when HSI48 is enabled by software by setting HSI48ON.

0: HSI48 oscillator not ready

1: HSI48 oscillator ready

Bit 0 HSI48ON : HSI48 clock enable

Set and cleared by software.

Cleared by hardware to stop the HSI48 when entering in Stop, Standby or Shutdown modes.

0: HSI48 oscillator OFF

1: HSI48 oscillator ON

6.4.31 Peripherals independent clock configuration register (RCC_CCIPR2)

Address: 0x9C

Reset value: 0x0000 0000

Access: no wait state, 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.I2C4SEL[1:0]
rnw

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

Bits 1:0 I2C4SEL[1:0] : I2C4 clock source selection

These bits are set and cleared by software to select the I2C4 clock source.

00: PCLK selected as I2C4 clock

01: System clock (SYSCLK) selected as I2C4 clock

10: HSI16 clock selected as I2C4 clock

11: reserved

6.4.32 RCC register map

The following table gives the RCC register map and the reset values.

Table 32. RCC register map and reset values

Off-setRegister313029282726252423222120191817161514131211109876543210
0x00RCC_CRRes.Res.Res.Res.PLLSA1RDYPLLSA1ONPLLRRDYPLLRONRes.Res.Res.Res.CSSONHSEBYPHSERDYHSEONRes.Res.Res.Res.HSIASFSHSIRDYHSIKERONHSIONMSIRANG
E
[3:0]
MSIRGSELMSIPLLENMSIRDYMSION
Reset value000000000000011000011
0x04RCC_ICSCRRes.HSITRIM[6:0]HSICAL[7:0]MSITRIM[7:0]MSICAL[7:0]
Reset value1000000xxxxxxxx00000000xxxxxxxx
0x08RCC_CFGRRes.MCOPRE
[2:0]
MCOSEL
[3:0]
Res.Res.Res.Res.Res.Res.Res.Res.Res.STOPWUCKRes.PPRE2
[2:0]
PPRE1
[2:0]
HPRE[3:0]SWS
[1:0]
SW
[1:0]
Reset value000000000000000000000
0x0CRCC_PLLCFGRPLLPDIV[4:0]PLLRR
[1:0]
PLLRENRes.PLLQ
[1:0]
PLLQENRes.Res.Res.Res.PLLPLENRes.PLLN
[6:0]
Res.PLLM
[2:0]
Res.Res.PLL
SRC
[1:0]
Reset value0000000000000001000000000000
0x10RCC_PLLSA1CFGRPLLSA1PDI
V
[4:0]
PLLSA1R
[1:0]
PLLSA1RENRes.PLLSA1Q
[1:0]
PLLSA1QENRes.Res.Res.Res.PLLSA1PENRes.PLLSA1N
[6:0]
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000000000000001000000000000
0x18RCC_CIERRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSI48RDYIELSECSSIERes.Res.PLLSA1RDYIEPLLRRDYIEHSERDYIEHSIRDYIEMSIRDYIELSERDYIELSIRDYIE
Reset value000000000
0x1CRCC_CIFRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSI48RDYIFLSECSSIFRes.Res.PLLSA1RDYIFPLLRRDYIFHSERDYIFHSIRDYIFMSIRDYIFLSERDYIFLSIRDYIF
Reset value0000000000
0x20RCC_CICRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSI48RDYICLSECSSCRes.Res.PLLSA1RDYICPLLRRDYICHSERDYICHSIRDYICMSIRDYICLSERDYICLSIRDYIC
Reset value0000000000

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

Off-setRegister313029282726252423222120191817161514131211109876543210
0x28RCC_AHB1RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TSCRSTRes.Res.Res.Res.CRCRSTRes.Res.FLASHRSTRes.Res.Res.Res.Res.Res.Res.DMA2RST
Reset value0000
0x2CRCC_AHB2RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RNGRSTRes.AESRSTRes.Res.Res.ADCIRSTRes.Res.Res.Res.GPIOHRSTRes.Res.Res.Res.Res.Res.Res.
Reset value00000000
0x30RCC_AHB3RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.QSPIRSTRes.Res.Res.Res.Res.Res.Res.Res.
Reset value0
0x38RCC_APB1RSTR1LPTIM1RSTOPAMP1RSTDAC1RSTPWRRSTRes.USBF5RSTCAN1RSTCRSRSTI2C3RSTI2C2RSTI2C1RSTRes.UART4RSTUSART3RSTUSART2RSTRes.SPI3RSTSPI2RSTRes.Res.Res.Res.LCDRSTRes.Res.Res.Res.TIM7RSTTIM6RSTRes.Res.
Reset value000000000000000000
0x3CRCC_APB1RSTR2Res.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.LPTIM2RSTRes.Res.Res.
Reset value0
0x40RCC_APB2RSTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.SA1RSTRes.Res.Res.Res.TIM16RSTTIM15RSTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000
0x48RCC_AHB1ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TSCENRes.Res.Res.Res.CRCENRes.Res.FLASHENRes.Res.Res.Res.Res.Res.Res.Res.
Reset value0010
0x4CRCC_AHB2ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RNGENRes.AESENRes.Res.Res.ADCENRes.Res.Res.Res.GPIOHENRes.Res.Res.GPIOEENGPIODENGPIOCENGPIOBEN
Reset value00000000

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

Off-setRegister313029282726252423222120191817161514131211109876543210
0x50RCC_AHB3ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.QSPIENRes.Res.Res.Res.Res.Res.Res.
Reset value0
0x58RCC_APB1ENR1LPTIM1ENOPAMPENDAC1ENPWRENRes.USBFSENCAN1ENCRSENI2C3ENI2C2ENI2C1ENRes.UART4ENUSART3ENUSART2ENRes.SP3ENSPI2ENRes.Res.WWDGENRTCAPBENLCDENRes.Res.Res.TIM7ENTIM6ENRes.Res.Res.
Reset value00000000000000001000
0x5CRCC_APB1ENR2Res.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.LPTIM2ENRes.Res.Res.Res.
Reset value000
0x60RCC_APB2ENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.SAI1ENRes.Res.Res.Res.TIM16ENTIM15ENRes.Res.Res.SPI1ENTIM1ENRes.Res.Res.FWENRes.Res.Res.Res.Res.
Reset value0000000
0x68RCC_AHB1SMENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TSCSMENRes.Res.Res.Res.CRCSMENRes.Res.SRAM1SMENFLASHSMENRes.Res.Res.Res.Res.Res.
Reset value-1-1-1-1
0x6CRCC_AHB2SMENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SRAM2SMENRes.GPIOHSMENRes.Res.Res.Res.Res.
Reset value-1-1
0x70RCC_AHB3SMENRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.QSPISMENRes.Res.Res.Res.Res.Res.
Reset value1
0x78RCC_APB1SMENR1LPTIM1SMENOPAMPSMENDAC1SMENPWRSMENRes.USBFSSMENCAN1SMENCRSSMENI2C3SMENI2C2SMENI2C1SMENRes.UART4SMENUSART3SMENUSART2SMENRes.SP3SMENSPI2SMENRes.Res.WWDGSMENRTCAPBSMENLCDSMENRes.Res.Res.TIM7SMENTIM6SMENRes.Res.Res.
Reset value11111111111111111

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

Off-setRegister313029282726252423222120191817161514131211109876543210
0x7CRCC_APB1SMENR2Res.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.LPTIM2SMENRes.Res.SWPMI1SMENI2C4SMEN
Reset value111
0x80RCC_APB2SMENRRes.Res.Res.Res.Res.Res.Res.DFSDM1SMENRes.Res.SAI1SMENRes.Res.Res.Res.TIM16SMENTIM15SMENRes.USART1SMENRes.SPI1SMENTIM1SMENSDMMC1SMENRes.Res.Res.Res.Res.Res.Res.Res.SYSCFGSMEN
Reset value111111111
0x88RCC_CCIPRDFSDM1SELSWPMI1SELADCSELCLK48SELRes.Res.SAI1SELLPTIM2SELLPTIM1SELI2C3SELI2C2SELI2C1SELLPUART1SELRes.Res.UART4SELUSART3SELUSART2SELUSART1SEL
Reset value0000000000000000000000000
0x90RCC_BDCRRes.Res.Res.Res.Res.Res.LSCOSELLSCOENRes.Res.Res.Res.Res.Res.Res.BDRSTRTCENRes.Res.Res.Res.Res.RTCC
SEL
[1:0]
LSESYSDISLSECSSDLSECSSONLS
D
V
[1:0]
LSEBYPLSEBYPLSEON
Reset value000000000000
0x94RCC_CSRLPWRRSTFWWDGRSTFIWDGRSTFSFTRSTFBORRSTFPINRSTFOBLRSTFFIREWALLRSTFRMVFRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MSIS
RANGE
[3:0]
Res.Res.LSIPREDIVRes.LSIRDYLSION
Reset value0000000000110000
0x98RCC_CRRCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.HSI48CAL[8:0]Res.Res.Res.Res.Res.HSI48RDYHSI48ON
Reset valuexxxxxxxxxx00
0x9CRCC_CCIPR2Res.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.I2C4
SEL
[1:0]
Reset value0
Refer to Section 2.2 on page 70 for the register boundary addresses.