LED2013 发表于 2020-8-7 11:07

HC32L13X系列ADC功能学习笔记

MCU在接收外部模拟信号的时候需要转变成数字信号才能进行处理,这时候就需要ADC工作了。
本系列芯片内部集成了一个12位高精度高转换速率的逐次逼近型模数准换器(SAR ADC)模块。具有以下特性:
1.12位转换精度;
2.1Msps转换速度;
3.30个输入通道;
4.4种参考源:AVCC电压、ExRef引脚、内置1.5V参考电压、内置2.5V参考电压;
5.电压输入范围:0~Vref;
6.四种转换模式:单次转换、顺序扫描连续转换、插队扫描连续转换、连续转换累加;
7.输入通道电压阈值监测;
8.内置信号放大器;
9.软件可配置ADC转换速率;
10.支持片内外设自动触发ADC转换,有效降低芯片功耗并提高转换的实时性。
一次完整的ADC转换由转换过程及逐次比较过程组成。其中转换工程需要4~12个ADCCLK,由ADC_CR0.SAM配置;逐次比较工程需要16个ADCCLK。
http://www.tigerchip.com.cn/data/attachment/forum/202003/19/135318ucnmp9n8ncz2pu7n.png
                     ADC转换时序图
启动ADC准换的操作流程:
1.将待转化的ADC通道配置为模拟端口;
2.ADC外部参考电压引脚配置为模拟端口(使用内部参考电压可省略);
3.使能BGR与ADC模块并延时等待模块使能;
4.选择转换模式、参考电压(内部参考电压需要使能);
5.设置转换速度,选择转换通道;
6.启动准换并读取数据;
7.关闭ADC与BGR模块。
需要通过仿真器调试观察ADC转换例程的结果,PA00引脚输入一个2.5V的参考电压。获取相应寄存器的值来获得ADC转换值。
http://www.tigerchip.com.cn/data/attachment/forum/202003/19/150559d7lcf5hrrhhdliyd.png
       通道0转换结果寄存器中的值
http://www.tigerchip.com.cn/data/attachment/forum/202003/19/150753x0jrrlfin0ca8xa0.png
   ADC转换结果寄存器中的值
由于是单次扫描转换两个寄存器的值应该是相同的。

单片机123258 发表于 2024-3-11 17:16

为什么官方例程的AD采集,在debug调试时AD值都是oxAAAAAAAA

wubangmi 发表于 2024-3-12 15:54

单片机123258 发表于 2024-3-11 17:16
为什么官方例程的AD采集,在debug调试时AD值都是oxAAAAAAAA

官网例程,没有你说的debug状态下的都是0xAAAAAAA的现象

单片机123258 发表于 2024-3-13 15:35

换个调试器好了,用JLINK调试都是0xAAAA,用DAP调试可以,难道不能用JLINK调试?还是需要怎么设置下

小夏天的大西瓜 发表于 2024-3-27 08:00

有时候调试器的问题确实不太容易发现问题

lvuu 发表于 2024-8-27 00:22

配置ADC外部参考电压引脚为模拟端口,或者使用内部参考电压。
页: [1]
查看完整版本: HC32L13X系列ADC功能学习笔记