中科芯CKS32F4xx系列产品时钟配置

发布时间:2022-12-14 10:35
作者:Ameya360
来源:网络
阅读量:3232

  作为MCU运行的基础,时钟是单片机各个模块工作时序的最小时间单位,推动单片机的各指令执行,是MCU选型的一个重要指标。CKS32F4xx系列产品具有众多的外设,但并非所有的外设均需要系统时钟的高频率,并且高时钟频率将导致功耗增加、抗电磁干扰能力变弱,因此,CKS32F4xx系列产品内部具备多个时钟源。本文将对CKS32F4xx系列产品时钟组成进行分析,并讲解该系统单片机的时钟的配置方法,以能够让用户更加简单的对系统时钟进行配置。

20221214104851_364.png


  CKS32F4xx系列产品时钟树

  在CKS32F4xx系列产品中,有HSI、HSE、LSI、LSE、PLL五个重要的时钟源,其中PLL分为主PLL和专用PLL两部分。从时钟频率来分可以分为高速时钟源(HIS、HIS、PLL)和低速时钟源(LSI、LSE);从来源可分为外部时钟源(HSE、LSE)和内部时钟源(HIS、LSI、PLL)。

  ①:LSI是低速内部RC振荡器,频率为32kHz。供独立看门狗和RTC单元使用。

  ②:LSE是低速外部时钟,接频率为32.768kHz晶振。主要供RTC单元使用。

  ③:HSE是高速外部时钟晶振输入,频率范围为4MHz~26MHz。。

  ④:HSI是高速内部RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。

  ⑤:PLL为锁相环倍频输出,有两个PLL:

  1)主 PLL(PLL)由 HSE 或者 HSI 提供时钟信号,并具有两个不同的输出时钟。

  其一PLLP用于生成高速的系统时钟(最高 168MHz)

  其二PLLQ用于生成 USB_OTG_FS(48MHz)、随机数发生器SDIO时钟。

  2)专用 PLL(PLLI2S)用于生成精确时钟,用于实现I2S高品质音频性能。

  CKS32F4xx系列系统时钟配置

  在CKS32F4xx系列固件库system_cks32f4xx.c文件中定义了函数SystemInit(void),并在其中调用了SetSysClock()函数来配置系统关键时钟寄存器,其处理流程如下:

  先使能外部时钟HSE,等待HSE稳定之后,配置AHB、APB1、APB2时钟相关的分频因子;等待这些都配置完成之后,打开主PLL时钟并设置主PLL作为系统SYSCLK时钟源。如果HSE不能达到就绪状态则依然以HSI作为系统时钟源头。

  在设置主PLL时钟时,需要设置一系列的分频系数和倍频参数,代码如下:

  RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |

  (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);

  PLL_M、PLL_N、PLL_P宏定义均在在System_cks32f4xx.c文件中定义,当采用8MHz外部晶振时,主PLL时钟计算方法如下:

  PLL = 8MHz * PLL_N / (PLL_M * PLL_P) = 8MHz * 336 /(8 * 2) = 168MHz

  用户可根据实际需求,根据SetSysClock函数内的注释进行实际修改,可用的时钟源配置宏定义位于cks32f4xx.h中,如RCC_CR_HSION、RCC_CR_HSEON等。

 

(备注:文章来源于网络,信息仅供参考,不代表本网站观点,如有侵权请联系删除!)

在线留言询价

相关阅读
热门分类
  • 一周热料
  • 紧缺物料秒杀
型号 品牌 询价
型号 品牌 抢购
热门标签
原厂授权品牌
资讯排行榜
  • 周排行榜
  • 月排行榜
相关百科
关于我们
AMEYA360微信服务号 AMEYA360微信服务号
AMEYA360商城(www.ameya360.com)上线于2011年,现 有超过3500家优质供应商,收录600万种产品型号数据,100 多万种元器件库存可供选购,产品覆盖MCU+存储器+电源芯 片+IGBT+MOS管+运放+射频蓝牙+传感器+电阻电容电感+ 连接器等多个领域,平台主营业务涵盖电子元器件现货销售、 BOM配单及提供产品配套资料等,为广大客户提供一站式购 销服务。