01
前言
在开发指南(七)中,我们简单介绍了LBT模块中低电压检测功能的测试,本章我们讲解一下24位高精度SD ADC的使用方法,详细寄存器资料参考应用手册第27章节。
02
SD ADC结构框图
在讲解SD ADC之前,我们首先来看一下SD ADC的功能框图如下图1,从图中可以看到整个SD ADC模块包括两个多路选择器IAMUX,用来选择进入 PGIA 的信号 IAINP/IAINN,一个PGIA模块用来进行信号放大,而后PGIA的输出经过简单的RC滤波后,可选择经过BUF1/2输入到SD ADC,根据设置的VREF电压进行AD转换,最后输出24位ADC_D[23:0]。
图1.SD ADC功能框图
03
SD ADC配置
了解SD ADC框架后我们编写简单的测试程序,使用SD ADC模块进行信号的测量计算。
软件的配置如下图2:
图2.SD ADC配置
(1)SD ADC初始化:
第一步先使能SD ADC时钟,然后调用库函数进行初始化配置,滤波器我们一般选择SINC3,采样频率250kHz,过采样率16384,基准电压选择AVDDR-VSS,使能BUF1/2(BUFFER频率默认fb=fs/8)。
(2)PGIA初始化:
内部和外部chopper选择分别为FS/128和FS/256,增益选择256倍,大电流模式,正负输入端分别选择A1和A0。
配置好之后,使能PGIA和SD ADC,等待SD ADC转换完成。
然后我们编写SD ADC测试程序,如下图3:
图3.SD ADC测试程序
由于在ADC转换完成之前读到的数据都是上一笔ADC数据,所以我们需等待SD ADC转换完成标志位置1,再将标志位清0,然后获取ADC转换结果并将ADC码值缓存,最后通过串口将数据以16进制发送出去,同时通过LCD驱动将ADC码值显示在液晶屏上。
在软件配置中,我们选择了A0-A1作为PGIA的输入通道,放大倍数为256倍,基准电压AVDDR=2.4V,现在我们利用AVDDR外接分压电阻为10k-10Ω-10k-GND,从10Ω两端得到一个共模电压约1.2V,差分电压约为1.2mV的信号,接入A0-A1,测试结果如下图 4。
图4.SD ADC测试结果
我们按照应用手册中的计算公式(如下)
计算Vin的电压结果为:
Vin=DEC*Vref/2^23/0.75/GAIN=791220*2.4/2^23/0.75/256=1.179mV
实际应用过程中并不需要计算此电压值,需要根据不同产品进行单独校准,保证测量结果的准确性。
04
开发问题简析
1、相关寄存器无法写入,要注意先打开SD ADC的时钟源,才能对寄存器进行操作。
2、SD ADC转换结果不正确,要检查外围电路、信号输入端口及确定信号的输入范围,是否有开启PGIA和BUFFER等限制输入范围的模块。
3、要及时清除ADC转换完成标志位。
05
总结
本章简单介绍了SD ADC模块功能的使用,应用上的拓展可以调整相应的ADC配置,搭配合适的算法,达到最理想的效果。
审核编辑:刘清
-
mcu
+关注
关注
146文章
17110浏览量
350898 -
adc
+关注
关注
98文章
6485浏览量
544412 -
soc
+关注
关注
38文章
4156浏览量
218125 -
多路选择器
+关注
关注
1文章
22浏览量
6524
原文标题:带32位MCU和高精度ADC的SoC产品 ----SD93F系列开发指南(八)
文章出处:【微信号:杭州晶华微,微信公众号:杭州晶华微】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论