你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> HK32/航顺 >> 航顺芯片HK32F03X内部8M时钟倍频成72M解决方案

航顺芯片HK32F03X内部8M时钟倍频成72M解决方案

关键字:航顺芯片 HK32F03X 内部8M时钟倍频成72M 航顺代理 作者: 来源: 发布时间:2022-05-20  浏览:5
航顺芯片HK32F03X系列采用的是Cortex-M0内核架构,该系列产品均支持内部高速时钟HSI,即设计上把内部8M时钟直接作为倍频基准。这是国外S**32F03X所不具备的功能,因为其只有HSI/2,也就是4M时钟,作为倍频基准,然后通过最大16倍的PLL锁相环倍频到64MHz。而很多客户应用对主频有要求,即希望使用内部晶振让系统跑72MHz,就没办法实现。今天对航顺HK32F03X系列如何实现系统主频升级到72M做一个简单介绍。
HK32F0X系列的内部时钟树
首先我们来看下HK32F0X系列的内部时钟树
HK32F0X系列的内部时钟树
图1 内部时钟树

从上面的时钟内部图我们可以看到内部产生的56MHz的时钟可以直接作为系统时钟,或者经过4分频成14MHz之后作为系统时钟和ADC时钟。本文重点介绍56M时钟经过7分频成8MHz作为HSI,然后倍频到72M的方法,这样可以省掉外部晶振,方便PCB布板,降低BOM成本。通过以下图示我们可以清晰地看到HK32F03X增加了寄存器RCC_CFGR4,其中PPSS位作为HSE和HIS的开关选择,所以我们通过设置此位为1以选择内部HSI时钟作为倍频的基准时钟。
局部放大图
图2 局部放大图
CFGR4 说明
图3  CFGR4 说明
CFGR4 说明

下面以MDK5(Keil5.0以上版本)编译软件来做讲解
首先我们来看下HK32F0X系列的内部时钟树
◆首先我们找到系统时钟初始化代码
系统时钟初始化代码

我们可以看到系统时钟在void SystemInit (void) 里面初始化,而工程的启动文件startup_stm32f0xx.s里面已经调用了此函数,如下图:
启动文件
所以我们只要修改SetSysClock函数里面的配置就可以了,这样不用在Main函数里面去做系统时钟的配置  
◆其次定义寄存器RCC_CFGR4以及PPSS位
可以直接在system_stm32f0xx.c 文件开头定义 
寄存器RCC_CFGR4以及PPSS位

0x400210e8 是寄存器地址   0x00000100是位8为1    PPSS位为1
 ◆最后修改SetSysClock函数
增加以下一行代码 选择作为基准
HSI
修改倍频基准RCC_CFGR_PLLSRC  这个是选择来自RCC_CFGR4.PPSS
RCC_CFGR4.PPSS

HSI作为基准时钟配置代码如下:

基准时钟配置代码

基准时钟配置代码

如需要了解更多航顺MCU产品,请联系航顺核心代理商,颖特新科技,或者扫码联系我们!

航顺代理

在之前的介绍中,我们也为大家介绍了航顺芯片HK32MCU闩锁效应问题研究及预防措施,也是目前我们主推的非常成熟的解决方案!


编辑:zzy  最后修改时间:2022-05-23

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4