一、芯片时钟是如何产生的?
图为以STM32G4系列的 Clock Tree
1.时钟源
三种不同的时钟源可用于驱动系统时钟(SYSCLK):
-
HSI16(high speed internal)16 MHz RC振荡器时钟
-
HSE( high speed external)振荡器时钟 从4到48 MHz
-
PLL 时钟
2.总线时钟(AHB、APB)
使用预分频器对SYSCLK,可用于配置AHB、APB1和APB2的时钟频率。
3.外设时钟
可有由SYSCLK、HCLK、PCLK等产生
PS.以下外设额外的时钟源
32 kHz低速内部RC (LSI RC)驱动的IWDG和RTC
32.768 kHz低速外部晶体(LSE晶体)驱动RTCCLK
RC 48 MHz内部时钟源(HSI48)地驱动USB和RNG
二、计算外设时钟(以WWDG为例)
WWDG 有一个来自 RCC配置(Reset and clock control) 的 PCLK 输入时钟,经过一个 4096 的分频器(4096 分频规格书规定的),再经过一个分频系数可选(1、2、4、8寄存器可以配置 WWDG_CFR 的2^ WDGTB)的可编程预分频器。
1.公式:Fwwdg=(Fpclk/4096)/2^WDGTB
Fwwdg:wwdg工作时钟频率
Fpclk:apb时钟频率(可在RCC中配置寄存器,产生HCLK和PCLK)
4096:是WWDG固定的预分频系数
2^WDGTB:是WWDG_CFR寄存器设置的预分频系数值
验算:610.352*2^2*4096 = 10 000 007.168Hz
2.周期和频率单位换算:(T=1/F)
2.1 频率
1GHz=10^3MHz=10^6KHz=10^9Hz 10^3的数量级
2.2 周期
1s=10^3 ms=10^6 us=10^9 ns
注意
T(s)=1/(10^9Hz)=10^-9 s =1ns
时钟周期与时钟频率互为倒数, 我们可以找出以下关系:
时钟频率 | 时钟周期 |
1Hz | 1s |
1KHz | 1ms |
1MHz | 1μs |
1GHz | 1ns |
如:100KHz, 那么就是1/100 = 0.01ms, 即10μs.
如:10ns, 那么就是1/10 = 0.1GHz, 即100MHz.