专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

复位和时钟控制(RCC) 基于STM32F107VCT6

作者:佚名   来源:本站原创   点击数:  更新时间:2014年08月18日   【字体:

复位

有三种复位:系统复位、电源复位和后备域复位
时钟 
三种不同的时钟源可被用来驱动系统时钟(SYSCLK)
  ● HSI振荡器时钟 
  ● HSE振荡器时钟 
  ● PLL 时钟 
这些设备有以下2种二级时钟源: 
  ● 40kHz 低速内部RC(LSI RC)振荡器,可以用于驱动独立看门狗,或通过程序选择驱动RTC,用于从停机/ 待机      模式下自动唤醒系统。 
  ● 也可以通过程序选择32.768kHz 低速外部晶体(LSE晶体)用来驱动RTC(RTCCLK)。 
  当不被使用时,任一个时钟源都可被独立地启动或关闭,由此优化系统功耗。
 
从下图看出有: 
         LSI(40KHz的内部低速时钟)
         LSE(32.768KHz的外部时钟)
         HSE (3-25M的外部输入高速时钟)
         HSI (8M的内部高速时钟)
 
系统时钟SYSCLK经过AHB分频后可以直接给AHB、DMA等用,或者再经过APB1或APB2的分频再给外设使用。
  除去以下情况,所有外设的时钟都是从系统时钟(SYSCLK) 得到:
  ● Flash存储器编程接口时钟始终是HSI时钟
  ● 全速USB OTG的48MHz时钟是从PCC VCO时钟(2xPLLCLK) ,和随后可编程预分频器(除3或除2) 得到,这是通      过RCC_CFGR寄存器的OTGFSPRE位控制。为了正常地操作USB全速OTG,应该配置PLL 输出72MHz或48MHz。
  ● 全速USB OTG的48MHz时钟是从PCC VCO时钟(2xPLLCLK) ,和随后可编程预分频器(除3或除2) 得到,这是通      过RCC_CFGR寄存器的OTGFSPRE位控制。为了正常地操作USB全速OTG,应该配置PLL 输出72MHz或48MHz。 
  ● I2S2和I2S3的时钟还可以从PLL3 VCO 时钟(2xPLL3CLK)得到,这是通过RCC_CFGR2寄存器的I2SxSRC位制。      更多有关PLL3的内容和如何配置I2S 时钟,以得到高质量的音频效果,请参阅第23.4.381/754  节:时钟发      生器。
  ●  以太网MAC的时钟(TX 、RX和RMII)是由外部PHY提供。更多有关以太网配置的详情,请见
      第27.4.4 MII/RMII的选择 节: 。 
  当使用以太网模块时,AHB时钟频率必须至少为25MHz。
  RCC通过AHB时钟(HCLK)8 分频后作为Cortex 系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。ADC时钟由高速APB2时钟经2、4 、6或8分频后获得。 定时器时钟频率分配由硬件按以下2种情况自动设置: 
    1.  如果相应的APB预分频系数是1,定时器的时钟频率与所在APB 总线频率一致。 
    2.  否则,定时器的时钟频率被设为与其相连的APB 总线频率的2倍。 
    FCLK是Cortex??-M3的自由运行时钟。
HSE时钟
高速外部时钟信号(HSE) 由以下两种时钟源产生: 
● HSE外部晶体/ 陶瓷谐振器 
● HSE用户外部时钟 
为了减少时钟输出的失真和缩短启动稳定时间,晶体/ 陶瓷谐振器和负载电容器必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的振荡器来调整。
HSI时钟
HSI时钟信号由内部8MHz 的RC振荡器产生,可直接作为系统时钟或在2分频后作为PLL 输入。 HSI RC振荡器能够在不需要任何外部器件的条件下提供系统时钟。它的启动时间比HSE晶体振荡器短。然而,即使在校准之后它的时钟频率精度仍较差。
PLL
主PLL 以下述时钟源之一为输入,产生倍频的输出: 
● HSI时钟除以2 
● HSE或通过一个可配置分频器的PLL2时钟
LSE 时钟
LSE 晶体是一个32.768kHz 的低速外部晶体或陶瓷谐振器。它为实时时钟或者其他定时功能提供
一个低功耗且精确的时钟源。
LSI时钟
系统时钟(SYSCLK) 选择
/////////////////////////////////////
寄存器介绍  0x4002 1000 - 0x4002 13FF   复位和时钟控制(RCC) 
时钟控制寄存器(RCC_CR) -->内外部各种时钟的使能,各个PLL的使能等
时钟配置寄存器(RCC_CFGR)-->配置各个时钟的分频系数以及PLL的分配系数以及时钟源的选择等
时钟配置寄存器(RCC_CFGR2)-->配置各个时钟的分频系数以及PLL的分配系数以及时钟源的选择等

 
关闭窗口