STM32F4的时钟系统的实现方法

控制/MCU

1878人已加入

描述

  众所周知,时钟系统是CPU的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。STM32F4的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为什么STM32要有多个时钟源呢?因为首先STM32本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率,比如看门狗以及RTC只需要几十k的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的MCU一般都是采取多时钟源的方法来解决这些问题。

  STM32F4

  三种不同的时钟源可被用来驱动系统时钟(SYSCLK)

  HSI振荡器时钟

  HSE振荡器时钟

  PLL时钟

  这些设备有以下两种二级时钟源:

  32kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。

  32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。

  由时钟控制器的时钟树可以看出,STM32F4在应用中可以选择外部晶体或者内部RC振荡器来驱动内核和外设,像以太网,USB,I2S和SDIO需要专用时钟。AHB总线最高支持168MHz的时钟,通过AHB总线分频,APB2最高支持84MHz,APB1最高支持42MHz。

  所有的外设驱动全部来自SYSCLK除了下面几个:

  USBOTGFS的时钟(48MHz)、随机信号发生器时钟(《=48MHz)和SDIO时钟(《=48MHz)全部来自PLL48CLK。

  I2S时钟,为了达到高性能的要求,I2S时钟可以用内部时钟PLLI2S或者使用外部时钟,通过I2S_CLKIN引脚输入得到。

  USBOTGHS(60MHz)需要外部PHY芯片提供。

  以太网时钟(TX,RX和RMII)也需要外部PHY芯片提供时钟。

  RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。定时器时钟频率分配由硬件按以下2种情况自动设置:

  如果相应的APB预分频系数是1,定时器的时钟频率与所在APB总线频率一致。

  否则,定时器的时钟频率被设为与其相连的APB总线频率的2倍。

  STM32F4

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分