3791|0

842

帖子

3

TA的资源

版主

楼主
 

【HC32F460开发板测评】07 ADC采集历程的时钟配置 [复制链接]

  本帖最后由 1nnocent 于 2021-5-14 09:32 编辑

之前有学过STM32F103VCT6,但都是改改程序,学得不精,没有具体去了解内部的时钟怎么分频倍频这些。

 现在正好通过华大这款HC32F460开发板来具体了解一下这款单片机内部的时钟,

顺便记录一下自己的学习记录。

这里使用的历程是开发板ADC部分adc_01_sa_base历程。

开始之前大概看了一下芯片的总线架构,在用户手册2 总线架构( BUS)部分;

之前学ST的芯片,看到这个感觉好复杂就没去看;现在ST芯片价格暴涨,都在找国产芯片,

在这个形式之下又对单片机产生了兴趣,现在重新学一下之前让我感到复杂的东西。

总线架构其实就是实现了实现主机总线和从机总线的互连,从中我们可以看到主机总线可以访问那些具体外设资源,

这个图片是以矩阵的形式来表现主机总线和丛集总线的互联,现在看来好像也没有之前想象的那么复杂。

可能是是之前没有那么感兴趣,搞硬件比较多,之前在学校有队友专门写代码,学的比较少,所以这部分也相对会比较弱。

adc_01_sa_base历程里只有ADC相关时钟的配置,这里记录一下对ADC时钟配置过程有一个具体的了解。

ADC时钟的配置函数(AdcClockConfig())在这个历程的AdcConfig () 函数中。

一下是函数AdcClockConfig()的具体代码:

") rgba(220, 220, 220, 0.5); top: -15px; left: 0px; display: block;">

 代码首先是对ADC_CLK进行一个判断,从历程的最开始部分可以看到其宏定义 #define ADC_CLK                     (ADC_CLK_UPLLR)

所以这个函数的主要代码是第二个 #elif....#endif 之间的内容。

1、UPLL时钟源选择

下面这段代码主要是选择XTAL作为UPLL的时钟源,这部分的配置主要是对变量stcXtalCfg进行相应的赋值

stcXtalCfg变量是一个结构体,在结构体定义部分可以查看相应的结构体成员。

") rgba(220, 220, 220, 0.5); top: -15px; left: 0px; display: block;">

2、UPLL相关配置

下面是对 UPLL的配置,这里主要是对时钟源规格的配置,用户手册4.3 时钟源规格部分有相应的介绍:

UPLL 时钟( UPLL)

输入时钟:外部高速振荡器或者内部高速振荡器
UPLL 输入时钟分频: 1~24 任意分频可选
VCO 输入频率=输入时钟/UPLL 输入时钟分频,频率范围
1MHz~24MHz
UPLL 倍频系数: 20~480
VCO 振荡频率: 240MHz~480MHz
UPLLP 输出分频比: 2~16 任意分频
UPLLQ 输出分频比: 2~16 任意分频

 

UPLLQ 输出分频比: 2~16 任意分频
UPLLP 输出频率=(输入时钟/UPLL 输入时钟分频) *UPLL 倍频系
数/UPLLP 输出分频比
UPLLQ 输出频率=(输入时钟/UPLL 输入时钟分频) *UPLL 倍频
系数/UPLLQ 输出分频比
UPLLR 输出频率=(输入时钟/UPLL 输入时钟分频) *UPLL 倍频系数/UPLLR 输出分频比

以上表格是从截取的部分和UPLL时钟源相关的信息。

a、输入时钟:外部高速振荡器或者内部高速振荡器
从中可以了解到输入时钟是外部高速振荡器或者内部高速振荡器两种,时钟源的选择在1、UPLL时钟源选择已经进行了配置并选择了外部高速振荡器作为时钟源;

 

b、UPLL 输入时钟分频: 1~24 任意分频可选    VCO 输入频率=输入时钟/UPLL 输入时钟分频,频率范围1MHz~24MHz

stcUpllCfg.pllmDiv = 2u;知道UPLL输入时钟分频为2 ,则相应的VCO输入频率是4MHz(输入时钟是XTAL为8MHz,2分频);

 

c、UPLL 倍频系数: 20~480 倍

从stcUpllCfg.plln    = 60u;知道UPLL倍频系数为60。

 

d、VCO 振荡频率: 240MHz~480MHz   UPLLR 输出频率=(输入时钟/UPLL 输入时钟分频) *UPLL 倍频系数/UPLLR 输出分频比

所以VCO振荡频率为 4MHz*60=240MHz

 

e、   UPLLP 输出分频比: 2~16 任意分频
        UPLLQ 输出分频比: 2~16 任意分频

        UPLLR 输出分频比: 2~16 任意分频
 由   stcUpllCfg.PllpDiv = 16u;
        stcUpllCfg.PllqDiv = 16u;
        stcUpllCfg.PllrDiv = 16u; 知到UPLLP、Q、R都为16分频

") rgba(220, 220, 220, 0.5); top: -15px; left: 0px; display: block;">

 ADC采集的时钟配置到这里就结束了。

 

不知不觉华大侧评板的测评活动马上就结束了,还有最感兴趣的PGA还没看。白天上班,周末和晚上复习备考,都是在挤时间断断续续地学。不得不说论坛的学习氛围还是挺好的,没有这个学习氛围,在打工和复习备考之间估计学不下来,有空就来逛逛论坛多少也学点东西哈哈哈。

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表