这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » STM32F4的时钟系统的实现方法

共4条 1/1 1 跳转至

STM32F4的时钟系统的实现方法

工程师
2020-08-04 23:18:53     打赏

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

  

  三种不同的时钟源可被用来驱动系统时钟(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倍。

  




高工
2020-08-07 23:11:30     打赏
2楼

学到了


工程师
2020-08-09 23:28:49     打赏
3楼

实现起来还是非常不错的


工程师
2020-08-16 23:28:27     打赏
4楼

十分感谢你的分享


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]