 Hello and welcome to this presentation of the STM32 Reset and Clock Controller. The RCC controller integrated inside STM32 products manages system and peripheral clocks. STM32F7 devices embed two internal oscillators, two oscillators for an external crystal or resonator, and three phase locked loops or PLLs. Many peripherals have their own clock, independent of the system clock. The RCC also manages the various resets present in the device. The STM32F7 RCC provides high flexibility in the choice of clock sources, which allows the system designer to meet both power consumption and accuracy requirements. The independent peripheral clocks allow a designer to adjust the system power consumption without impacting the communication board rates. Finally, the RCC provides safe and flexible reset management. Safe and flexible reset management without any need for external components reduces application costs. The RCC manages three types of resets. The system reset, the power reset, and the backup domain reset. The peripherals have individual reset control bits. Here is the simplified block diagram of the system reset. All internal reset sources provide a reset signal on the NRST pin, which can be used to reset other components of the application board. In addition, no external reset circuitry is needed due to the internal glitch filter and the safe power monitoring feature, which guarantees the reset of the application when VDD is below the selected threshold. An internal pull-up on the NRST allows a high level to be maintained when no reset signal is driven low. The first type of reset is the system reset, which resets all the registers except certain registers for the reset and clock controller. It also does not reset the backup domain. The system reset sources are the external reset generated by a low level on the NRST pin, a window watchdog event, an independent watchdog event, a software event through the nested vectored interrupt controller, and a low power mode security reset, which is generated when stop or standby mode is entered, but is prohibited by the option byte configuration. The reset source flag can be found in the RCC control and status register. The second type of reset is the power reset. The brownout reset or BOR resets all registers except those in the backup domain powered by VBAT, which contains the RTC and the external low speed oscillator. When exiting standby mode, all registers powered by the regulator are reset. When exiting standby mode, a reset is generated. The third type of reset is the backup domain reset, which resets the RTC registers, the backup registers, and the RCC backup domain control register. This reset occurs when the BDRST bit is set in the RCC backup domain control register. It also occurs when VDD and VBAT are powered on if both supplies have previously been powered off. The RCC offers a large choice of clock sources, which can be selected depending on low power, accuracy, and performance requirements. STM32F7 devices embed two internal clock sources, a high speed internal 16 MHz RC oscillator, or HSI, and a low speed internal 32 kHz RC oscillator, or LSI. STM32F7 devices embed two oscillators for use with an external crystal or oscillator, a high speed external 4 to 26 MHz oscillator, or HSE, with a clock security system, and a low speed external 32.768 kHz oscillator, or LSE, also with a clock security system. STM32F7 devices embed three phase locked loops, each with three independent outputs for clocking different peripherals at different frequencies. The high speed internal oscillator is a 16 MHz RC oscillator, which provides 1% accuracy and fast wake-up times. The HSI is trimmed during production testing, and can also be user-trimmed. The HSI is selected as clock at wake-up from stop mode, and as the backup clock if an HSE failure is detected by the clock security system. If an HSE failure is detected, the clock security system allows the system to be put in a safe state by generating break events to critical applications such as motor control. The 32.768 kHz low speed external oscillator can be used with external quartz or resonator, or with an external clock source in bypass mode. The oscillator driving capability is programmable. Four modes are available, from ultra low power mode to high driving mode. The LSE can be used to clock the RTC, the low power timer, the HDMI-CEC interface, and the USARTs peripherals. STM32F7 devices embed three phase locked loops, each with three independent outputs. The input clock of the PLL can be selected between HSI and HSE. The main PLL can provide the system clock. The different PLL outputs can be used for the serial audio interfaces, USB, random number generator, SDMMC peripherals, and LTDC and DSI host interfaces when available. The system clock is selected between the HSI, HSE, and PLL output. The maximum system clock frequency is 216 MHz. The APB1 and APB2 bus frequencies are also up to 54 MHz and 108 MHz respectively. The maximum clock source frequency depends on the voltage scaling. The maximum system clock is reached with voltage scale 1 and when enabling overdrive. When overdrive is off, the maximum system clock frequency is 180 MHz. Several peripherals have their own clock, independent from the system clock. This is the case for the USARTs, I2C's, low power timer, HDMI-CEC interface, independent watchdog, USB OTG-HS internal PHY clock, and Ethernet MAC clocks when available in the device package. All of these clocks can be selected from the internal external oscillators, dedicated external clock pin, or bus interface clocks. Serial audio interfaces, USB OTG-FS, random number generator, and SDMMC interfaces have independent clock sources that are generated from the different PLL outputs. In addition to PLL outputs, the serial audio interfaces clock can be generated from external clock mapped on the I2S CKIN pin, or from the HSI HSE clocks if this feature is available. Several peripherals available only on some F7 device part numbers, such as the DFS DM1 interface, the SDMMC2 interface, and the DSI host interface have dedicated input clock sources. The clocks are derived from PLL outputs or from system clocks. In addition to PLL outputs, the DSI host interface clock can be generated from its own PLL. The various clocks can be output on an IO. The microcontroller clock output feature allows you to output on a pin of one of these six clocks. HSI, HSE, LSE, SYS CLK, PLL CLK, and PLL I2S. The dynamic power consumption can be optimized by using peripheral clock gating. Each peripheral clock can be gated on or off in run and sleep mode, except SRAM and FLASH, which are always clocked in run and sleep modes. By default, the peripherals clock is disabled, except the DTC MRAM clock and RTC interface clock, which are enabled by default. When a peripherals clock is disabled, the peripherals registers cannot be read or written. Dedicated registers allow for configuring the peripherals clock during the sleep mode. These control bits have no effect if the corresponding peripheral clock is disabled. This slide lists the RCC interrupts. The PLLs ready and all oscillator's ready signals can generate and interrupt. In addition to this training, you may find the power control and interrupt controller training is useful. For more details, please refer to application note AN2867, an oscillator design guide for STM8S, STM8A, and STM32 microcontrollers.