STM32F4时钟(一)
花了近一个小时的时间,终于把32的时钟树图过了一遍,话不多说,先总结,再详细展开。时钟系统是什么,就像是人的脉搏一样,主要理解以下的几个概念。
RC震荡源:即RC电路,全称Resistance-Capacitance Circuits。一个 相移电路(RC电路)或称 RC滤波器、 RC网络, 是一个包含利用电压源、电流源驱使电阻器、电容器运作的电路。有RC串联电路,RC并联电路和RC串并联电路组成,可作为不精准时钟使用。(例如:看门狗时钟)
时钟使能:简而言之,就是让时钟开始进行工作,即为使能。图中为半圆形
选择器:用于选择时钟来源,如选择LSE,HSE,LSI图中描述为梯形结构。
RTC:实时时钟(Real-Time Clock)是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,RTC经过8254电路的变频产生一个频率较低一点的OS(系统)时钟TSC,系统时钟每一个cpu周期加一,每次系统时钟在系统初起时通过RTC初始化。8254本身工作也需要有自己的驱动时钟(PIT)
分频器:进行除法运算
倍频器:进行乘法运算
PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,有相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路就可以实现稳定且高频的时脉冲讯号。
时钟源:HSI、HSE、LSI、LSE、PLL共5个。
①、HSI(high speed inner)是高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统时钟或者用作PLL时钟输入。
②、HSE(high speed outer)是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。 我所用的开版是10MHZ的晶振,经过倍频可以达到168MHZ。
③、LSI(low speed inner)是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。主要供独立看门狗和自动唤醒单元使用。看门狗对时钟精度要求不高!
④、LSE(low speed )是低速外部时钟,接频率为32.768kHz的石英晶体。RTC ,这个是比较精准的时钟。
⑤、PLL为锁相环倍频输出。STM32F4有两个PLL:
主PLL(PLL)由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟。
第一个输出PLLP用于生成高速的系统时钟(最高168MHz) 上边哪一个是主的
第二个输出PLLQ用于生成USB OTG FS的时钟(48MHz),随机数发生器的时钟和SDIO时钟。 下面哪一个是次的
专用PLL(PLLI2S)用于生成精确时钟,从而在I2S(I方S)接口实现高品质音频性能。
系统时钟SYSCLK:
①、HSI振荡器时钟
②、HSE振荡器时钟
③、PLL时钟
重点 PLL时钟计算:
输入 f=HSE
PLL=(f*N)/(P*M);
例如:PLL=8MHz*N/(M*P)=8MHz*336/(8*2)=168MHz
系统时钟
以太网时钟
AHB (APB,HCLK。Cortex时钟)
最后上张图
任何外设使用前必须使能相关时钟!!!
任何外设使用前必须使能相关时钟!!!
任何外设使用前必须使能相关时钟!!!