HC32F460时钟系统简介

HC32F460时钟系统简介

                                                                                                           Stark-2021-05

概述

目前只是调试了 GPIO 和 UART,感觉很有必要把时钟这部分补充说明一下,之前的文章中提到 GPIO 口没有时钟的门控时钟,之前大学玩 ST 单片机时候,那个 GPIO 的端口初始化是需要使能 GPIO_PORT 的时钟,然后才是相应外设功能时钟的初始化。

在 HC32 中的 GPIO_PORT 没有相应的门控时钟,有的是寄存器的写保护。外设功能部分是有的,在 PWR 寄存器的功能时钟控制 PWR_FCG0、PWR_FCG1、PWR_FCG2、PWR_FCG3,详细部分请查看用户手册,这里不一一叙述。

时钟源

系统时钟源(6个)

HC32 的系统时钟源有 6 个,分别是下列六个(关于时钟的详细介绍在数据手册和用户手册中有讲解)。外部高速时钟源的选择范围是 4-24 MHz,低速的老样子是 32.768KHz。其中 MPLL 的输入时钟外部高速时钟 / 内部高速时钟。PLL (倍频器)由下面章节中时钟系统框图所示,可以了解到UPLL 和MPLL的时钟输入源为内部高速时钟和外部高速时钟,由PLL_PLLCFGR 寄存器中的PLLSRC 位控制MPLL UPLL 的输入时钟选择。

1) 外部高速振荡器(XTAL

2) 外部低速振荡器(XTAL32

3) MPLL 时钟(MPLL

4) 内部高速振荡器(HRC

5) 内部中速振荡器(MRC

6) 内部低速振荡器(LRC

其他时钟源(2个)

SWDT 专用内部低速振荡器,频率为 10KHz,看门狗专用时钟。

UPLL 时钟。

特殊外设时钟                                                            

SWDT 专用内部低速振荡器,频率为 10KHz,看门狗专用时钟。

USBFS 时钟 (CMU_UFSCKCFGR)

AD/TRNG 时钟 (CMU_PERICKSEL)

调试时钟 (CMU_TPIUCKCFGR)

I2S 时钟 (CMU_I2SCKSEL , 该寄存器的讲解在 I2S 篇章内)

基本外设时钟

基本外设的时钟有 HCLK、EXCLK、PCLK0、 PCLK1、 PCLK2、 PCLK3 、PCLK4。所有的基本外设都是以上述的时钟为输入时钟(或者说外设的时钟源)。

根据时钟系统框图,稍加描述,就能对这个完整的时钟系统在自己的印象里有个工作的和配置的流程。

时钟系统框图

在时钟系统框图中红框标注的地方是不需要自己配置分频系数的,我理解的是已经内部确定有这么几个分频,只用在选择器中选择对应工作时钟所需的时钟频率即可。

工作时钟

总结

在时钟系统框图一章,在图片上标注了一个分屏器,这个分频器我个人理解的是内部硬件已经将其分频为需要的几种,然后通过时钟分频配置寄存器(CMU_SCFGR),选择相应的分频频率,上述也有提到。如果需要高频率的系统时钟必须选择经PLL 倍频的 MPLL时钟的 P 时钟做为系统时钟源。

时钟大概是这样的深入了解的话,需要详细的再阅读数据手册和用户手册,由个人能力有限,难免出现错误,还请多多指教,欢迎大家一起交流。

最后说一句华大的片子个人觉得很好的,不是彩虹屁,之前用过中微的、 GD 的、 NXP的、ST的。ST 的易用性大家都知道了,华大的这个 DLL 库感觉和 ST 的 HAL 不相上下了,比 NXP 的库好(个人见解,嘿嘿)。等  MCU 价格降下来看能不能搞几片华大芯片玩玩。

猜你喜欢

转载自blog.csdn.net/qq_39567970/article/details/118854998
今日推荐