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

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

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

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


  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等。

 

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

在线留言询价

相关阅读
基于中科芯CKS32L053R8的辐射检测仪方案
中科芯与IAR共建生态合作,IAR集成开发环境全面支持CKS32系列MCU
  近日,中科芯集成电路有限公司与嵌入式开发软件和服务的全球领导者IAR共同宣布达成战略合作,IAR近日发布的集成开发环境IAR Embedded Workbench 9.40.2版,已全面支持中科芯CKS32F407、CKS32F405、CKS32F107、CKS32F103、CKS32F030等系列MCU,提供完整的工具链,方便国内客户基于CKS32进行产品开发。  IAR Embedded Workbench集成开发环境一直是全球众多开发者首选的嵌入式软件开发解决方案之一。这一强大的工具套件已全面支持中科芯CKS32系列MCU,为开发者提供了无与伦比的支持。通过该解决方案,开发者可以充分利用代码优化功能,同时还享有一系列强大的调试功能,包括代码和数据断点、运行时堆栈分析、调用堆栈可视化等。此外,IAR Embedded Workbench还整合了静态代码分析工具C-STAT以及动态代码分析工具C-RUN,可帮助开发者及早发现潜在问题,从而提高代码质量。不仅如此,IAR还提供经过T?V S?D认证的功能安全版本,满足ISO 26262等功能安全认证标准,为开发功能安全产品的开发者提供了强有力的支持。  中科芯MCU事业部总经理胡凯先生表示:“我们非常高兴与IAR建立合作伙伴关系。这一合作将有助于中科芯MCU更好地满足国内客户的需求,同时为符合ISO26262功能安全要求的车规级MCU芯片客户提供更高效、便捷和安全的MCU代码调试和优化支持。中科芯MCU将继续与行业生态伙伴紧密合作,构建完整的生态环境,为客户提供从芯片硬件到软件算法、从参考方案到系统设计的全方位支持。”  IAR亚太区副总裁Kiyo Uemura表示:“我们对与中科芯的合作感到非常高兴。这次合作为中国开发者提供了高质量的开发工具,以及原厂技术支持。我们将中国视为全球最重要的市场,深知这里充满潜力和机遇。我们将继续与中国本地厂商紧密合作,共同构建嵌入式领域的繁荣生态系统,为本地客户提供世界一流的技术支持和解决方案,以推动中国嵌入式产业的蓬勃发展。”  中科芯和IAR共同期待为嵌入式开发者和最终用户提供更丰富的资源和支持,为中国嵌入式领域带来更多创新和突破。
2023-10-20 09:34 阅读量:1678
中科芯:CKS32F4xx系列产品窗口看门狗
  中科芯CKS32F4xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),本文主要介绍WWDG的应用,关于IWDG的详情,请参看我们的IWDG微课堂内容。  WWDG简介  通过前面的课程,我们知道IWDG独立看门狗的工作原理就是一个递减计数器在LSI时钟的驱动下不断的往下递减计数,当减到0之前如果没有刷新递减计数器的值(俗称喂狗),便会触发系统复位。  WWDG窗口看门狗也是一个递减计数器不断的往下递减计数。但和IWDG独立看门狗有四处不同:(1)IWDG由独立RC振荡器产生的LSI驱动,不受主时钟影响,但精度不高;WWDG由APB1分频时钟驱动,受主时钟影响,精度高;  (2)IWDG直接由VDD电压域供电,即使在MCU停止模式和待机模式下仍然能照常工作;  (3)IWDG计数器减到下限0时触发复位,WWDG计数器减到下限0x40时触发复位,下限值不同;(4)IWDG计数器只有复位下限值0,WWDG计数器不仅有复位下限0x40,还有一个复位上限X(用户设定),上限值与下限值之间形成一个复位窗口。WWDG计数器的值在减到上限X之前(窗口外)喂狗,同样也会产生复位。因此WWDG必须在窗口上限和窗口下限之间才可以喂狗,这是窗口看门狗的特殊之处。  WWDG详细介绍  1.WWDG功能框图解析  下图是窗口看门狗的功能框图,分4个部分进行说明:  ① WWDG时钟:窗口看门狗的时钟来自APB1时钟线分频出的PCLK1,最大42MHz,由RCC时钟控制器控制开启;  ② 计数器时钟和WWDG_CFR寄存器:CK计时器时钟 = PCLK1 / 4096,计数器时钟由CK计时器时钟经过预分频器分频得到,分频系数由配置寄存器WWDG_CFR的WWDGTB[1:0]控制,可以是0~3,因此计数器的时钟CNT_CK = PCLK1 / 4096 / (2^WWDGTB),进而可算出一个计数周期时间是T = 1 / CNT_CK;  ③ 计数器和WWDG_CR寄存器:WWDG的计数器是一个7位递减计数器,其值存放在控制器寄存器WWDG_CR的T[6:0]中,当该计数器的值从0x40变为0x3F时,产生复位,因此计数器的值只能是在0x7F~0x40之间,有效位是T[5:0]。WWDG_CR的WDGA位则是窗口看门狗的激活位,可由软件置1来启动WWDG,要注意WDGA一旦置1,只能在硬件复位后才能清零;  ④ 窗口上限值:WWDG的窗口下限值固定是0x40,但窗口上限值可以人为设定,具体可由WWDG_CFR配置寄存器的W[6:0]设置,其值必须大于0x40且小于0x7F,否则就失去了意义。  最后介绍的是状态寄存器(WWDG_SR)和EWI(Early wakeup interrupt)中断,该寄存器用来记录当前是否有提前唤醒EWI的中断标志。该寄存器仅有位0有效,其他都是保留位。当计数器值达到0x40时,此位由硬件置1,它必须通过软件写0来清除。在初始化WWDG时,一般会先通过软件写0清除一次。用户可以在EWI(Early wakeup interrupt)中断服务程序里进行一些必要的操作。  2.计算看门狗超时时间  窗口看门狗的时序图如下:  假设PCLK1时钟为42MHz,按照上述计算方法,可以得到WWDG的超时时间计算公式Twwdg =1 / PCLK1 x 4096 x 2^WDGTB x (T[5:0]+1),范围如下表:  3.WWDG库函数配置步骤  接下来AMEYA360电子元器件采购网将介绍如何驱动CKS32F4xx系列产品的WWDG工作。窗口看门狗相关的库操作函数在文件cks32f4xx_wwdg.c和对应的头文件cks32f4xx_wwdg.h中。具体配置步骤如下:  (1)使能WWDG时钟  不同于IWDG,IWDG有自己独立的32KHz时钟,不需要使能。而WWDG使用的PCLK1时钟需要先进行使能。  RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG 时钟使能  (2)设置WWDG窗口上限和WDGTB分频系数  void WWDG_SetWindowValue(uint8_t WindowValue);      //设置WWDG 窗口上限  void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);    //设置WDGTB分频系数  (3)开启WWDG中断并分组  WWDG_ClearFlag(); //清除提前唤醒中断标志位  NVIC_Init();      //设置中断优先级  WWDG_EnableIT();  //开启窗口看门狗中断  (4)设置计数器初始值并使能看门狗  void WWDG_Enable(uint8_t Counter);  //设置计数器值并使能看门狗  完成以上4个步骤之后,我们就可以使用CKS32F4的窗口看门狗了。之后在程序里面就必须周期性的在窗口上下限范围内进行喂狗(一般调用WWDG_SetCounter函数),否则将导致系统复位。  4.WWDG的应用场景  WWDG一般被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。比如一个十分关键的程序段正常运行的时间是50ms以内,在运行完这个段程序之后紧接着进行喂狗,如果在规定的时间窗口内还没有喂狗,那就说明我们监控的程序并没有在预期的50ms内运行完成,可以认为出故障了或跑飞了,那么此时产生系统复位来解除这个故障,让程序重新运行。
2023-03-14 09:47 阅读量:3624
中科芯获ISO 26262功能安全管理体系认证
  • 一周热料
  • 紧缺物料秒杀
型号 品牌 询价
MC33074DR2G onsemi
BD71847AMWV-E2 ROHM Semiconductor
RB751G-40T2R ROHM Semiconductor
CDZVT2R20B ROHM Semiconductor
TL431ACLPR Texas Instruments
型号 品牌 抢购
ESR03EZPJ151 ROHM Semiconductor
BU33JA2MNVX-CTL ROHM Semiconductor
STM32F429IGT6 STMicroelectronics
TPS63050YFFR Texas Instruments
IPZ40N04S5L4R8ATMA1 Infineon Technologies
BP3621 ROHM Semiconductor
热门标签
ROHM
Aavid
Averlogic
开发板
SUSUMU
NXP
PCB
传感器
半导体
相关百科
关于我们
AMEYA360微信服务号 AMEYA360微信服务号
AMEYA360商城(www.ameya360.com)上线于2011年,现 有超过3500家优质供应商,收录600万种产品型号数据,100 多万种元器件库存可供选购,产品覆盖MCU+存储器+电源芯 片+IGBT+MOS管+运放+射频蓝牙+传感器+电阻电容电感+ 连接器等多个领域,平台主营业务涵盖电子元器件现货销售、 BOM配单及提供产品配套资料等,为广大客户提供一站式购 销服务。