2096|4

33

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

3.EV_HC32F460_ADC调试 [复制链接]

 

简介

HC32F460 系列 MCU 内部集成 ADC1 ADC2 两个 ADC 模块(系统框图如图 2-1),挂载于AHB-APBAPB3)总线,可配置 12 位、 10 位和 8 位分辨率,支持最多 16 个外部模拟输入通道和 1 个内部基准电压/8bitDAC 输出的检测通道。这些模拟输入通道可以任意组合成一个序列(序列 A 或序列 B),一个序列可以进行单次扫描(包括两个动作:采样和转换),或连续扫描。支持对任意指定通道进行连续多次扫描,并对转换结果进行平均。

硬件

我们先找开发板的原理图,在第七页找到电位计的电路图。

实物图:

对应电路图和实物上的连接,电位器的接口在PC0 的端口,该端口功能复用为 ADC ,连

 

接到 ADC12 的IN10。

在 DLL 的库中有函数来配置端口的功能,其实就是对 GPIO 的功能选择寄存器的配置,端口的功能选择寄存器 PFSRxy ,x: 对应A~E,H,对应0~4,5。而 y 对应的是各个 IO 口,范围是 0~15。根据各个端口的 IO 口数量来决定 y 的值。这个 y 在用户手册上我暂时未找到其含义的解释。

en_result_t PORT_SetFunc(en_port_t enPort, uint16_t u16Pin, en_port_func_t enFuncSel,  en_functional_state_t enSubFunc)

该函数的入口参数 (Param)

参数1:对应的是 Port 的端口

参数2:对应的是对应 Port 的 IO 口

参数3:选择该口的功能

参数4:是否使能其副功能

第一、二个参数不需要多做解释,第三个参数可以查看数据手册中的2.2章中的引脚功能表来查看引脚可以设置的功能,上述中第四个参数的设置和公共控制寄存器 PCCR 相关,某些应用场合需要直接写寄存器比较高效,所以寄存器还是要了解。

 

软件

软件这个地方要结合官方的例程以及 dll 的帮助文档来学习,但是最根本的还是用户手册了,使用库函数开发要熟悉库的使用方法。

系统时钟初始化函数

在该篇中有些已经在之前的文章中有提到,有些可能不在做详细解释,会提到在哪篇中讲过,请移步查看,在下图所示的代码中已经详细注释。

上图为系统时钟的初始化配置,在代码中我已将详细注释,只需要对照注释再结合

官方的帮助手册,就能知道其含义,不知含义的可以找到配置源代码对照用户手册来确定其功能,之后的使用中可以参考官方例程根据自己的需求对底层驱动代码进行修改。

ADC 的配置

ADC 时钟的配置

在 ADC 时钟的配置部分,在官方最基础的代码中只将用到的配置时钟进行了注解,如下图所示,

根据系统时钟框图ADC 的时钟来源可以理解为三大类。第一类:系统时钟分频出来的。第二类:UPLL 倍频分频出来的。第三类:MPLL 倍频分频出来的。

ADC 的时钟初步先讲解到此,大家也可以深入搞搞。

ADC 的功能配置

ADC 的功能配置,主要配置分辨率、数据对齐模式、结果清除、扫描模式的配置。详细请查看代码中的注释。

ADC 的通道配置

ADC 的通道配置,主要配置的有 ADC 的通道、序列、需要硬件平均的通道、平均的次数、

将对应的引脚配置为模拟模式(其实是对通用控制寄存器PCRxy[15] 的DDIS 位的设置),设置为1是禁止数字功能(就是使能模拟功能),上文也提到了 xy 的值代表什么,x对应各个端口,y对应各个端口的IO口,我理解的通用控制寄存器(PCRxy)和功能选择寄存器(PFSRxy) 总计各有 6*16。

总结

       基本将 ADC 的配置梳理了一下,至于端口的模式配置,可以详细对照数据手册中的寄存器地址理解一下。

之前调试 UART 的时候说到了一点,就是官方写好的 printf 的串口调试代码,配置可以参考网络上的,但是官方在 hc32f46x_utility.c 中已经做好了,使用时我们只需要将对应的调试接口初始化即可 添加 Ddl_UartInit(); 即可使用 printf 进行串口调试。

 

本章的代码贴在后边

ADC.7z

739.78 KB, 下载次数: 5

最新回复

ADC12_IN10是ADC1和ADC2复用的引脚吗?  详情 回复 发表于 2021-5-19 12:46
点赞 关注
 
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 

很详细,加油加油

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

最近不加班,下班早搞这个   哈哈  详情 回复 发表于 2021-5-19 21:34
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

9805

帖子

24

TA的资源

版主

板凳
 

ADC12_IN10是ADC1和ADC2复用的引脚吗?

点评

对的, ADC12开头的是 ADC1和ADC2共用的模拟端口,ADC1开头的是 单独ADC1 使用,你要注意的是,ADC2的通道是ch0对应ADC12_IN4,ch1对应ADC12_IN5,依次类推。可以查看用户手册405页的ADC单元规格。一看你就明白了  详情 回复 发表于 2021-5-19 21:18
 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

4
 
littleshrimp 发表于 2021-5-19 12:46 ADC12_IN10是ADC1和ADC2复用的引脚吗?

对的, ADC12开头的是 ADC1和ADC2共用的模拟端口,ADC1开头的是 单独ADC1 使用,你要注意的是,ADC2的通道是ch0对应ADC12_IN4,ch1对应ADC12_IN5,依次类推。可以查看用户手册405页的ADC单元规格。一看你就明白了

 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

5
 
soso 发表于 2021-5-19 09:17 很详细,加油加油

最近不加班,下班早搞这个   哈哈

 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表