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

电子说

1.3w人已加入

描述

01.前言

在开发指南(五)中,我们简单介绍了RTC实时时钟功能的使用,本章我们结合LBT模块和内部OPA、OPB两路运放介绍一下DAC的相关功能,详细寄存器资料参考应用手册第11章节和第26章节。

02.LBT(低压检测)结构框图

我们首先来看一下LBT的结构框图,如下图1:

adc

图1.LBT结构框图

从应用手册中我们可以得知,LBT电路包括一个8 bit的电阻DAC,DAC输出就是框图中的DAO,而DAO = VDN + ( VDP – VDN ) * DABIT[7:0] / 255,VDP和VDN又有多种组合选择,所以DAC的输出电压可以通过芯片内部或外部输入的多种不同电压进行控制。

03.DAC初始化

接下来我们对照图2简单了解下DAC的初始化配置,DAEN位是控制以AVDDR的分压信号作为VDP输出电压的开关,关闭后相关通道就没有信号了,我们再配置DAP[3:0]位选择VDP电压为AVDDR≈2.4V,DAN[2:0]位选择VDN电压为VSS,最后将8bit DAC数据信号写为0x80,则DAC输出电压DAO=VSS+ (AVDDR-VSS) *128/255≈1.204V。

adc

图2.DAC初始化函数

04.OP等效电路

在配置好DAC输出后,我们还是无法直接测量到其输出结果,通过图3可知DAO可以分别选择作为OPA和OPB的正端输入,负端输入分别选择A7/A8和P17,连接成BUFFER形式即可将DAC电压信号从A7/A8和P17输出。

adc

图3.OPA/OPB独立运放等效电路

05.OP初始化

从等效电路上了解了如何控制DAC电压输出后,我们再了解一下软件上如何实现这一过程。OP的控制信号包括OP正端输入选择、负端输入选择、相位选择、输出选择和使能位控制。图4中我们直接调用库函数按照等效电路的描述,将OPB负端输入选择P17连成BUFFER形式,正端输入选择DAO,相位默认,最后打开使能。

adc

图4.OP初始化函数

06.DAC电压输出结果验证

按照上述DAC初始化和OP初始化配置后,我们用万用表测量一下DAC的输出电压是否正确,实测AVDDR电压为2.46525V(见图5),则理论DAC输出电压为1.23745V,而实测DAC电压为1.23868V(见图6),说明DAC已按照设置正确输出电压结果。

adc

图5.实测AVDDR电压

adc

图6. 实测P17电压

最后我们写一个简单的测试程序,将8Bit DAC的所有输出点间隔2S自加一次进行扫描,并将DAC数据码值显示出来,来观察DAC输出的线性情况,如图7。

adc

图7.DAC测试程序

07.开发问题简析

注意分压设置和OP连接即可输出预设的电压结果。

08.总结

DAC电压信号除了通过OP输出,还可以通过ACM引脚进行输出,也能作为ADC的输入信号,开发过程中可以进行灵活的应用。

审核编辑 黄昊宇

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

全部0条评论

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

×
20
完善资料,
赚取积分