ADS1118笔记

前半部分为转载。转自
https://blog.youkuaiyun.com/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也没有作用,此位永远读取为0
14~12MUX读写0h选择电压的输入通道: 000=Ain0+ Ain1-(差分);001=Ain0+ Ain3-(差分);010=Ain1+ Ain3-(差分);011=Ain2+ Ain3-(差分);100=Ain0+(单端);101=Ain1+(单端);110=Ain2+(单端);111=Ain3+(单端) 单端输入负参考为GND
11~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))<0。VDD和GND上的静电放电(ESD)二极管可保护ADS1118输入。 为防止ESD二极管导通,请将任何输入上的绝对电压保持在公式3给出的范围内
GND – 0.3 V <V(AINx)<VDD + 0.3 V
尽管ADS1118可以读取全差分信号,但由于每个引脚上都有ESD保护二极管,因此该器件不能在其任一输入端接受负电压。 当输入超过电源或跌落至GND以下时,这些二极管将导通,以防止对设备的任何ESD损害。

关于阻抗:确保考虑输入阻抗的典型值。 除非输入源具有低阻抗,否则ADS1118输入阻抗可能会影响测量精度。 对于具有高输出阻抗的信号源,可能需要缓冲。 有源缓冲器会引入噪声,还会引入失调和增益误差。 在高精度应用中考虑所有这些因素。
关于满量程范围:如果使用的VDD的电源电压大于4 V,则满量程范围为±6.144 V,允许输入电压扩展至电源。 但是请注意,在这种情况下,或者每当电源电压小于满量程范围时(例如VDD = 3.3 V,满量程范围=±4.096 V),都无法获得满量程ADC输出代码。 这意味着失去了一些动态范围。
(看VDD电源大小选择满量程范围,VDD3.3V则满量程范围选4.096V)

低功率占空比:在功耗至关重要的应用中,可能不需要在低数据速率下改善噪声性能。 对于这些应用,ADS1118支持占空比,可以通过以有效较低的数据速率周期性地请求高数据速率读数来节省大量功率。 例如,处于掉电状态且数据速率设置为860 SPS的ADS1118可以由微控制器操作,该微控制器每125 ms(8 SPS)指示一次转换。 由于以860 SPS进行转换仅需要大约1.2 ms的时间,因此ADS1118进入掉电状态的剩余时间为123.8 ms。 在这种配置下,ADS1118消耗的功率大约是连续转换模式下消耗功率的1/100。
在这里插入图片描述

ADS1118以二进制补码格式提供16位数据。 正满量程输入产生的输出代码为7FFFh,负满量程输入产生的输出代码为8000h。

ADS1118有两个寄存器,可通过SPI接口访问。
典型电路接法
推荐做法是在每个数字引脚的串联路径中放置50Ω电阻,以提供一些短路保护。 必须注意仍然满足所有SPI时序要求,因为这些额外的串联电阻以及数字信号线上存在的总线寄生电容可能会压摆信号。
在这里插入图片描述
大多数微控制器具有可编程的输入/输出(I / O)引脚,可以在软件中将其设置为输入或输出。 如果没有SPI控制器的话,则可以将ADS1118连接到GPIO引脚,并可以仿真SPI总线协议。 使用GPIO引脚生成SPI接口仅需要将这些引脚配置为推或拉输入或输出。 此外,如果SCLK线保持低电平的时间超过28 ms,则通信超时。 这种情况意味着GPIO端口必须能够提供SCLK脉冲,脉冲之间的间隔不超过28 ms

为了获得最佳的噪声性能,TI建议尽可能使用差分配置。 差分配置最大程度地提高了ADC的动态范围,并提供了强大的共模噪声衰减能力。

这个图应该挺有用的
在这里插入图片描述

电源去耦
良好的电源去耦对于实现最佳性能很重要。 VDD必须至少与一个0.1μF的电容去耦
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值