ADS1118笔记

您所在的位置:网站首页 msp430采样频率 ADS1118笔记

ADS1118笔记

2023-09-10 06:03| 来源: 网络整理| 查看: 265

前半部分为转载。转自 https://blog.csdn.net/humphreyandkate/article/details/104731073?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param 后半部分为自己记的东西

ADS1118基本功能

ADS1118是TI的16位ADC,内置1MHz晶振和参考电压源,转换速度8~860次每秒可调,量程±0.256V到±6.144V可调,可选单端输入或差分输入,内部集成温度传感器。

ADS1118寄存器

ADS1118的寄存器非常简单,只有2个16bit的寄存器。其中一个为只读寄存器,保存ADC转换后的值;另一个为配置寄存器,配置采集通道、正负量程、采集模式、采集速率、采集源(电压或温度)等。

ADS1118的转换寄存器

ADS1118的转换寄存器长度为16位,以补码的形式编码,用来保存每次AD转换后的结果。

ADS1118的配置寄存器 位名字读写类型初始值描述15SS读写0h单次转换开始,只用于单次转换模式,没有转换时写入1表示开始转换,写入0没有作用,正在转换时写入1也没有作用,此位永远读取为014~12MUX读写0h选择电压的输入通道: 000=Ain0+ Ain1-(差分);001=Ain0+ Ain3-(差分);010=Ain1+ Ain3-(差分);011=Ain2+ Ain3-(差分);100=Ain0+(单端);101=Ain1+(单端);110=Ain2+(单端);111=Ain3+(单端) 单端输入负参考为GND11~9PGA读写2h量程选择:000=±6.144V;001=±4.096V;010=±2.048V;011=±1.024V;100=±0.512V;101=110=111=±0.256V;8MODE读写1h选择转换模式,0=连续转换模式,1=单次转换模式(单次转换完成后变为掉电状态)7~5DR读写4h转换速率:000=8;001=16;010=32;011=31;100=128;101=250;110=475;111=860(次每秒)4TS_MODE读写0h0=采集电压;1=采集内部温度传感器3PULLUP_EN读写1h控制是否使能DOUT/DRDY引脚的内部弱上拉:0=不上拉,1=上拉(推荐)2~1NOP读写1h确定此次参数设置是否有效:01=设置生效,其他皆为使ADS1118忽略此次设置0保留只读1h保留位,写0或写1没有任何影响,读取永远为1 ADS1118读写时序分析

ADS1118共有两种读写模式:32-Bit模式和16-Bit模式,两种模式均为高位在前。32-Bit模式用于CS(片选)引脚始终为低的情况,16-Bit模式用于片选引脚由单片机IO控制的情况。

32-Bit模式

32-Bit模式下CS引脚可以一直保持为低,节省一个IO口。32-Bit模式可以细分为两种,一种是把设置寄存器(16bit)写入两次,一种是写入一次后第二次(后16bit)写0。 两种32-Bit模式时序图 读取到的数据只有一种格式,前16位为转换寄存器中储存的上次转换的值,后16位为刚才写入的寄存器设置。在每次完成32-Bit通信后,DOUT/DRDY引脚再次拉低时代表下一次AD采集已完成,可以读取数据。

16-Bit模式

16-Bit模式要求在每两次通信之间CS(片选)引脚要拉高一次。每次通信可写入16bit的配置寄存器值和读取到16bit的转换寄存器值。 在这里插入图片描述

ADS1118数据格式 电压采集数据格式

ADS1118采用补码的数据格式,采集电压时,读取到的16bit数据可以直接赋给C语言中的short(有符号16bit整数)类型然后根据量程乘以比例系数得到电压值。量程和比例系数表如下。

量程比例系数±6.144V187.5μV±4.096V125μV±2.048V62.5μV±1.024V31.25μV±0.512V15.625μV±0.256V7.8125μV 温度采集数据格式

ADS1118通信得到的16位温度数据中只有高14位有效(低两位永远为0),为一个14位有符号整数。在处理过程中可以将数据先按照无符号数向右位移(>>)2位,再判断第14位是否为1(1则表示温度为负),若为1则减一转化为反码,在将低13位按位取反得到原码,再取负,就能将其转化为16位有符号整数(short)直接进行下一步运算。参考C语言程序如下:

val = ((unsigned short)val) >> 2;//温度数据高十四位有效 if(val & 0x2000){//温度数据第十四位表明是否为负数 unsigned short temp = ((unsigned short)val) ^ 0x2000;//第十四位清零 temp = temp-1;//转换为反码 temp = (~temp)&0x1FFF; //低十三位按位取反得原码 val = -temp; //重新取负转换为十六位的补码格式 } 测试代码

包含ADS1118.c和ADS1118.h,(内部资料,不宜外传,电设小伙伴找学长学姐要)。

*******************************************************分隔符*****************************************************

引脚连接:VDD——接3.3V,并且 将一个100 nF电源去耦电容连接至GND; DIN:连接MOSI; DOUT:连接MISO; ANx:如果不用,就不接或者接到VDD; CS:如果不用,就接到GND; 引脚作用: SCLK:用于将DIN和DOUT / DRDY引脚上的数据输入和输出ADS1118; CS:片选,置低有效; DIN:在SCLK下降沿在DIN上锁存数据; DOUT:DOUT / DRDY上的数据在SCLK上升沿移出;还用于指示转换已完成并且有新数据可用,在连续转换模式下,如果未从器件中检索到任何数据,则DOUT / DRDY在下一个数据就绪信号之前的8 µs(DOUT / DRDY为低电平)之前再次变为高电平。 技术指标: 在这里插入图片描述 此设备不得施加超过VDD + 0.3 V或5.5 V(以较小者为准)的电压。 在这里插入图片描述 在这里插入图片描述 SCLK最大频率为4MHz: 在这里插入图片描述 在量程内,输入越大,误差也就越大。 在这里插入图片描述 电源电压越大,则积分非线性(INL)就越小

差分失调电压与供电电压之间的关系(反正以后选AN2\AN3就稳了) 在这里插入图片描述 工作电流和温度的关系: 在这里插入图片描述 数字滤波器频率响应(这个还不知道是干嘛的): 在这里插入图片描述 在这里插入图片描述 测量单端输入时,设备不会输出负代码。 这些负码表示负差分信号; 也就是说, (V(AINP)– V(AINN))



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3