ZHCAEH1A November 2019 – September 2024 ADS1018 , ADS1018-Q1 , ADS1118 , ADS1118-Q1
输入测量 | AINP 和 AINN 输入 | 数字输出 ADS1118 |
---|---|---|
PGA[2:0] = 000,FSR = ±6.144V | 0V 至 5V |
-26667 至 26667 97D5h 至 682Bh |
VDD | GND | |
---|---|---|
5V | 0V |
许多应用要求在尽可能小的空间内进行大量测量。本电路文档介绍了一个 8 通道测量系统,该系统使用四个带串行外设接口 (SPI) 的超小型 ADS1118 器件。这些器件具有精确的内部电压基准,可作为 16 位差分模数转换器 (ADC) 针对多个输入范围进行编程。系统中的 ADC 高度可配置,可针对不同的数据速率和电压范围进行配置,甚至可用于警报功能。此外,所有模拟输入均可单独配置,从而打造一个具有单端输入测量功能的 16 通道测量系统。ADS1118 采用超小型 1.5mm × 2.0mm X2QFN 封装,在电路板上占用的空间非常小。此电路可用于 PLC 模拟输入模块、实验室仪表 和工厂自动化 等应用。
此电路使用四个多路复用的 ADS1118 ADC 来测量八个不同的通道。为此,四个器件必须使用不同的 CS 线路,每个器件的 CS 线路各不相同。其余的 SPI 线路(DIN、DOUT/DRDY 和 SCLK)与所有器件共享。
ADS1118 ADC 具有一个多路复用器,用于测量多个通道。在此设计中,系统会循环使用每个器件的每个模拟输入。虽然可以进行单端测量,但图中显示,该系统通过循环使用所有模拟输入来进行差分测量。
可通过下表所示的配置寄存器来配置器件。在配置寄存器中,MUX[2:0] 为 ADC 选择 AINP 和 AINN 节点,并设置每个器件的输入通道。下表中的设置展示了差分测量的设置。如 ADS1118 数据表中所示,可以使用设置 MUX[2:0] = 100 至 111 来进行单端测量。
输入测量 | ADC 输入 | 器件输入选择 |
---|---|---|
通道 1 | MUX[2:0] = 000 | AINP = AIN0,AINN = AIN1 |
通道 2 | MUX[2:0] = 011 | AINP = AIN2,AINN = AIN3 |
循环使用器件的全部四个通道后,系统会选择下一个器件并重复该循环。
ADS1118 器件具有用于精确测量的内部基准和可扩展的测量增益。在本电路文档中,显示的测量值均为差分值。当 AINN 高于 AINP 时,测量值为负。可选择单端测量。但由于 ADS1118 器件是用作差分测量的 16 位 ADC,因此单端测量只有 15 位分辨率。
ADS1118 ADC 可设置为 FSR(满标量程)的六种设置之一。这相当于在 ADC 前端安装了一个可编程增益放大器。配置寄存器的 FSR[2:0] 位的设置范围为 ±0.256V 至 ±6.144V。如前所述,即使 FSR 设置为大于 VDD 的电压,ADC 模拟输入的工作范围也介于大地和 VDD 之间。例如,当 FSR 设置为 ±6.144V 且 VDD 设置为 5V 时,模拟输入限制为 0V 至 5V。
FSR 设置允许进行各种不同的测量,从温度传感器或电流采样电阻等小电压测量,到无需分压器即可测量自身电源的较大电压测量 ADC。ADS1118 FSR 的设置如下表所示。
输入测量 | AINN 和 AINP 输入 | 数字输出 ADS1118 |
---|---|---|
PGA[2:0] = 000,FSR = ±6.144V | 0V 至 5V | 97D5h 至 682Bh |
PGA[2:0] = 001,FSR = ±4.096V | 0V 至 4.096V | 8000h 至 7FFFh |
PGA[2:0] = 010,FSR = ±2.048V | 0V 至 2.048V | 8000h 至 7FFFh |
PGA[2:0] = 011,FSR = ±1.024V | 0V 至 1.024V | 8000h 至 7FFFh |
PGA[2:0] = 100,FSR = ±0.512V | 0V 至 0.512V | 8000h 至 7FFFh |
PGA[2:0] = 101–111,FSR = ±0.256V | 0V 至 0.256V | 8000h 至 7FFFh |
作为差分测量,当 AINN 输入高于 AINP 输入时,ADC 会报告负值。用二进制补码表示法报告负值结果。
可根据器件内部振荡器将 ADS1118 ADC 配置为八种数据速率之一。此数据速率具有 ±10% 的容差。数据速率由 DR[2:0] 位设置,如下表所示。
数据速率设置 | 数据速率 |
---|---|
DR[2:0] = 000 | 8SPS |
DR[2:0] = 001 | 16SPS |
DR[2:0] = 010 | 32SPS |
DR[2:0] = 011 | 64SPS |
DR[2:0] = 100 | 128SPS |
DR[2:0] = 101 | 250SPS |
DR[2:0] = 110 | 475SPS |
DR[2:0] = 111 | 860SPS |
所选数据速率为 128SPS,这是 ADS1118 ADC 的默认设置。该数据速率是可用的最快速率,对于所有 FSR 设置,可提供优于一个 LSB 的噪声性能。
配置寄存器会设置 ADC 的操作模式和配置。配置包括前面各节中描述的所有设置。在 16 个位之间使用九个字段来配置器件。下表显示了配置寄存器字段描述以及位名称和位置、读写用法和复位值。
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
---|---|---|---|---|---|---|---|
SS | MUX[2:0] | PGA[2:0] | 模式 | ||||
R/W-1h | R/W-0h | R/W-2h | R/W-1h | ||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DR[2:0] | TS_MODE | PULL_UP_EN | NOP[1:0] | 保留 | |||
R/W-4h | R/W-0h | R/W-0h | R/W-0h | R-1h |
SS 位启动单冲转换。MUX[2:0] 位将输入多路复用器设置为循环执行不同的测量。MODE 位会将器件设置为单冲转换模式。DR[2:0] 位会设置器件的数据速率。其余字段用于本设计中未使用的 ADC 比较器设置。有关配置寄存器的详细信息,请参阅 ADS1118 具有内部基准和温度传感器且兼容 SPI 的超小型、低功耗 16 位 ADC 数据表。
例如,一个 ADC 设置为使用连接到 VDD 的 AIN0 测量其自身的接地电源。FSR 设为 ±6.144V,数据速率为 128SPS。下表展示了配置寄存器字段的设置。
位 | 字段 | 设置 | 说明 |
---|---|---|---|
15 | OS | 1 | 开始转换 |
14:12 | MUX[2:0] | 000 | 差分输入测量,AINP – AINN = AIN0 – AIN1,选择第一个通道 |
11:9 | PGA[2:0] | 000 | FSR = ±6.144V,将 ADC 设置为能够测量 0V 至 VDD 的整个电源范围 |
9 | 模式 | 1 | 单冲转换模式下的运行 |
7:5 | DR[2:0] | 100 | 数据速率 = 128SPS |
4 | TS_MODE | 0 | 测量模拟输入,而不是温度传感器 |
3 | PULL_UP_EN | 0 | 禁用 DOUT/DRDY 上的内部上拉电阻器 |
2:1 | NOP[1:0] | 01 | 将 01 写入这些位,以确保器件写入配置寄存器 |
0 | 保留 | 1 | 始终向该位写入 1 |
结合字段描述中的这些位,配置寄存器值为 1000 0001 1000 0011 或 8183h。
若要循环使用 ADS1115 系统的每个通道,需逐一启动每个通道的转换过程,等待转换完成,然后读回数据。然后,开始下个通道的转换过程。在移动到下一个 ADC 之前,对两个差分输入通道重复每次测量。对系统中的所有四个 ADC 重复此测量,即可循环使用所有通道。
使用关联的 CS 线路与器件进行通信。四个器件均有自己的 CS 线路用于启用 SPI。带配置寄存器读回功能的 32 位数据传输周期可用于启动转换。下图展示了该通信。
对于这种方法,使用了 32 个 SCLK。通信是全双工的,这意味着数据在从器件时钟输出的同时,也会时钟输入到器件中。写入配置寄存器后,器件开始新的转换。
在写入配置寄存器时,32 个 SCLK 会在 DOUT/DRDY 上时钟输出数据。前 16 位时钟输出上一次转换的数据,后 16 位时钟输出配置寄存器的内容并验证新的配置寄存器写入。
然后,主器件等待转换完成。在本示例中,ADS1118 器件设置为默认数据速率 128SPS。该器件使用内部振荡器,因此数据速率存在一些变化。为确保在 ADC 完成转换后读取器件,微控制器需等待转换完成所需的最长时间。该等待时间是标称数据周期加上 10%(用以补偿器件的内部振荡器变化)。对于每次单冲转换,ADC 唤醒时间都额外增加 20µs。使用以下公式计算总等待时间。
例如,如果器件以 128SPS 运行,则标称数据周期为 7.82ms。所需的等待时间为:
可以通过监控 DOUT/DRDY 线路来读取数据,而无需像之前计算的那样等待这一最长时间。完成转换后,DOUT/DRDY 由高电平转换为低电平。该转换可用作中断,指示数据已就绪,可从器件时钟输出。32 位数据传输周期使监控 DOUT/DRDY 更容易。通过读回配置寄存器,DOUT/DRDY 在传输周期结束时被强制为高电平。这样就很容易找到从高电平到低电平的转换。如果 DOUT/DRDY 为低电平,则数据就绪指示为窄 8µs 脉冲。
输入电压的转换基于 ADC 的满标量程 (FSR) 设置。FSR 由配置寄存器中的 PGA[2:0] 位进行设置。
用二进制补码表示法报告负读数。例如,十进制中的 –1 报告为 FFFFh,负满标量程读数报告为 8000h。
如前所述,16 位 ADS1118 ADC 可替换为 12 位 ADS1018 ADC。对于这些器件,数据格式为 12 位,右侧填充了四位零。满标量程读数为 7FFh,从 DOUT/DRDY 读取时为 7FF0h。
ADS1118 器件还有一个可随时测量的板载精密温度传感器。有关温度转换的详细信息,请参阅 ADS1118 数据表。
以下伪代码序列显示了从四个器件的每个通道设置转换并在每次转换后收集数据所需的步骤。它还包括连接到 ADC 的微控制器的设置。
对于每个通道,微控制器同时设置 ADC 配置并启动转换。微控制器会等待转换完成,等待足够的时间以完成转换以及内部振荡器频率的任何变化。然后从转换寄存器中读取数据。继续循环使用每个器件的每个通道。该设置假设采用之前的配置,转换等待时间的数据速率设置为 128SPS。
Configure the SPI interface of the microcontroller to SPI mode 1 (CPOL = 0, CPHA =1);
Conversions from two channels of device 1:
{
Set CS1 to the device low;
Send 32 SCLKs, Write 8183h, 0000h; // start conversion Channel 1, AIN0-AIN1
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 32 SCLKs, Write B183h, 0000h; // start conversion Channel 2, AIN2-AIN3, Read Channel 1
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 16 SCLKs; // read Channel 2
Set CS1 to the device high;
}
Conversions from two channels of device 2:
{
Set CS2 to the device low;
Send 32 SCLKs, Write 8183h, 0000h; // start conversion Channel 3, AIN0-AIN1
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 32 SCLKs, Write B183h, 0000h; // start conversion Channel 4, AIN2-AIN3, Read Channel 3
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 16 SCLKs; // read Channel 4
Set CS2 to the device high;
}
Conversions from two channels of device 3:
{
Set CS3 to the device low;
Send 32 SCLKs, Write 8183h, 0000h; // start conversion Channel 5, AIN0-AIN1
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 32 SCLKs, Write B183h, 0000h; // start conversion Channel 6, AIN2-AIN3, Read Channel 5
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 16 SCLKs; // read Channel 6
Set CS3 to the device high;
}
Conversions from two channels of device 4:
{
Set CS4 to the device low;
Send 32 SCLKs, Write 8183h, 0000h; // start conversion Channel 7, AIN0-AIN1
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 32 SCLKs, Write B183h, 0000h; // start conversion Channel 8, AIN2-AIN3, Read Channel 7
Wait 8.62ms or for the DOUT/DRDY line to return low
Send 16 SCLKs; // read Channel 8
Set CS4 to the device high;
}
下图展示了四个 ADS1118 器件之一的示例布局。使用 0402 电阻器和电容器添加差分 RC 输入滤波。生成的布局约为 280mil × 340mil。
器件 | 主要特性 | 链路 | 其他可能的器件 |
---|---|---|---|
ADS1118 | ADS1118 具有内部基准、振荡器和温度传感器且兼容 SPI 的超小型、低功耗、16 位 ADC | 具有 PGA、振荡器、基准电压、温度传感器和 SPI 的 16 位、860SPS、4 通道 Δ-Σ ADC |