带32位MCU和高精度ADC的SoC产品-SD93F系列开发指南(九)

描述

01

前言

在开发指南(八)中,我们给大家讲解了24位高精度ADC—SD ADC,本章我们再给大家讲解12位高速ADC—SAR ADC的基本使用方法,参考应用手册第28章节。

02

SAR ADC结构

我们首先来看一下SAR ADC的功能框图如下图1,SAR MUX 为一个多路选通器,多个信号都可以选择进入 SAR ADC 进行测试。SAR Buf 为一个 rail to rail 输入/输出 buffer,输入范围接近于0~AVDDR,为保证BUFF性能,输入范围0.1V~AVDDR-0.1V。

使用 SAR Buf 可以提高芯片的输入阻抗,但要求输入信号的带宽小于 10kHz(当 SAR Buf 为高速模式时)。

soc

图1.SD ADC功能框图

03

软硬件配置

SAR ADC软件的配置如下图2:

soc

图2.SAR ADC配置

首先要使能SAR ADC时钟源,然后调用库函数对SAR ADC进行初始化,我们打开SAR ADC BUF,选择高速模式,输入通道选择为A3,continue模式,工作在大电流模式,采样周期选择64个SAR ADC时钟,采样时钟选择3MHz,而后使能SAR ADC,SAR ADC的基准电压固定为AVDDR。

初始化配置完成后,需要进行校准,这里我们选择校准周期为16个SAR ADC时钟,校准16次,而后使能校准,等待自动校准结束,清除校准结束标志位,校准完成后再开启SAR ADC转换使能。

详细校准流程可参考应用手册28.4.2 SAR ADC校准章节,如图3:

soc

图3.SAR ADC校准

然后我们编写SAR ADC测试程序,如下图4:

soc

图4.SAR ADC测试程序

整个测试流程与SD ADC一致,等待SAR ADC转换完成标志位置1,再将标志位清0,然后获取ADC转换结果并将ADC码值缓存,最后通过串口将数据以16进制发送出去,同时通过LCD驱动将ADC码值显示在液晶屏上。

在软件配置中,我们选择了A3作为输入通道,参考电压为AVDDR=2.4V,并且SAR ADC是没有放大倍数的,所以我们用两个电阻分压得到一个AVDDR/2的电压约1.2V,连接到A3作为SAR ADC的输入信号,测试结果如下图5:

soc

图5.SAR ADC转换结果显示

我们按照公式:Vin= DEC*AVDDR/2^12,图上显示07ff为16进制,需要转换为十进制2047,所得结果Vin=2047*2.4/4096=1.199V,计算结果正确,也可以更换其他大小的信号按照上述计算过程验证准确性。

04

开发问题简析

要理解CALEN、SAREN和SAR_ADC_EN三个使能位的功能,必须先使能SAR_ADC_EN,再使能CALEN/SAREN。

当 SAR_ADC_EN=1 且 CALEN/SAREN=0 时,不要同时进行 SAR_ADC_EN 的清零和 CALEN /SAREN的置 1 动作。否则 SAR_ADC_EN 的清零是成功的,CALEN/SAREN 的置 1 是失败的。

若是在使用中途改变了SAR ADC配置,需重新校准。

采样速率的计算需要将采样周期数和转换周期数相加作为一个完整周期,转换周期数固定为12。

05

总结

本章简单介绍了SAR ADC模块功能的使用,应用上可灵活选择输入通道,监测不同信号。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分