原创 STM32学习之----时钟

2011-5-10 16:20 2574 8 11 分类: MCU/ 嵌入式

     在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。   


①、HSI是高速内部时钟,RC振荡器,频率为8MHz。


②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。


③、LSI是低速内部时钟,RC振荡器,频率为40kHz。


④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。


⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者是HSE的128分频。RTC的时钟源通过RTCSEL[1:0]来选择。


 


       STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取,可以选择为1.5分频或者1分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz或72MHz。另外,STM32还可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。


 


       系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频。其中AHB分频器输出的时钟送给5大模块使用:


 


①、送给AHB总线、内核、内存和DMA使用的HCLK时钟。


②、通过8分频后送给Cortex的系统定时器时钟。


③、直接送给Cortex的空闲运行时钟FCLK。


④、送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用。


⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC 分频器可选择为2、4、6、8分频。


 


      在以上的时钟输出中,有很多是带使能控制的,例如AHB总线时钟、内核时钟、各种APB1外设、APB2外设等等。当需要使用某模块时,记得一定要先使能对应的时钟。需要注意的是定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则它的倍频值就为2。


 


      连接在APB1(低速外设)上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4。注意USB模块虽然需要一个单独的48MHz时钟信号,但它应该不是供USB模块工作的时钟,而只是提供给串行接口引擎(SIE)使用的时钟。USB模块工作的时钟应该是由APB1提供的。


 


      连接在APB2(高速外设)上的设备有:UART1、SPI1、Timer1、ADC1、ADC2、所有普通IO口(PA~PE)、第二功能IO口。本文也特此感谢“bin8的笔记”的分享。


44ada4a5-fc46-4168-8b85-5a363af2c577.gif


 


2d26930f-d221-4c07-9670-b2070bf31833.gif


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户323245 2011-5-13 15:01

haowenzhang

用户323245 2011-5-13 14:51

dingyige

用户323245 2011-5-13 14:23

asdf
相关推荐阅读
用户517979 2013-11-03 10:22
评论:@电脑圈圈的家当 博客中提到的“[原创]FFT结果的物理意义”
不错,慢慢体会...
用户517979 2011-07-15 10:18
C语言中强制类型转换
    字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128~127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围是0~255(有些机器把...
用户517979 2011-07-11 15:39
485通讯调试总结
调试485时的经验总结:    1.发现不能通讯,先去除光耦,用单电源直接控制,能通讯,最终发现布板时用的protel标准库的光耦元件,3,4脚,和实际tlp521-1相反,导致不能通讯。    2....
用户517979 2011-07-11 15:29
PCB敷铜需注意的地方
   所谓敷铜,就是将PCB上闲置的空间作为基准面,然后用固体铜填充,这些铜区又称为灌铜。敷铜的意义在于,减小地线阻抗,提高抗干扰能力;降低压降,提高电源效率;与地线相连,还可以减小环路面积。  ...
用户517979 2011-05-05 14:48
STM32 GPIO的配置
STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出) ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU   ③ 带下拉输入_IPD            ④ ...
EE直播间
更多
我要评论
3
8
关闭 站长推荐上一条 /3 下一条