打印
[STM32F4]

STM32F4深入学习【RCC】

[复制链接]
楼主: o88ne
手机看帖
扫描二维码
随时随地手机跟帖
41
o88ne|  楼主 | 2023-8-27 01:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
下图为特殊外设时钟树

使用特权

评论回复
42
o88ne|  楼主 | 2023-8-27 01:28 | 只看该作者
系统定时器(SysTick)时钟
使用8分频的AHB时钟(HCLK)或直接使用AHB时钟(HCLK)

可在SysTick控制和状态寄存器中配置

使用特权

评论回复
43
o88ne|  楼主 | 2023-8-27 01:29 | 只看该作者
硬件定时器时钟
stm32f42xxx和43xxx的定时器时钟频率由硬件自动设置

根据RCC_CFGR寄存器中TIIMPRE位的取值分为两种情况

TIMPRE=0

APB预分频器分频系数为1,则设定定时器时钟TIMxCLK=PCLKx;否则,TIMxCLK=2*PCLKx

使用特权

评论回复
44
o88ne|  楼主 | 2023-8-27 01:29 | 只看该作者
TIMPRE=1

APB预分频器分频系数为1、2或4,则设定定时器时钟TIMxCLK=HCLK;否则,TIMxCLK=4*PCLKx

使用特权

评论回复
45
o88ne|  楼主 | 2023-8-27 01:29 | 只看该作者
内核自由运行时钟
由FCLK充当

使用特权

评论回复
46
o88ne|  楼主 | 2023-8-27 01:29 | 只看该作者
其他外设时钟
其他所有外设时钟均由系统时钟SYSCLK提供

使用特权

评论回复
47
o88ne|  楼主 | 2023-8-27 01:29 | 只看该作者

使用特权

评论回复
48
o88ne|  楼主 | 2023-8-27 01:29 | 只看该作者

使用特权

评论回复
49
o88ne|  楼主 | 2023-8-27 01:30 | 只看该作者
内部时钟信号
高速外部时钟HSE(High-speed Signal Extern)
时钟源:HSE外部晶振 或 HSE外部用户时钟

外部源(HSE旁路)模式
必须提供占空比约为50%的外部时钟信号来驱动OSC_IN引脚

信号可以是方波、正弦波或三角波之一

OSC_OUT引脚应保持高阻态

将RCC_CR->HSEBYP=1和RCC_CR->HSEON=1可使用此模式

使用特权

评论回复
50
o88ne|  楼主 | 2023-8-27 01:30 | 只看该作者
外部晶振(HSE晶振)模式
硬件要求:谐振器和负载电容必须尽可能靠近振荡器引脚来减少输出失真和起振稳定时间

RCC_CR->HSERDY标志位指示高速外部振荡器是否稳定,该标志位为1时才能使用该时钟

将RCC_CR->HSEON=1才能使用HSE晶振,即RCC_CR->HSEON=1和RCC_CR->HSERDY=1可使用此模式

特别地,可以在RCC时钟中断寄存器RCC_CIR中使能中断来开启此模式下的中断

使用特权

评论回复
51
o88ne|  楼主 | 2023-8-27 01:31 | 只看该作者
高速内部时钟信号HSI(High-speed Signal Inner)
时钟源:内部16MHz频率RC振荡器

可以直接用做系统时钟或用作PLL的输入

优点:成本低、起振速度较快 缺点:精度不如HSE

ST会对器件进行出厂较准,可达到T A = 25 + 273 K T_A=25+273KT
A

=25+273K下1%的精度;复位后,工厂校准值将加载到RCC_CR->HSICAL[7:0]位中,用户可通过RCC_CR->HSITRIM[4:0]位进行HSI频率微调以适应各种电压或温度

RCC_CR->HSIRDY标志位为1表示HSI RC稳定运行,只有此情况下,HSI才能使用

将RCC_CR->HSION=1可打开HSI RC

RCC_CR->HSION=1和RCC_CR->HSIRDY=1可使用此模式

特殊情况下,HSII信号可以作为备份时钟源使用,以防HSE晶振故障

使用特权

评论回复
52
o88ne|  楼主 | 2023-8-27 01:31 | 只看该作者
锁相环电路PLL(Phase Lock Loop)
stm32f4xx具有2个PLL

主PLL(PLL)

由HSE或HSI提供时钟信号,具有两个不同的输出时钟

高速系统时钟输出:最高可达168MHz
PLL48CLK输出:最高可达48MHz,用于提供USB OTG FS、RNG、SDIO时钟
通过RCC_PLLCFGR寄存器进行配置,有M、N、P、Q共4个分频系数位

使用特权

评论回复
53
o88ne|  楼主 | 2023-8-27 01:31 | 只看该作者
专用PLL(PLLI2S)

由HSE或HSI提供时钟信号

用于生成精确时钟来在I2S接口实现高品质音频性能

通过RCC_CFGR寄存器进行配置,有使能/禁止位N和分频系数位R

使用特权

评论回复
54
o88ne|  楼主 | 2023-8-27 01:32 | 只看该作者
注意:使能PLL后,PLL配置参数不可再更改,应先对PLL进行配置,然后再使能

进入停机或待机模式后,两个PLL将被硬件禁止;如将HSE或由HSE提供信号的PLL用作系统时钟时,HSE发生故障,则两个PLL也将由硬件禁止

使用特权

评论回复
55
o88ne|  楼主 | 2023-8-27 01:32 | 只看该作者
低速外部时钟信号LSE(Low-speed Signal Extern)
时钟源:LSE外部晶振 或 LSE外部用户时钟

外部源(LSE旁路)模式
必须提供占空比约为50%,最高频率不超过1MHz的外部时钟信号来驱动OSC32_IN引脚

信号可以是方波、正弦波或三角波之一

OSC32_OUT引脚应保持高阻态

将RCC_CR->LSEBYP=1和RCC_CR->LSEON=1可使用此模式

使用特权

评论回复
56
o88ne|  楼主 | 2023-8-27 01:32 | 只看该作者
外部晶振(LSE晶振)模式
硬件要求:使用32.768kHz晶体振荡器,精度较高、功耗较低,谐振器和负载电容必须尽可能靠近振荡器引脚来减少输出失真和起振稳定时间

RCC_BDCR->LSERDY标志位指示低速外部振荡器是否稳定,该标志位为1时才能使用该时钟

将RCC_CR->LSEON=1才能使用LSE晶振,即RCC_CR->LSEON=1和RCC_CR->LSERDY=1可使用此模式

特别地,可以在RCC时钟中断寄存器RCC_CIR中使能中断来开启此模式下的中断

使用特权

评论回复
57
o88ne|  楼主 | 2023-8-27 01:33 | 只看该作者
低速内部时钟信号LSI(Low-speed Signal Inner)
可用作低功耗时钟源再停机和待机模式下保持运行

可供独立看门狗IWDG和自动唤醒单元AWU使用

时钟频率在32kHz左右

RCC_CSR->LSIRDY标志位指示低速内部振荡器是否稳定,该标志位为1时才能使用该时钟

将RCC_CR->LSION=1才能使用LSE RC,即RCC_CR->LSION=1和RCC_CR->LSIRDY=1可使用此模式

可以在RCC时钟中断寄存器RCC_CIR中使能中断来开启此模式下的中断

使用特权

评论回复
58
o88ne|  楼主 | 2023-8-27 01:33 | 只看该作者
系统时钟(SYSCLK)
系统时钟:MCU内部的主时钟,为内核处理器提供运行时钟

系统复位后,默认系统时钟为HSI,且在直接使用HSI或通过PLL使用HSI时钟源来作为系统时钟时,该时钟源无法停止

只有目标时钟源已经就绪(时钟在启动延迟或PLL锁相后稳定时),才能从一个时钟源切换到另一个;如果选择了尚未就绪的时钟源,则切换在该时钟源就绪时才进行,就绪状态由RCC_CR寄存器中的状态标志位指示

使用特权

评论回复
59
o88ne|  楼主 | 2023-8-27 01:33 | 只看该作者
时钟安全系统(CSS)
时钟检测器可以通过软件打开,激活后将在HSE振荡器启动延迟后使能,在此振荡器停止时被关闭

使用特权

评论回复
60
o88ne|  楼主 | 2023-8-27 01:33 | 只看该作者
负责监控HSE时钟信号

HSE故障时,此振荡器将自动禁止,CSS会发送一个时钟故障时间到TIM1和TIM8的短路输入,并生成一个时钟安全系统中断CSSI来向软件通知该故障,CSSI直接和M4内核的NMI(不可屏蔽中断)异常向量链接

注意:如果HSE偶发故障,则CSS会生成一个中断,NMI将无限期执行,需要在NMI ISR中将CSS中断清零,即将RCC_CIR->CSSC=1才能避免这种情况

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则