HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案

航顺芯片hk32f03x系列采用的是cortex-m0内核架构,该系列产品均支持内部高速时钟hsi,即设计上把内部8m时钟直接作为倍频基准。这是国外s**32f03x所不具备的功能,因为其只有hsi/2,也就是4m时钟,作为倍频基准,然后通过最大16倍的pll锁相环倍频到64mhz。而很多客户应用对主频有要求,即希望使用内部晶振让系统跑72mhz,就没办法实现。今天对航顺hk32f03x系列如何实现系统主频升级到72m做一个简单介绍。
//hk32f0x系列的内部时钟树
首先我们来看下hk32f0x系列的内部时钟树
图1 内部时钟树
从上面的时钟内部图我们可以看到内部产生的56mhz的时钟可以直接作为系统时钟,或者经过4分频成14mhz之后作为系统时钟和adc时钟。本文重点介绍56m时钟经过7分频成8mhz作为hsi,然后倍频到72m的方法,这样可以省掉外部晶振,方便pcb布板,降低bom成本。通过以下图示我们可以清晰地看到hk32f03x增加了寄存器rcc_cfgr4,其中ppss位作为hse和his的开关选择,所以我们通过设置此位为1以选择内部hsi时钟作为倍频的基准时钟。
图2 局部放大图
图3 cfgr4 说明
//下面以mdk5(keil5.0以上版本)编译软件来做讲解
首先我们来看下hk32f0x系列的内部时钟树
◆首先我们找到系统时钟初始化代码
我们可以看到系统时钟在void systeminit (void) 里面初始化,而工程的启动文件startup_stm32f0xx.s里面已经调用了此函数,如下图:
所以我们只要修改setsysclock函数里面的配置就可以了,这样不用在main函数里面去做系统时钟的配置
◆其次定义寄存器rcc_cfgr4以及ppss位
可以直接在system_stm32f0xx.c 文件开头定义
0x400210e8 是寄存器地址 0x00000100是位8为1 ppss位为1
◆最后修改setsysclock函数
增加以下一行代码 选择hsi作为基准
修改倍频基准rcc_cfgr_pllsrc 这个是选择来自rcc_cfgr4.ppss
hsi作为基准时钟配置代码如下:
来源:航顺芯片


发光电子催眠器电路图
浅析三极管非门及二极管与门和或门电路原理
电瓶修复——电动车跑得远全靠电池配组的好3
Continuous-Wave Doppler (CWD)
魅族Pro7选用处理器细节曝光,很可能还是和三星联姻
HK32MCU应用笔记(八)| 航顺HK32F03X内部8M时钟倍频成72M解决方案
12位并行输出AD转换器AD7492
表端 PLC 通信模块串口配置过程
fpga的基础知识和特点
PyTorch教程-15.4. 预训练word2vec
台积电获英伟达、AMD两大订单,营运旺到2019年
谈谈锂离子电池使用安全性
网络视频监控系统的优点
荣耀Magic发布会亮点疑曝光 40W超级快充更加残暴
LG第二款Android手机Prada3将亮相CES
Cradlepoint宣布发布新的Cradlepoint商业智能报告
选购电动法兰球阀时需要注意什么
高压功率放大器在径向驻波型超声波电机研究中的应用
oppor11什么时候上市最新消息:年度爆款机oppor11即将发布!随手一拍“外焦里嫩”oppo r11人像模式堪称专业!
统明亮推出seddLED 被称为真正意义上的第一款数字化SmartRGBLED