ADS1115-Q1高精度ADC应用全解:从寄存器配置到低侧电流测量实战

ADS1115-Q1高精度ADC应用全解:从寄存器配置到低侧电流测量实战 1. 项目概述从芯片手册到实战应用如果你正在为一个需要精确测量微小电压或电流的项目选型ADC或者已经拿到了TI的ADS1115-Q1这颗芯片却对着一堆寄存器配置和外围电路设计感到无从下手那么这篇指南就是为你准备的。我花了相当长的时间在多个电池管理系统BMS和精密传感器采集项目中反复使用ADS111x-Q1系列从最初的照搬参考设计到后来能根据具体需求优化每一个参数踩过不少坑也积累了一些数据手册上不会写的实战经验。ADS1115-Q1及其兄弟型号ADS1113/4-Q1的核心价值在于它在一个小封装里集成了一个16位高精度Δ-Σ ADC、一个可编程增益放大器PGA、一个内部基准和一个I2C接口。这意味着你不需要再外置一堆运放和基准源就能直接测量从±256mV到±6.144V的差分信号分辨率最高能达到187.5μV。这对于测量热电偶、压力传感器、或者像我们这次重点讨论的、基于分流电阻的电流检测应用来说是极具吸引力的。但它的强大也带来了复杂性PGA增益、数据速率、工作模式、比较器阈值等都需要通过配置寄存器来设定任何一个参数设置不当都可能导致测量结果飘忽不定甚至完全错误。本文将不会停留在简单翻译数据手册。我会以一个具体的“低侧双向电流监测”电路为蓝本带你彻底拆解ADS1115-Q1的应用。从最基础的I2C通信时序和寄存器配置开始深入到比较器阈值寄存器的妙用再到外围模拟电路运放、滤波、电阻网络的每一个元件选型计算最后结合PCB布局的实战经验形成一个完整、可复现的设计闭环。你会发现把一个高精度ADC用对、用好远不止是接上I2C读数据那么简单。2. 核心功能与寄存器深度解析要驾驭ADS1115-Q1首先必须吃透它的几个核心功能模块而这一切都通过内部的寄存器来控制。芯片上电后默认处于关断状态你必须通过I2C正确配置它才会开始工作。2.1 配置寄存器设定ADC的“工作节奏”配置寄存器地址0x01是芯片的大脑。你可以把它想象成一个多功能遥控器所有关键参数都在这里设置。操作模式MODE位这是第一个关键选择。单次转换模式MODE1下ADC完成一次转换后会自动关断功耗极低适用于电池供电、间歇采样的场景。连续转换模式MODE0下ADC会不停地进行转换更新数据寄存器适用于需要实时监控的场景。我的经验是在绝大多数电流监测应用中如果采样率要求不高比如每秒几次强烈建议使用单次模式。我实测过在单次模式、8SPS下芯片平均电流可以降到10μA以下这对于长期运行的设备至关重要。数据速率DR[2:0]这个参数决定了ADC的“采样速度”从8SPS到860SPS可选。速度越快噪声一般会略微增加。这里有一个非常重要的“坑”数据手册中的输出数据速率如128SPS指的是转换结果的输出频率但Δ-Σ ADC内部有一个更高的调制器频率。根据奈奎斯特采样定理你需要确保输入信号中的高频噪声特别是可能混叠回带内的噪声被有效抑制。例如当DR128SPS时其对应的调制器频率约为128Hz。任何接近128Hz整数倍的干扰信号如电源的50/60Hz谐波如果没有被前端模拟滤波器充分衰减就会混叠到低频段污染你的测量结果。因此DR的选择必须与前端RC滤波器的截止频率协同设计后文会详细计算。可编程增益放大器PGA[2:0]这是实现高精度测量微小信号的关键。PGA增益可选1、2、4、8、16。假设你的分流电阻压降最大为±50mV那么选择PGA16FSR±256mV可以将ADC的量程充分利用获得最高的有效分辨率。这里有一个必须牢记的要点PGA的设置直接影响比较器阈值寄存器的实际电压值阈值寄存器里存储的是数字码其对应的电压值 (寄存器值 * FSR) / 32768。如果你改变了PGA即改变了FSR你必须重新计算并更新阈值寄存器否则比较点就全错了。2.2 比较器与阈值寄存器超越简单ADC的智能功能ADS1115/4-Q1内置的数字比较器是一个被严重低估的实用功能。它让ADC具备了“硬件报警”能力可以极大减轻MCU的轮询负担。Lo_thresh和Hi_thresh寄存器这两个16位寄存器地址0x02和0x03存储了比较器的下限和上限阈值数据格式为二进制补码。比较器会持续将最新的转换结果与这两个阈值进行比较。规则很简单必须保证Hi_thresh寄存器的值大于Lo_thresh的值否则比较器功能会行为异常。两种工作模式这是比较器最巧妙的设计。传统比较器模式当ALERT/RDY引脚配置为报警输出时通过配置寄存器的COMP_MODE和COMP_POL位设置转换结果一旦超过Hi_thresh或低于Lo_threshALERT/RDY引脚就会触发拉高或拉低取决于极性设置。这个信号可以直接连接到MCU的中断引脚。想象一下你监测的电流一旦过流硬件立即报警MCU无需频繁读取ADC值可以继续处理其他任务直到中断发生。这在多任务系统中能节省大量CPU资源。转换就绪RDY模式这是一个更常用的“隐藏技能”。将Hi_thresh寄存器的最高位bit 15设置为1同时将Lo_thresh寄存器的最高位设置为0即可启用此模式。在此模式下ALERT/RDY引脚的功能变为“转换就绪”指示。在单次转换模式下每次启动一次转换向配置寄存器的OS位写1后转换完成时ALERT/RDY引脚会输出一个脉冲具体极性可配置。你可以利用这个脉冲作为MCU的中断信号通知MCU数据已就绪可以读取了。这实现了高效的“单次转换-中断读取”流程。在连续转换模式下该引脚会输出一个周期性的脉冲其频率等于你设置的数据速率DR。这可以作为系统内一个精准的低频时钟源或者用于同步其他操作。实操心得在复杂的系统中我强烈推荐使用RDY模式配合单次转换。它避免了MCU盲目轮询或依赖软件延时实现了功耗与响应速度的最佳平衡。配置起来也简单只需按照上述规则设置两个阈值寄存器的高位即可具体的阈值数值在RDY模式下不会被比较器使用可以任意填写但仍需满足HiLo。2.3 数据寄存器与指针寄存器转换结果存储在16位的转换寄存器地址0x00中格式同样是二进制补码。读取时先读高字节再读低字节。地址指针寄存器地址0x00但这是一个“虚拟”寄存器通过I2C通信中的第二个字节指定用于告诉ADC你接下来想读或写哪个寄存器。这是一个容易出错的地方每次进行写操作比如配置寄存器时你发送的序列是[设备地址写位]、[指针字节]、[数据高字节]、[数据低字节]。而进行读操作时通常需要两步先写入指针字节设置目标寄存器地址再发起读操作。数据手册中的“Quick-Start Guide”部分给出了清晰的示例。3. 低侧电流测量系统设计全解现在我们进入实战以数据手册图9-6的“低侧分流器电流监测”电路为例从头到尾设计一个测量系统。我们的目标是测量一个负载上的双向电流范围是±50A使用一个1mΩ的分流电阻期望系统精度优于0.5%。3.1 系统架构与需求分析低侧测量的优势在于分流电阻一端接地其共模电压接近0V简化了运放选型。但被测电流可能双向流动意味着分流电阻两端的电压V_SHUNT会在±50mV之间变化50A * 1mΩ。ADS1115的输入要求是正电压相对于其GND所以我们需要一个电路能将-50mV ~ 50mV的信号平移并放大到ADC的最佳输入范围内。设计指标量化电源电压 (VDD)5V为运放和ADC供电分流电压 (V_SHUNT)±50 mV目标ADC输入电压我们希望充分利用ADC的量程以获得最高分辨率同时留有一定余量。选择PGA16此时ADC的满量程输入FSR为±256mV。因此目标是将±50mV放大到略小于±256mV例如±250mV。所需运放增益AA 250mV / 50mV 5 V/V。共模电压V_CM为了给双向信号提供平移我们需要一个中间的共模电压。通常选择电源中点即V_CM VDD / 2 2.5V。这样当V_SHUNT0时运放输出也是2.5V正好是ADC差分输入的中点。3.2 运放电路设计与计算电路采用了一个同相求和放大器架构本质上是差分放大器的一种变形使用TI的零漂移运放OPA333-Q1。它的超低失调电压和温漂对保证系统精度至关重要。电路传递函数推导 参考数据手册中的公式但我们需要理解其物理意义。运放正输入端电压V_INX由V_CM和V_SHUNT通过电阻R3和R4分压求和得到V_INX (V_CM * R3 V_SHUNT * R4) / (R3 R4)然后运放以同相放大器的形式放大V_INXV_OUT V_INX * (1 R2 / R1)最终ADC测量的是V_OUT与V_CM之间的差分电压V_DIFF V_OUT - V_CM。我们的目标是让V_DIFF V_SHUNT * AA5并且当V_SHUNT0时V_DIFF0。将目标代入公式推导可以得出一个关键结论为了消除共模电压V_CM带来的误差必须匹配电阻对即令R1 R4 R2 R3。此时公式简化为V_DIFF V_SHUNT * (1 R2/R1) / (1 R4/R3)由于R1R4, R2R3所以(1 R2/R1) (1 R4/R3)因此V_DIFF V_SHUNT * (1 R2/R1)这正是我们想要的增益A 1 R2/R1。电阻选型计算 我们设定增益A5即1 R2/R1 5R2/R1 4。选择R1R1和R3R3R2/4的阻值需要权衡。阻值太大会引入较大的约翰逊噪声并增加对运放输入偏置电流的敏感度阻值太小则会从信号源分流电阻抽取更多电流导致测量误差同时也会增加运放的输出负载。通常选择千欧姆级别。这里我们选择R1 1.0 kΩ精度1%温漂25ppm/°C。计算R2R2 4 * R1 4.0 kΩ。为方便采购选择标准值R2 4.02 kΩ精度1%温漂25ppm/°C。确定R3和R4根据匹配原则R3 R2 4.02 kΩ,R4 R1 1.0 kΩ。至此运放级设计完成。当V_SHUNT 50mV时V_DIFF 250mV当V_SHUNT -50mV时V_DIFF -250mV。运放输出V_OUT则在2.25V到2.75V之间摆动始终在电源轨内确保了线性度。3.3 ADC前端滤波电路设计模拟输入滤波是高精度ADC应用不可或缺的一环主要目的有两个抗混叠和抑制高频噪声。差分RC滤波器设计 在运放输出V_OUT和ADC正输入AINP之间以及V_CM和ADC负输入AINN之间我们各串联一个电阻R5和R6同时在AINP和AINN之间连接一个差分电容C_DIFF。这就构成了一个差分低通滤波器。电阻R5, R6的选择这两个电阻会与ADC的输入开关电容产生分压引起增益误差。ADS1115的输入阻抗在采样期间是动态变化的但为了最小化误差建议将这两个电阻控制在100Ω到1kΩ之间。我们选择R5 R6 100Ω精度1%。它们还能起到限流作用保护ADC输入。差分电容C_DIFF的计算该滤波器与两个对地的共模电容C_CM1、C_CM2共同工作。为了优先抑制差分噪声C_DIFF应至少比C_CM大10倍。我们选择C_CM1 C_CM2 0.022 µFC0G/NPO材质则C_DIFF 0.22 µFC0G/NPO材质。截止频率计算差分滤波器的-3dB截止频率 f_c_diff 1 / (2π * (R5R6) * C_DIFF) 1 / (2 * 3.14 * 200Ω * 0.22e-6 F) ≈ 3.6 kHz。为什么是3.6kHz这需要与ADC的数据速率DR协同考虑。假设我们选择DR128SPS其调制器频率f_MOD约为128Hz。根据奈奎斯特我们需要抑制所有高于64Hz的频率。虽然Δ-Σ ADC的数字滤波器本身对高频有衰减参见数据手册图6-21的滤波器响应但为了可靠地抑制可能存在的、频率在f_MOD整数倍附近的强干扰比如开关电源噪声一个截止频率在10倍f_MOD左右即~1.28kHz或更高的模拟滤波器是必要的。我们设计的3.6kHz滤波器既能有效衰减大多数高频噪声和可能的混叠分量又不会因为截止频率过低而引入过大的相移或影响信号建立时间。3.4 噪声分析与精度估算系统的总噪声决定了测量的分辨率和稳定性。总输入参考噪声v_N主要来自三部分电阻热噪声、运放噪声和ADC噪声。电阻热噪声主要来自R1和R3R2和R4的噪声被增益衰减。其噪声功率密度为4kTR。在带宽BW内噪声电压有效值v_n_res √(4kTR * BW)。k是玻尔兹曼常数T是绝对温度。我们需要估算系统的噪声带宽通常可以近似为模拟滤波器的截止频率3.6kHz和数字滤波器等效噪声带宽的综合效应粗略估算可按10kHz计算。计算可得v_n_res在微伏级别。运放噪声OPA333-Q1的电压噪声密度很低约1.1μV/√Hz。在10kHz带宽下积分噪声约为11μV RMS。ADC噪声ADS1115在PGA16, DR128SPS时的输入参考噪声典型值约为7μV RMS。由于运放增益为5ADC的噪声贡献折算到输入端需要除以5约为1.4μV RMS。将这三部分噪声按平方和开根的方式叠加得到总输入参考噪声v_N大约在十几微伏RMS的量级。对于±50mV的满量程信号这相当于有效分辨率远高于16位说明我们的设计在噪声层面是充裕的。精度估算系统的总误差包括增益误差运放增益误差、电阻分压比误差、ADC增益误差。偏移误差运放输入失调电压、ADC输入失调电压。非线性误差运放和ADC的非线性。温漂所有上述误差随温度的变化。使用1%精度的电阻仅电阻带来的增益误差就可能达到2%。这就是为什么高精度应用必须使用0.1%甚至更高精度的电阻或者通过系统校准来消除。数据手册图9-8的曲线清晰地展示了这一点使用1%电阻时总误差接近2%而排除电阻误差后误差迅速下降到0.2%以内。因此在PCB焊接后进行一点零点和两点零点与满量程校准是达到最佳精度的必由之路。4. 软件驱动与寄存器配置实战硬件设计好了下一步就是让MCU通过I2C与ADS1115正确对话。下面以常见的单次转换、RDY模式、读取数据的流程为例给出具体的代码逻辑和寄存器配置值。4.1 初始化与配置流程假设我们使用STM32的HAL库I2C设备地址为0x48ADDR引脚接地。// 定义ADS1115寄存器地址 #define ADS1115_REG_CONVERSION 0x00 #define ADS1115_REG_CONFIG 0x01 #define ADS1115_REG_LO_THRESH 0x02 #define ADS1115_REG_HI_THRESH 0x03 // 配置寄存器值计算示例单次转换PGA±256mVDR128SPS // 单次转换模式AINPAIN0, AINNGND (单端输入) // COMP_QUE0x03 (Disable comparator, 我们准备用RDY模式) uint16_t config_value 0; config_value | (0x01 15); // OS: 写1启动单次转换初始化时 config_value | (0x00 12); // MUX: 000 AINP AIN0, AINN GND config_value | (0x02 9); // PGA: 010 FSR ±2.048V? 等等这里需要是±0.256V // 注意PGA[2:0] 010 对应的是FSR±2.048V。我们需要±0.256V对应PGA16即PGA[2:0] 111。 config_value | (0x03 9); // PGA: 111 FSR ±0.256V (Gain16) config_value | (0x01 8); // MODE: 1 单次转换模式 config_value | (0x04 5); // DR: 100 128 SPS config_value | (0x03 0); // COMP_QUE: 11 禁用比较器将ALERT/RDY引脚释放为RDY功能 // 设置阈值寄存器以启用RDY模式 // Hi_thresh MSB 1, Lo_thresh MSB 0 uint16_t hi_thresh_value 0x8000; // 0x8000 二进制 1000 0000 0000 0000 uint16_t lo_thresh_value 0x0000; // 0x0000 二进制 0000 0000 0000 0000 // 注意在RDY模式下具体的阈值数值不重要只要HiLo即可。这里设Hi为正最大值Lo为0。配置顺序写入Hi_thresh寄存器 (0x03) 值为 0x8000。写入Lo_thresh寄存器 (0x02) 值为 0x0000。写入Config寄存器 (0x01) 值为计算好的config_value。注意向Config寄存器的OS位写1的同时也启动了第一次单次转换。4.2 单次转换与数据读取流程配置完成后后续的测量流程如下// 1. 启动一次新的单次转换 uint16_t start_conv_cfg config_value; start_conv_cfg | (0x01 15); // 确保OS位为1 ads1115_write_register(ADS1115_REG_CONFIG, start_conv_cfg); // 2. 等待转换完成两种方式 // 方式一延时等待。最坏情况下的转换时间 1/DR 少许裕量。对于128SPS约8ms。 // HAL_Delay(10); // 简单但低效 // 方式二推荐轮询配置寄存器的OS位或使用ALERT/RDY引脚中断。 // OS位在转换进行中为0转换完成后变为1。 uint16_t cfg_status; do { cfg_status ads1115_read_register(ADS1115_REG_CONFIG); } while ((cfg_status 0x8000) 0); // 等待OS位变为1 // 或者如果已将ALERT/RDY引脚连接到MCU中断引脚并配置为RDY模式 // 则可以在启动转换后进入低功耗模式等待引脚中断唤醒。 // 3. 读取转换结果 uint16_t raw_data ads1115_read_register(ADS1115_REG_CONVERSION); // raw_data是16位有符号整数二进制补码 // 4. 将原始数据转换为电压值 // FSR ±0.256V, PGA Gain 16 // LSB大小 (0.256 * 2) / 32768 0.000015625 V 15.625 μV float voltage (int16_t)raw_data * 0.000015625f; // 单位伏特 // 如果配置的是单端输入AIN0对GND此电压即为AIN0的电压。 // 如果配置的是差分输入如AIN0对AIN1此电压即为(AIN0 - AIN1)的差值。4.3 多设备I2C地址管理ADS1115的ADDR引脚可以连接到GND、VDD、SCL或SDA从而提供4个不同的I2C地址0x48, 0x49, 0x4A, 0x4B。这在需要多个ADC的系统中非常有用例如同时监测多路电流或电压。布局建议在PCB上为每个ADS1115的ADDR引脚预留一个4位的跳线或0Ω电阻位方便灵活配置地址。特别注意如果选择将ADDR连接到SDA数据手册要求“在SCL线变低后SDA线必须保持低电平至少100ns”以确保地址正确解码。这通常由MCU的I2C硬件时序保证但若使用GPIO模拟I2C则需要特别注意时序。5. PCB布局与接地艺术对于高精度测量PCB布局和接地的重要性不亚于电路设计本身。糟糕的布局可能让之前所有的精心计算功亏一篑。5.1 分区与布线核心原则模拟与数字隔离这是铁律。将PCB划分为模拟区域和数字区域。ADS1115、运放、滤波电容、精密电阻、模拟电源稳压器属于模拟区。MCU、数字逻辑、开关电源、通信接口属于数字区。两个区域之间用一条“壕沟”无铜区域进行隔离仅在一点通常是电源地入口点或ADC芯片下方用磁珠或0Ω电阻单点连接。地平面处理在模拟区域下方保持一个完整、连续的接地铜层。避免用地平面连接模拟和数字部分更不要在模拟地平面上去布数字信号的走线。电流总是选择阻抗最低的路径回流一个完整的地平面为模拟信号提供了清晰的回流路径减少了环路面积和天线效应。电源去耦每个IC的电源引脚附近都必须放置去耦电容。对于ADS1115和OPA333将0.1μF的陶瓷电容X7R或X5R尽可能靠近其VDD引脚放置并用短而粗的走线直接连接到引脚和地平面。避免在电容和芯片引脚之间使用过孔。对于更高频的噪声可以并联一个更小的电容如10nF。信号走线差分对走线对于运放输出到ADC输入的差分线V_OUT到AINP V_CM到AINN应保持平行、等长、等距并尽量靠近。这有助于抑制共模噪声。敏感模拟走线运放输入端、分流电阻连接到运放的走线应尽量短。避免这些走线靠近或平行于时钟线、数字信号线、电源开关节点等噪声源。Kelvin连接对于分流电阻务必使用四线开尔文连接。两条“力线”承载大电流两条“感线”单独、精细地连接到运放输入端直接在电阻焊盘上引出。这可以消除连接导线电阻带来的测量误差。5.2 针对ADS1115的布局细节参考数据手册的布局示例图图9-11 9-12有几个关键点旁路电容位置那个0.1μF的VDD去耦电容必须放在芯片的VDD和GND引脚之间且连线最短。理想情况是放在芯片同一面的相邻位置。模拟输入引脚AIN0/AIN1 AIN2/AIN3是相邻的差分对。在布局时优先使用相邻的通道进行差分测量以获得更好的匹配性和共模抑制比。滤波元件布局RC滤波器的电阻R5 R6和电容C_DIFF C_CM应紧靠ADC的输入引脚放置。C_DIFF应直接跨接在AINP和AINN的焊盘之间。I2C走线SCL和SDA线虽然是数字信号但连接到模拟区域的ADC。它们应作为一对走线尽量短并远离敏感的模拟输入线。上拉电阻应放置在数字区域或连接器附近。6. 调试、校准与故障排查即使设计再完美第一次上电也可能遇到问题。以下是一些常见的调试步骤和故障点。6.1 上电基础检查电源与通信首先用万用表确认VDD为5V或你的设计电压GND连接良好。用逻辑分析仪或示波器抓取I2C总线波形确认MCU能正确发出设备地址0x48并收到ACK。如果收不到ACK检查I2C地址配置、上拉电阻通常4.7kΩ-10kΩ、以及SDA/SCL线是否接反。寄存器读写测试编写一个简单的测试函数尝试写入配置寄存器然后立刻读回。如果读回的值与写入的一致说明基本通信和芯片功能正常。如果不一致检查I2C时序特别是启动、停止、ACK条件是否符合ADS1115的要求它不支持时钟拉伸。6.2 模拟信号链检查静态工作点不接入输入信号将运放输入端短接测量运放输出V_OUT和共模电压V_CM。理论上V_OUT应等于V_CM2.5V。如果偏差较大超过运放失调电压的增益倍检查电阻匹配度R1/R4 R2/R3和焊接。信号注入使用一个精密的电压源或电位器在分流电阻位置注入一个已知的小电压如10mV。测量运放输出计算实际增益是否与设计值5倍相符。用高精度万用表测量ADC输入引脚AINP和AINN之间的差分电压。ADC原始数据读取读取转换寄存器的原始值。根据输入电压和PGA设置手动计算预期的数字码。预期码 (输入电压 / FSR) * 32768。比较实际读数和预期值。如果存在固定的偏移可能是运放或ADC的失调电压如果增益不对可能是电阻误差或PGA配置错误。6.3 系统校准如前所述使用1%的电阻系统误差可能达到1-2%。要进行校准零点校准将输入短路V_SHUNT0读取此时ADC的输出码记为Offset_Code。这个值就是系统的零点误差。满量程校准施加一个精确的、接近满量程的正向输入电压如45mV读取输出码记为Positive_FS_Code。施加一个精确的负向满量程电压如-45mV读取输出码记为Negative_FS_Code。软件补偿在后续测量中使用两点校准公式进行修正。一个简单的线性修正公式为真实电压 (当前码 - Offset_Code) * (标称FS电压 / (Positive_FS_Code - Negative_FS_Code))更严谨的做法是记录多个点的数据进行最小二乘法线性拟合。6.4 常见问题速查表现象可能原因排查步骤I2C无应答1. 地址错误2. 上拉电阻缺失或过大3. 电源未接通4. SDA/SCL线接反1. 检查ADDR引脚电平计算地址。2. 测量SDA/SCL线上拉电压。3. 测量芯片VDD和GND。4. 交换SDA/SCL线测试。读取数据全为0或固定值1. 配置寄存器未正确设置如未启动转换2. 单次转换模式下未触发新转换3. 模拟输入超范围被钳位1. 读回配置寄存器确认MODE、OS等位设置正确。2. 确保每次读取前都向OS位写1启动转换。3. 用万用表测量ADC输入引脚电压是否在PGA量程内。测量值噪声大、跳动1. 电源噪声2. 模拟输入滤波不足3. PCB布局不佳引入干扰4. 数据速率DR设置过高1. 用示波器查看电源纹波加强去耦。2. 检查前端RC滤波器参数确保其截止频率合理。3. 检查敏感走线是否远离噪声源。4. 尝试降低DR如设为8SPS看噪声是否减小。测量值存在固定偏差1. 运放或ADC失调电压2. 电阻不匹配导致增益/偏移误差3. 分流电阻本身误差或温漂1. 执行零点校准。2. 执行两点校准。3. 使用更高精度、更低温漂的分流电阻和匹配电阻。ALERT/RDY引脚无输出1. 未正确配置为RDY模式阈值寄存器高位设置错误2. 引脚未正确配置或连接3. 比较器队列COMP_QUE设置错误1. 确认Hi_thresh MSB1, Lo_thresh MSB0。2. 检查引脚是否连接MCU端是否配置为输入模式。3. 在RDY模式下COMP_QUE应设为11禁用比较器。最后高精度测量是一个系统工程从原理图计算、元件选型、PCB布局到软件校准环环相扣。ADS1115-Q1是一颗非常强大的芯片但它的性能上限取决于你如何围绕它进行设计。多动手测试用示波器和逻辑分析仪观察关键节点的波形用数据来验证和优化你的设计是提升工程能力的唯一途径。希望这篇从寄存器到电流测量的详细指南能帮你避开我当年踩过的那些坑更顺畅地完成你的高精度采集项目。