系统级ADC芯片MSC1210介绍及应用
本文引用地址:https://www.eepw.com.cn/article/171343.htm
MSC1210内带8路24位模数转换器,自身可实现温度检测、输入源泉开路短路检测、增益和漂移校准等。内核中的32位累加器可实现24位结果的快速累加计算。
输入多路转换器将切换多路模拟输入信号到输入缓冲器。共有9路输入信号,其中1路为片内温度传感器信号,其余8路每路输入可设置单极性输入或差分输入,通过ADMUX寄存器可随意配置其输入信号的正确与负端。片内配置有模拟输入缓冲,当使用输入缓冲时,典型输入阻抗为10GΩ;当不使用模拟输入缓冲时,输入阻抗(单位为Ω)由时钟频率与增益决定:
PGA的增益可以设置为2 n(n=0~7)。通过PGA的使用,可以用效提高A/D转换结果的分辨率。如输入信号幅度为40mV,设置PGA=128,最小分辨率可达75nV。PGA的模拟输入可以通过设置ODAC寄存器进行偏置,最大偏置为输入范围的一半。
ADC的转换结果存储在ADRESH(高字节)、ADRESM(中字节)、ADRESL(低字节)中,配合总和寄存器和移位寄存器,可以方便地实现多次测量结果的累加和平均。总和寄存器是1个32位的值,被分为SUMR0(LSB)、SUMR1、SUMR2、SUMR3(MSB),可以进行最大256次测量结果的累加和平均。当然,要得到测量结果的平均值,应当使累加次数和平均次数一致。通过SSCON寄存器,可以设置成以下4种工作方式。
方式0:手动累加,每次测量完毕,将测量结果写入总和寄存器,完成累加。
方式1:ADC自动累加,根据SSCON中设置的累加次数,自动将测量结果累加到总和寄存器。
方式2:手动求平均值,将总和寄存器中的值除以次数,得到测量结果。
方式3:ADC自动累加后求平均,根据SSCON中设置的累加次数,自动完成测量结果的累加后求平均值。
下面的示意代码完成ADC高精度测量过程。单次测量结果可以通过直接读取ADRESH、ADRESM、ADRESL得到。
//设置ADC
PDCON=0x0f7; //打开转换器,系统时钟开启
ACLK=9; //设置ACLK频率
ADMUX=0x08; //选择第一通道正极性,AINCON负极性
ADCON0=0x30;//选择片内参考电压1.25V,关闭缓冲器,PGA=1
ADCON1=0x41;//单极性,滤波器自动模式,自校准
for(i=0;i4;i++) //四个采样周期自校准
{while(!(AIE0X20));
resultl=ADRESL;
resultm=ADRESM;
resulth=ADRESH;}
SSCON=0XDB; //方式3,ADC自动累加后求平均,采样16次累加
While(!(AISTAT0X40));//等待16次采样结果被累加完成
SMU=(SUMR3〈〈24〉+(SUMR2〈〈16〉+(SUMR18)+SUMR0; 存储器相关文章:存储器原理
评论