一图概述:
左侧输入时钟源
Input Frequency (LSE/LSI/HSI/HSE)
- LSE (Low-Speed External):外部32.768 kHz晶体振荡器,通常用于RTC(实时时钟)。
- LSI (Low-Speed Internal):内部低速时钟,频率为40 kHz,通常用于看门狗计时器等低功耗模块。
- HSI (High-Speed Internal):内部高速时钟,频率为8 MHz,系统默认使用。
- HSE (High-Speed External):外部高速晶体振荡器,频率范围为4-16 MHz,外部来源的主时钟。
RTC(Real-Time Clock)时钟
- RTC Clock Mux:选择用于RTC模块的时钟源,包括LSE、LSI和HSE的1/128分频输出。
- LSE, LSI, HSE_RTC:分别为32.768 kHz的LSE时钟,40 kHz的LSI时钟,以及HSE时钟的分频输出。
系统时钟路径
- PLL Source Mux:选择PLL的输入源,HSE或者HSI都可以作为输入源。图中选择了HSE作为PLL输入源。
- HSI 8 MHz 或 HSE,默认选择 HSE 时钟。
PLL(Phase Locked Loop)
- PLL源时钟分频器:HSE被1分频(即不改变频率)后输入PLL。
- PLL倍频器:设置为8倍,即HSE的8 MHz被倍频到64 MHz,作为PLLCLK输出。
系统时钟选择
System Clock Mux:选择系统主时钟(SYSCLK)的源。可以选择HSI、HSE或PLL。图中选用了PLL时钟。
时钟分频器
- AHB Prescaler:AHB总线分频器,图中设置为1倍,不对时钟进行分频,输出的HCLK与SYSCLK相同,都是8 MHz。
- HCLK:核心时钟(HCLK),用于CPU和内存总线。最大值为72 MHz,当前设置为8 MHz。
- APB1 Prescaler:APB1外设总线分频器,设置为2倍。因为APB1最大允许时钟为36 MHz,分频后得到APB1总线时钟为4 MHz。
- APB2 Prescaler:APB2外设总线分频器,设置为1倍,输出与HCLK一致,8 MHz。
外设时钟
- PCLK1:APB1外设时钟,分频后为4 MHz。
- PCLK2:APB2外设时钟,与HCLK相同,为8 MHz。
USB Prescaler:USB时钟分频器,配置为1倍,输出64 MHz(PLL输出)用于USB时钟。
关键模块的时钟频率
- I2S2, I2S3:音频接口I2S时钟,8 MHz。
- SDIO:SD卡接口时钟,8 MHz。
- FCLK:闪存接口时钟,8 MHz。
- Cortex系统定时器:用于Cortex-M核心系统的时钟,8 MHz。
- ADC Prescaler:ADC时钟分频器,当前设置为2倍,ADC时钟为4 MHz。
外设在总线上的分布
- 在STM32的总线上,外设分布在不同的总线(AHB、APB1、APB2)上,下面是主要外设的分类:
AHB(Advanced High-Performance Bus)总线上的外设:
-
AHB总线通常用于高速外设和DMA控制器,负责连接核心系统、存储器以及外设。
-
主要的外设包括
- DMA(Direct Memory Access)控制器:用于内存与外设之间的直接数据传输。
- FSMC(Flexible Static Memory Controller):用于连接外部存储器,如SRAM、NOR Flash等。
- SDIO(Secure Digital Input Output):用于连接SD卡的接口。
- 以太网MAC(Ethernet MAC):如果支持,以太网控制器通常也连接到AHB总线。
- USB OTG(On-The-Go):用于USB连接的外设。
- 闪存接口(Flash Interface):负责与内部闪存进行通信。
APB1(Advanced Peripheral Bus 1)总线上的外设:
- APB1总线连接低速外设,最大工作频率通常是36 MHz。
- 主要的外设包括:
- TIM2 - TIM7:通用定时器2到7,低速定时器,用于计时、脉冲宽度调制(PWM)等。
- USART2、USART3、UART4、UART5:串行通信外设,用于串口通信。
- I2C1、I2C2:I2C接口,用于与I2C兼容设备进行通信。
- SPI2、SPI3:SPI接口,用于高速串行数据通信。
- CAN:控制器局域网(CAN)通信接口。
- DAC(Digital-to-Analog Converter):数字-模拟转换器,用于模拟信号输出。
- PWR:电源管理外设。
- WWDG(Window Watchdog):窗口看门狗定时器,用于系统复位。
- IWDG(Independent Watchdog):独立看门狗,用于系统保护。
APB2(Advanced Peripheral Bus 2)总线上的外设:
- APB2总线连接高速外设,最大工作频率可以达到72 MHz。
主要的外设包括:
- TIM1、TIM8:高级定时器1和8,通常用于电机控制、PWM输出等。
- USART1:高速串口,用于高速通信。
- SPI1:高速SPI接口。
- ADC1、ADC2、ADC3:模数转换器(ADC),用于模拟信号采样和转换。
- EXTI(External Interrupt Controller):外部中断控制器,用于处理外部引脚中断。
- GPIOA - GPIOG:通用输入输出口,用于与外部设备进行交互。
- SYSCFG:系统配置控制器,用于配置系统参数,如复位和时钟。
其它外设:
RTC(Real-Time Clock):实时时钟,用于时间管理,通常连接在低速时钟(LSI或LSE)上。
CRC:循环冗余校验(CRC)计算单元,用于数据完整性校验。
注意事项
- Timer Clock(定时器时钟)
定时器时钟是专门为定时器(Timer)模块提供的时钟信号,特别是那些用于计时、PWM生成、捕获和比较等操作的硬件定时器。 - Peripheral Clock(外设时钟)
外设时钟是为其他外设模块(非定时器)提供的时钟信号。与定时器时钟不同,外设时钟直接来自APB1或APB2的时钟分频器,不会经过额外的倍频。 - 定时器时钟主要负责与定时器相关的任务(如PWM、捕获比较),而外设时钟负责一般外设的运行。