
前言:
随着汽车行业进入智能化和新能源时代,过去由瑞萨、英飞凌、恩智浦、ST等芯片巨头所垄断的汽车级芯片市场竞争格局被打破,国产MCU中科芯、先楫、中微爱芯,GD、复旦微电子、航顺、中微、芯海科技等相继加入。从市场的汽车智能化的速度来判断市场对于汽车芯片将会出现爆发式增长的态势,对汽车级芯片的需求将会出现井喷式增长。众所周知的原因,高端芯片和汽车级芯片,国外品牌自供不暇,这也给了国产品牌MCU突围的机会。我最近在选型,调研了五十八所旗下的央企中科芯MCU,他们的产品CKS32103和407系列顺利通过AEC-Q100汽车级认证,据实验结果获得了TÜV莱茵的可靠性认证。申明一点,我这里没有任何打广告的成分,纯粹介绍这款IC,让大家多一个选择而已。我之前用过他们的103RBT7,也是车规级的,感觉不错,软硬件都兼容ST的,这次也不是介绍这个型号。这次开发一个带4G通信功能的20KW直流充电桩,103的资源不够用,我着重调研了407的资源,CKS32F407VE和ZE系列的资源是可以的,而且软件直接下载,能够运行就可以,硬件是PTP,更多应用场景和技术参数这里就不多说了,大家可以自己去官网查看。我这里主要分享下CKS32F4xx系列的产品时钟配置、GPIO口配置、中断优先级管理。

国产替代STM32F芯片CKS32F407(417、405、415)系列产品配备了1MB eFlash和192KB SRAM,采用2.0-3.3V电压供电,工作频率144MHz,工作温度范围-40~+105℃,工作寿命15年以上。凭借优异特性,CKS32F407系列产品可以广泛用于多种车用场景,如车窗、雨刷、空调、智能车锁、电动座椅、电动后备箱、氛围灯、动态尾灯等车身控制系统、车用照明系统和电机电源系统,以及仪表盘、车载影音、娱乐音响、中控导航、车载无线充等智能座舱系统。
产品时钟配置
作为MCU运行的基础,时钟是单片机各个模块工作时序的最小时间单位,推动单片机的各指令执行,是MCU选型的一个重要指标。CKS32F4xx系列产品具有众多的外设,但并非所有的外设均需要系统时钟的高频率,并且高时钟频率将导致功耗增加、抗电磁干扰能力变弱,因此,CKS32F4xx系列产品内部具备多个时钟源。本文将对CKS32F4xx系列产品时钟组成进行分析,并讲解该系统单片机的时钟的配置方法,以能够让用户更加简单的对系统时钟进行配置。
CKS32F407VE VG ZE ZG T6/T7系列产品时钟树
在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高品质音频性能。
CKS32F407VE VG ZE ZG T6/T7系列系统时钟配置
在CKS32F4xx系列固件库system_cks32f4xx.c文件中定义了函数SystemInit(void),并在其中调用了SetSysClock()函数来配置系统关键时钟寄存器,其处理流程如下:
先使能外部时钟HSE,等待HSE稳定之后,配置AHB、APB1、APB2时钟相关的分频因子;等待这些都配置完成之后,打开主PLL时钟并设置主PLL作为系统SYSCLK时钟源。如果HSE不能达到就绪状态则依然以HSI作为系统时钟源头。
在设置主PLL时钟时,需要设置一系列的分频系数和倍频参数,代码如下: