24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
技术专题>
使用(yòng)ADS1115

技术专题

使用(yòng)ADS1115


使用(yòng)ADS1115

ADS1115是一款精密的16ADC,具有(yǒu)四个多(duō)路复用(yòng)输入-您可(kě)以单独使用(yòng)每个输入,也可(kě)以成对使用(yòng)每个输入进行差分(fēn)测量。它具有(yǒu)内部校准的基准,可(kě)实现高精度。

这个ads1115教程向您展示如何设置库来驱动芯片,以及如何使用(yòng)不同的PGA增益设置获取读数。它还介绍了即使仅使用(yòng)单電(diàn)源供電(diàn)的设备也能(néng)够测量负電(diàn)压的方法。这使其可(kě)用(yòng)作電(diàn)流吸收器或電(diàn)流源测量设备。

有(yǒu)关芯片的重要信息:

具有(yǒu)16位分(fēn)辨率。

可(kě)以根据PGA设置检测到0.187mV7.8uV

可(kě)以采样8860 SPS

具有(yǒu)内部参考電(diàn)压。

具有(yǒu)内部PGA(可(kě)编程增益放大器)。

该设备的典型精度為(wèi)0.01%(但最大精度為(wèi)0.15%)。该精度包括所有(yǒu)误差源(参考電(diàn)压,增益误差,失调和噪声)。

ADS1115接線(xiàn)板

ADS1115详细信息

ADS1115规格

  范围

价值

  電(diàn)源電(diàn)压(V DD

2V05V5

  绝对最大V DD

-0.3V7V0

  测量范围

-300mVVdd + 300mV

  界面

I2C

  I2C

100kHz400kHz3.4MHz

  解析度

16位(±15位)

  数据速率

8860 SPS

  多(duō)路输入的数量

4

  有(yǒu)功電(diàn)流

150uA(最大200uA

  掉電(diàn)電(diàn)流

0.5uA(最大2uA

  偏移误差[1]

±3 LSB

  积分(fēn)非線(xiàn)性(INL[1]

1 LSB

  增益误差[1][2]@ 25°C

0.01%(典型值)0.15%(最大)

  I2C地址(可(kě)选)

0x480x490x4a0x4b

  工作温度

-40°C125°C

[1] FSR±2.048V
[2]
包括来自参考電(diàn)压和PGA的所有(yǒu)误差。

ADS1115框图

数据表中的图片

ADS1115引脚排列

ADS1115精度

有(yǒu)趣的图显示了设备的真正功能(néng),数据表中的图19所示:

总误差与输入信号

注意系统的准确性如何包括所有(yǒu)错误源:

获得错误,

差分(fēn)输入误差

偏移误差

和噪音。

ADS1115 I2C寻址

您可(kě)以使用(yòng)四个地址之一来设置ADS1115,因此可(kě)以在单个I2C总線(xiàn)上放置4ADS1115芯片:

    0x480x490x4a0x4b

寻址控制是不常见的,因為(wèi)您只需要使用(yòng)一个输入引脚作為(wèi)地址控制引脚即可(kě)。

通常,您需要两个输入才能(néng)在4个地址之间切换,但是ADS1115 16ADC使用(yòng)的是巧妙的方案。对单个地址输入进行连续采样,如果将其连接到GNDVDDSDASCL,则可(kě)以分(fēn)别从0x480x490x4a0x4b设置地址。

ADS1115省電(diàn)

连续模式

在连续转换模式下,ADS1115的静态電(diàn)流高达150uA。在这种模式下,您可(kě)以让ADS11158Hz860Hz之间采样。

单发模式

ADS1115的默认模式是单次模式,该模式下器件唤醒,进行测量然后返回睡眠状态。睡眠时,该芯片仅消耗0.5uA的典型電(diàn)流。由于设备在上電(diàn)时进入此模式,因此不会产生启动電(diàn)流的激增。

注意:命令界面在掉電(diàn)模式下仍处于活动状态,因此您仍然可(kě)以从芯片中获取数据!

该芯片和模式非常适合需要精确度的電(diàn)池供電(diàn)设备。由于超小(xiǎo)型封装(X2QFN)的尺寸仅為(wèi)2 mm x 1.5 mm x0.4毫米

性能(néng)与噪声之间的权衡

低速平均

如果以低速运行ADS1115,则内部采样率不会降低,因為(wèi)这是delta sigma转换器通过过采样操作的方式。内部振荡器设置為(wèi)1MHz,并降低至ADC时钟的250kHz

在活动模式下,将连续收集样本。这些样本在内部进行平均,从而改善了噪声性能(néng)。这也节省了您的处理(lǐ)时间,即您不必在微控制器中执行平均。

因此,如果要获得最佳的噪声性能(néng),请以8Hz(最低采样率)运行采样率。

低采样率的唯一缺点是设备必须连续开启,因此必须始终使用(yòng)電(diàn)源。如果您更关心节省功率,而又(yòu)不太担心噪声性能(néng),则可(kě)以实施突发模式操作。

高速Speed Burst模式

在微控制器的控制下,您可(kě)以实现突发模式以节省功耗。数据表建议您使用(yòng)连续模式下使用(yòng)功率的1/100。这样您就可(kě)以平均使用(yòng)1.5uA的電(diàn)流。

这类似于焦耳小(xiǎo)偷電(diàn)路,在该電(diàn)路中,存储在電(diàn)感器中的能(néng)量突发会在短时间内使LED产生脉冲。您可(kě)以获得足够的可(kě)用(yòng)光,但平均功率降低了。

為(wèi)了如上所述模拟8SPS速率,您将使ADS1115125ms1 / 125e-3 = 88 Hz拍摄一次单次信号(您可(kě)以通过微控制器代码中的计时器设置此重复率)。

您还可(kě)以将ADS1115SPS速率设置為(wèi)860Hz,以获得高速捕获。当然,您可(kě)以将两次捕获之间的时间间隔更改為(wèi)每秒(miǎo)或每小(xiǎo)时,以进一步节省電(diàn)量。

ADS1115处于低電(diàn)流模式时,单次读数仅需花(huā)费1.2ms的时间,剩下的时间就不存在了。这是ad1115转换延迟,并在数据表中进行了说明。

注意: ADS1115大约需要25us上電(diàn)-很(hěn)好!

使用(yòng)ALERT / READY引脚

ALERT / Ready引脚有(yǒu)两种用(yòng)途。第一个是比较器阈值警报(默认模式)。第二个是“ ADC读取准备就绪警报。您必须设置一些寄存器以操作ADC就绪ALERT模式。

阈值检测

ADS1115有(yǒu)一个内部比较器,可(kě)将信号输出到ALERT引脚(默认模式)。您可(kě)以使用(yòng)此功能(néng)自动检测超出范围的条件(由阈值寄存器设置)。COMP_QUE寄存器允许您指定断言警报之前有(yǒu)多(duō)少转换超出上限或下限。

ALERT引脚為(wèi)开漏引脚,因此需要上拉電(diàn)阻。

比较器有(yǒu)两个阈值(高和低)。当输入信号在阈值之间时,ALERT信号设置為(wèi)高電(diàn)平(窗口比较器模式)。您可(kě)以使用(yòng)COMP_POL反转Alert输出信号。

ADC就绪中断信号

该引脚的另一种用(yòng)途是用(yòng)作ADC就绪信号。如果将引脚设置為(wèi)ADC就绪信号,则可(kě)以将其馈入微控制器上的外部中断引脚,以便获取ADC读数。

检测ADC是否已完成的另一种方法是读取寄存器值(配置寄存器位15),但是由于要进行I2C事務(wù),因此这当然会花(huā)费更多(duō)的时间。

注意:转换就绪信号是一个8us宽(高)脉冲,表示转换在下降沿可(kě)用(yòng)。

要将芯片设置為(wèi)转换就绪模式,请设置以下寄存器:

将高阈值寄存器的MSB设置為(wèi)1
    [
例如,Hi_thresh = 0x8000]
将低阈值寄存器的MSB设置為(wèi)0
    [
例如,Lo_thresh = 0x0000]
将比较器队列控制位设置為(wèi)000x11以外的任何值)
    [
例如COMP_QUE [10] = 0]
   
配置寄存器&=配置寄存器0x0003; //清除b0b1

输入多(duō)路复用(yòng)器

您可(kě)以使用(yòng)输入多(duō)路复用(yòng)器在4个单端输入0FSR或两个差分(fēn)输入±FSR之间选择。但是,还有(yǒu)另一种MUX模式,该模式使用(yòng)AIN3作為(wèi)AIN0AIN1AIN2的参考作為(wèi)该参考的差分(fēn)输入。

您可(kě)以在下图的左侧看到MUX

从图中还不清楚,但是MUX具有(yǒu)3种模式:
输入信号参考地(所有(yǒu)4个输入都是可(kě)选的)
    AIN0
+)〜GND-),
    AIN1
+)〜GND-),
    AIN2
+) 〜GND-)。
    AIN3
+)〜GND-)。
两个差分(fēn)输入:
    AIN0
+)〜AIN1-),
    AIN2
+)〜AIN3-)。
三个参考输入:
    AIN0
+)〜AIN3-),
    AIN1
+)〜AIN3-),
    AIN2
+)〜AIN3-)。
请参见数据表配置寄存器以控制此操作。

PGA增益设定

ADS1115中的增益设置寄存器确实具有(yǒu)标准值,例如x2 x4等(除了最大的2/3值),更容易想到满量程读数的分(fēn)辨率和量程功能(néng)。数据表的排列方式是这样的-因為(wèi)该器件使用(yòng)内部固定的基准電(diàn)压源。

您只需要选择接近所测信号的最佳范围即可(kě)(或在前面添加一个放大器来设置范围)。

您不能(néng)像其他(tā)ADC一样通过添加外部基准電(diàn)压来更改FSR值。范围和分(fēn)辨率如下表所示。

满量程FSR

重塑(1 LSB

  ±6411毫伏

187.5uV

  ±4096毫伏

125uV

  ±2048毫伏

62.5微伏

  ±1024毫伏

31.25uV

  ±512毫伏

15.625uV

  ±256毫伏

7.8125微伏

满量程分(fēn)辨率

尽管ADS1115具有(yǒu)16位分(fēn)辨率,但它使用(yòng)二进制补码来表示一个值(MSB表示符号位)。这实际上是一个15位分(fēn)辨率的ADC,能(néng)够进行负電(diàn)压和正電(diàn)压测量(在GNDV DD的電(diàn)源范围内!

这样,从GND到正满量程電(diàn)压的输入信号就具有(yǒu)15位的分(fēn)辨率,而从GND到负满量程電(diàn)压的分(fēn)辨率则為(wèi)15位。但是,ADS1115只能(néng)测量低于地面的-300mV

当使用(yòng)差分(fēn)模式和電(diàn)平转换运算放大器将输入信号移至GDNV DD范围内时,才真正使用(yòng)±15bit分(fēn)辨率。有(yǒu)一个例外:

要获得±FSR,您可(kě)以使用(yòng)256mV范围,或使用(yòng)输入运算放大器来对输入进行電(diàn)平转换和缩放,或者使用(yòng)差分(fēn)输入)。或者,将一个输入用(yòng)作其他(tā)两个输入的参考。

注意:从上表中可(kě)以看到,15位分(fēn)辨率仍然是非常准确的分(fēn)辨率。

如上所述,可(kě)测量的输入電(diàn)压下降到负300mV

在最低PGA增益值下,您可(kě)以使用(yòng)器件的满量程分(fēn)辨率(±256mV),这也适合ADS1115-300mV测量能(néng)力。

因此,即使仅使用(yòng)单个電(diàn)源芯片,您也可(kě)以制造一种能(néng)够测量灌電(diàn)流和灌電(diàn)流的電(diàn)流测量设备。為(wèi)此,您将使用(yòng)合适的测量電(diàn)阻器并对其进行差分(fēn)测量。负電(diàn)压能(néng)力测试结果在这里。

选择较高的PGA增益仍然可(kě)以让您以较低的分(fēn)辨率测量负值。

关于PGA设置的注意事项

可(kě)编程增益设置寄存器(PGA)允许8个值,但最后3个值均提供相同的增益,因此对于PGA值為(wèi)567FSR為(wèi)256mV

因此,共有(yǒu)6种可(kě)用(yòng)设置,允许FSR分(fēn)别為(wèi)±6.144V±4.096V±2.048V±1.024V±0.512V±0.256V

输入電(diàn)压范围

绝对最大電(diàn)压输入為(wèi):

     -0.3V7V

测量電(diàn)压范围是:

    GND-0.3VVDD + 0.3V

请记住,测量范围是固定的,因此最大可(kě)测量输入電(diàn)压為(wèi)±6.144V

测试负電(diàn)压输入

我曾是 不确定是否可(kě)以测量负電(diàn)压,尤其是使用(yòng)ADS1115的单電(diàn)源供電(diàn)时。数据表确实表明它能(néng)够在-256mV的范围内进行测量,并且在-300mV以上的電(diàn)压下不会爆炸。

事实证明这是对的,因為(wèi)我通过将-5V電(diàn)源小(xiǎo)心地连接到10k電(diàn)位计并调整抽头(确保其不低于-300mV)来测试输入,其值是-100mV-260mV 

这是-260mV输入的结果:

A1-260.437mV PGA6144 mv acc187.5uV

A1-260.375mV PGA4096 mv acc125uV

A1-260.375mV PGA2048 mv acc62.5uV

A1-259.969mV PGA1024 mv acc31.25uV

A1-259.234mV PGA512 mv acc15.625uV

A1-256.016mV PGA256 mv acc7.8125uV

警报/ RDY 0

这是-100mV(大约)输入的结果:

A1-104.625mV PGA6144 mv acc187.5uV

A1-104.500mV PGA4096 mv acc125uV

A1-104.500mV PGA2048 mv acc62.5uV

A1-104.531mV PGA1024 mv acc31.25uV

A1-104.484mV PGA512 mv acc15.625uV

A1-104.499mV PGA256 mv acc7.8125uV

警报/ RDY 0

对于-260mV测量,您可(kě)以看到256mVFSR达到了满量程,这是您所期望的-这是针对256mVPGA增益设置(因為(wèi)260mV高于256mV的量程能(néng)力)。

您还可(kě)以看到,对于所有(yǒu)PGA增益,都正确测量了-100mV读数。

因此,这证实了ADS1115无需单独的電(diàn)源即可(kě)读取低至-256mV最小(xiǎo)测量能(néng)力的负電(diàn)压。

注意:此输出的ADS1115 arduino代码可(kě)在页面的下方找到。

ADS1115 ADC FSR

正输出的满量程值為(wèi):

        0x7FFF

负输出的满量程值為(wèi):

        0x8000

ADC的正值是0x0001,负值是0xFFFF(负20xFFFE)。

警告:对于单端测量,在测量0V时,由于器件失调,您仍然会获得负ADC值。

差速器怎么处理(lǐ)?

一种 差分(fēn)测量使用(yòng)两个输入,一个用(yòng)于低端,一个用(yòng)于高端電(diàn)压,因此您可(kě)以测量電(diàn)路中任何一点的電(diàn)压差。正常的单端测量(Ardiuno ADC)只能(néng)测量参考到地的電(diàn)压。

您可(kě)以具有(yǒu)一组差分(fēn)输入或一组差分(fēn)输入(如下所示):

两个差分(fēn)输入:
    AIN0
+)〜AIN1-),
    AIN2
+)〜AIN3-)。

其他(tā)配置在这里。

通常,您需要跨小(xiǎo)而准确的電(diàn)阻进行测量以确定電(diàn)流。ADS1115可(kě)以测量正负電(diàn)压。

差分(fēn)测量是通过使用(yòng)设备内的差分(fēn)放大器(运算放大器)实现的瞬时测量。此测量的最大优势在于,由于跨被测元件的噪声信号相同,因此消除了共模噪声误差。因此,噪声被减去。

使用(yòng)差分(fēn)测量的另一个原因是,您可(kě)能(néng)希望测量未参考到地的電(diàn)压,例如,電(diàn)流检测電(diàn)阻器未在一侧接地,而是在電(diàn)路中的其他(tā)位置。这就是所谓的高端测量,即两个测量電(diàn)压都遠(yuǎn)不接近零。

软件

Arduino IDE:版本1.8.9+

I2Cdev

I2Cdevlib具有(yǒu)ADS1115库代码以及许多(duō)其他(tā)设备的代码。

该库具有(yǒu)很(hěn)多(duō)功能(néng),受支持的芯片,并且可(kě)以在多(duō)个处理(lǐ)器上运行,但是安装涉及更多(duō)一点,因此您不能(néng)使用(yòng)自动Arduino zip文(wén)件安装程序。

ADS1115 Arduino

解压缩文(wén)件(ic2devlib-master),然后导航到ic2devlib-master中的Arduino目录。将目录ADS1115I2Cdev复制到Arduino库目录(通常在Windows上):

    C\ Users \ <用(yòng)户名> \ Documents \ Arduino \ libraries

库代码警告

256mV范围的常数已设置為(wèi)四舍五入的值。

导航至ADC1115.h并更改以下行:

    #define ADS1115_MV_0P256 0.007813
    #define ADS1115_MV_0P256B 0.007813
    #define ADS1115_MV_0P256C 0.007813

   

    #define ADS1115_MV_0P256 0.0078125
    #define ADS1115_MV_0P256B 0.0078125
    #define ADS1115_MV_0P256C 0.0078125

硬件

组件

Arduino Uno R3

ADS1115转接板。

连接線(xiàn)。

100nF電(diàn)容器。

1万锅。

连接数

為(wèi)了进行测试,请使用(yòng)Arduino Uno并按如下所示进行连接:

Arduino

ADS1115

  5

VDD

  地線(xiàn)

地線(xiàn)

  A5

SCL

  A4

SDA

  地線(xiàn)

地址

  2

警报

  10k锅的雨刷器。

A1

注意:将10k電(diàn)位器的两端连接到5VGND
5VGND之间连接100nF電(diàn)容器。 

ADS1115面包板布局

使用(yòng)ADS1115Arduino示例

草(cǎo)图示例1

您可(kě)以使用(yòng)以下程序通过轮询来测试ADS1115

要查看注册状态信息,请对ads1115.h进行编辑,以通过取消注释以下行来允许调试输出:

    //define ADS1115_SERIAL_DEBUG

在串行监视器中键入字母s以查看寄存器状态。

注意:我更改了pollAlertReadyPin()代码,以便在失败时重新(xīn)初始化ads1115。打开和关闭PC时,将重置寄存器,并将队列寄存器设置為(wèi)11:禁用(yòng)警报就绪引脚。现在,如果发生此错误,则芯片将正确重启。

复制草(cǎo)图

// I2C设备类(I2Cdev)演示ADS1115类的Arduino草(cǎo)图

//读取

ADS1115的两个差分(fēn)输入并以mV表示值的示例// // Eadf2016-03-22

//

//变更日志(zhì):

// 初始版本

//

//修改了JFM,以重新(xīn)初始化和输出多(duō)个PGA分(fēn)辨率,以便

//比较读数。同样,当调试处于活动状态时,串行接收's'

//输出寄存器值。

请输入搜索关键字

确定