ADS869x高性能ADC寄存器配置与高共模抑制隔离系统设计实战

📅 2026/7/24 11:46:18
ADS869x高性能ADC寄存器配置与高共模抑制隔离系统设计实战
1. 项目概述从芯片手册到可运行的系统在嵌入式数据采集DAQ系统设计中选型一颗高精度ADC只是第一步真正的挑战在于如何通过精细的寄存器配置将芯片手册上冰冷的参数表变成一个在复杂电磁环境下稳定、可靠、数据准确的高性能系统。我最近在为一个工业传感器信号调理项目选型时深度使用了德州仪器TI的ADS869x系列ADC。这个系列芯片尤其是ADS8695以其18位分辨率、高达1MSPS的采样率以及集成的模拟前端AFE和精密基准源成为了许多高要求应用的理想选择。但它的强大功能绝大部分都封装在那一长串的寄存器里。如果只是照着典型电路连上线然后简单初始化你可能连它一半的性能都发挥不出来甚至会在现场遇到各种莫名其妙的干扰和数据跳变。这篇文章我就结合自己从原理图设计、寄存器配置到系统调试的全过程拆解一下如何玩转ADS869x的寄存器并以此为核心构建一个能够抵抗数百伏共模电压干扰的18位隔离式数据采集系统。无论你是正在评估这款芯片还是已经用它做项目但遇到了瓶颈希望这里的实操细节和踩过的“坑”能给你带来直接的帮助。我们将不仅仅看寄存器位域的定义更要深究每个配置项背后的设计意图以及它在实际PCB布局、电源处理和数字接口中的具体体现。2. 核心思路为何寄存器配置如此关键很多工程师对待ADC的寄存器配置态度有点像对待单片机的外设初始化上电后按默认值或一个“能用”的配置写一遍然后就专注于应用层代码了。对于ADS869x这类高性能ADC这种做法是远远不够的。它的寄存器直接决定了信号链的“性格”。2.1 超越默认值主动定义系统行为ADS869x上电后确实有默认状态能让ADC以最基本的方式工作。但默认状态通常是一种“兼容性最广、风险最低”的保守配置。例如数据输出模式SDO_MODE默认是跟随SPI输入协议这在低速下没问题但在1MSPS全速采样时可能会因为时钟抖动引入不确定性。又比如报警功能默认是关闭的如果你的系统需要监控输入超限或电源异常就必须主动配置。寄存器配置的本质是将一个通用的ADC芯片特化为完全适应你当前具体应用场景的专用数据采集前端。你需要告诉它我的信号范围多大我期望的数据输出格式是什么我关心哪些异常状态我系统的时钟来源是怎样的2.2 性能优化的开关一些寄存器位是直接的性能控制开关。最典型的例子是DATAOUT_CTL_REG寄存器中的PAR_EN奇偶校验使能位。在强干扰环境中启用帧奇偶校验和ADC输出奇偶校验可以为每个数据帧增加一层简单的有效性验证虽然会增加两位数据长度但换来了数据传输可靠性的提升。再比如RANGE_SEL_REG选择±3VREF还是±2.5VREF不仅仅是量程变化更影响着ADC内部放大器的增益和最终的噪声密度。选择比实际信号幅值略大的量程通常能获得更好的线性度。2.3 诊断与鲁棒性的基石ADS869x提供了丰富的内部诊断功能这些都通过寄存器访问和配置。ALARM_REG寄存器能实时反映输入超限、电源异常的“活动”和“触发”状态。而ALARM_H_TH_REG和ALARM_L_TH_REG则允许你灵活设置报警阈值和回滞电压防止信号在阈值附近抖动时产生频繁误报。在复杂的工业现场这些功能不是锦上添花而是系统能否长期稳定运行的“看门狗”。通过定期读取这些寄存器你的主控器可以提前感知前端模拟电路的异常实现预测性维护而不是等到数据完全错误才报警。注意寄存器配置不是一次性的工作。在系统开发的不同阶段功能验证、性能测试、环境试验你可能需要动态调整某些配置如输出测试模式DATA_VAL来辅助调试。因此设计一个清晰、灵活的寄存器读写底层驱动至关重要。3. 关键寄存器深度解析与配置策略拿到一份几十页的芯片手册面对几十个寄存器从哪里入手我的经验是优先攻克那几个直接影响数据流、信号路径和系统安全的核心寄存器。下面我挑出五个最关键的结合代码和场景讲讲该怎么配。3.1 SDO_CTL_REG (地址 0Ch)掌控数据输出协议这个寄存器是数据如何从ADC芯片“吐”出来的总指挥。它主要控制两件事数据输出引脚的模式和输出时钟的来源。SDO1_CONFIG[1:0] (位 9-8)这决定了ALARM/SDO-1/GPO这个复用引脚的功能。00bSDO-1引脚始终为高阻态。此时为1-bit SDO模式仅使用SDO-0引脚串行输出数据。这是最常用的模式接线简单。01b该引脚作为ALARM输出。当任何使能的报警条件触发时该引脚会拉低或拉高需结合其他配置。这对于需要硬件快速响应的场景非常有用可以不依赖SPI读取直接用MCU的中断引脚捕获报警。10b该引脚作为通用输出GPO。你可以通过写GPO_VAL位(位12)来控制其电平。这个功能很灵活可以用来控制外部模拟开关、指示灯或者给其他器件一个同步信号。11b启用2-bit SDO模式。SDO-0和SDO-1同时输出数据可以将数据输出速率翻倍例如在高速模式下每个时钟周期输出2位。这对于需要进一步降低接口时钟频率或提高数据吞吐率的场景很有用但需要占用两个数据线。SDO_MODE[1:0] (位 1-0)选择数据输出的协议模式。0xb跟随SPI输入协议。数据在SCLK的下降沿输出与SDI的时序一致。这是最标准的SPI从机模式。11b跟随ADC主时钟或源同步协议。在这种模式下数据输出与ADC内部的转换时钟同步而不是外部SPI的SCLK。这能提供更好的时序确定性尤其是在高采样率下可以避免外部SCLK的抖动影响到数据建立时间。要实现这种模式SSYNC_CLK位的配置就至关重要了。SSYNC_CLK (位 6)源同步时钟选择。仅当SDO_MODE为11b时有效。0b使用外部提供的SCLK作为数据输出时钟。1b使用ADC内部的时钟作为数据输出时钟。选择内部时钟可以获得更稳定、抖动更小的数据输出时钟但对主控器的数据采集接口要求更高需要能够适应ADC产生的时钟。配置示例与考量 假设我们需要一个稳定的高速数据流并且希望用ALARM引脚做硬件过载指示。我会这样配置// 假设通过一个函数 write_register(addr, data) 来写32位寄存器 // 配置 SDO_CTL_REG uint32_t sdo_ctl_value 0; sdo_ctl_value | (0x01 8); // SDO1_CONFIG 01b, 配置为ALARM输出 sdo_ctl_value | (0x03 0); // SDO_MODE 11b, 源同步模式 sdo_ctl_value | (0x01 6); // SSYNC_CLK 1b, 使用内部时钟 write_register(0x0C, sdo_ctl_value);这样配置后数据将通过SDO-0引脚由ADC内部时钟同步输出时序最优。同时ALARM引脚可以直接接到MCU的中断输入实现微秒级的过载响应。3.2 DATAOUT_CTL_REG (地址 10h)定制输出数据帧内容这个寄存器决定了从SDO引脚输出的那一长串比特里除了最核心的18位转换结果还包含了哪些“元信息”。你可以把它想象成给数据打包附加一些头信息。DEVICE_ADDR_INCL (位 14)是否在输出流中包含4位器件地址。在多ADC系统中这非常有用。主控器可以从数据流中直接解析出这帧数据来自哪个ADC无需复杂的片选切换或软件映射。启用它会增加4位输出长度。RANGE_INCL (位 8)是否包含4位输入量程配置。如果你在应用中需要动态切换量程例如通过程序改变RANGE_SEL那么在每个数据帧中包含当前的量程信息后端软件就能正确地将ADC码值还原为电压值。启用它会增加4位输出长度。VDD_ACTIVE_ALARM_INCL[1:0] (位 13-12) 和 IN_ACTIVE_ALARM_INCL[1:0] (位 11-10)是否包含电源和输入报警的活动标志。这些是实时状态不是锁存的“触发”标志。对于需要监控瞬时异常的应用可以开启。PAR_EN (位 3)奇偶校验使能。这是提升数据通信鲁棒性的关键位。启用后会在数据帧末尾附加两个奇偶校验位一个针对18位ADC结果另一个针对整个输出数据帧包括ADC结果和所有使能的附加信息。启用它会增加2位输出长度。接收端可以校验这两个奇偶位如果校验失败则丢弃该帧数据或请求重发。DATA_VAL[2:0] (位 2-0)数据输出值控制。这主要用于生产测试和系统自诊断。0xxb输出真实的转换数据。100b输出全0。可以用来测试数据接收链路的最低电平检测和基线。101b输出全1。测试最高电平。110b输出交替的0和1如0101...。这是经典的“时钟图案”非常适合测试数据建立/保持时间以及检查是否有位错误。111b输出交替的00和11。用于测试双线模式或检查相邻位干扰。配置示例与考量 对于一个高可靠性的单通道采集系统我希望数据帧包含量程信息和奇偶校验。uint32_t dataout_ctl_value 0; dataout_ctl_value | (0x01 8); // RANGE_INCL 1, 包含量程信息 dataout_ctl_value | (0x01 3); // PAR_EN 1, 启用奇偶校验 // DATA_VAL 保持 000b输出真实数据 write_register(0x10, dataout_ctl_value);配置后你需要重新计算你的数据帧长度。假设18位数据左对齐或右对齐后可能是24位3字节。加上4位量程和2位奇偶校验总长度可能是30位。你的SPI接收程序必须能正确处理这个非标准字节长度的数据帧并从中提取出有效数据、量程码并进行奇偶校验。3.3 RANGE_SEL_REG (地址 14h)量程与基准配置的核心这是影响模拟性能最直接的寄存器。它控制两个关键部分内部基准的启用和输入电压范围的选择。INTREF_DIS (位 6)内部基准禁用位。0b启用内部4.096V基准。这是ADS869x的一大优势集成的基准温漂低、噪声小对于大多数应用强烈建议使用内部基准可以简化设计、节省空间和成本。1b禁用内部基准使用从REFIO引脚引入的外部基准。仅当你需要更高的精度使用外部超低噪声基准源或需要多个ADC同步共享一个外部基准时才需要禁用内部基准。注意禁用内部基准后必须通过REFIO引脚提供稳定的4.096V基准电压。RANGE_SEL[3:0] (位 3-0)4位输入范围选择。这是ADS869x灵活性的体现支持双极性和单极性共9种范围。双极性范围最高位为0如0000b对应±3×VREF ±12.288V0011b对应±1.25×VREF ±5.12V。双极性输入允许信号在正负之间摆动适合交流或带有负电压的信号。单极性范围最高位为1如1000b对应0到3×VREF 0~12.288V1011b对应0到1.25×VREF 0~5.12V。单极性输入适合所有信号均为正的场景。配置示例与考量 假设我的传感器输出是±10V的差分信号我选择±12.288V量程以获得一定的headroom裕量避免偶尔的过冲导致饱和同时使用内部基准。uint32_t range_sel_value 0; // INTREF_DIS 0, 使用内部基准 (默认就是0可以不写) // RANGE_SEL 0000b, 选择 ±12.288V 量程 write_register(0x14, range_sel_value); // 实际上就是写入0因为保留位和INTREF_DIS默认都是0这里有个重要技巧量程的选择不是越大越好。在相同的输入信号下选择更小的量程如±5.12V对比±12.288V意味着ADC的LSB最低有效位对应的电压值更小理论上分辨率更高。但前提是你的信号绝对不能超过量程。通常建议选择比信号最大预期值大20%-30%的量程在分辨率和过载保护之间取得平衡。3.4 报警阈值寄存器组构建硬件保护墙ADS869x的报警功能是一个独立的模拟比较器系统可以实时监控输入电压和模拟电源电压AVDD无需等待ADC转换完成。这为系统提供了快速的硬件保护。ALARM_REG (地址 20h)这是一个只读状态寄存器。它包含了“活动”和“触发”两种标志。ACTIVE_xx_FLAG活动标志。只要输入电压或AVDD电压当前超过阈值对应位就置1。一旦电压回到正常范围该位立即清零。TRP_xx_FLAG触发标志。这是一种锁存标志。一旦发生超限对应位置1即使电压恢复正常该位也保持为1直到你通过SPI命令或复位来清除它。用于记录历史异常事件。OVW_ALARM这是一个总报警标志是所有TRP_xx_FLAG的逻辑或。可以快速判断是否有任何类型的报警发生过。ALARM_H_TH_REG (地址 24h) 和 ALARM_L_TH_REG (地址 28h)这两个是可读写的寄存器用于设置输入报警的高、低阈值。INP_ALRM_HIGH_TH[15:0]高阈值。实际比较的阈值是这16位值左移2位低位补00b后的18位值。这意味着阈值分辨率是ADC满量程的1/2^18。INP_ALRM_LOW_TH[15:0]低阈值。设置方式同上。INP_ALRM_HYST[7:0]回滞值仅高阈值寄存器有。用于防止信号在阈值附近噪声抖动时报警输出频繁跳变。例如设置高阈值为10000码值回滞为50。那么当信号从低于10000上升到超过10000时报警触发之后信号必须下降到低于10000 - 50 9950时报警才会解除。配置示例与考量 我要为±12.288V量程设置一个高报警阈值10V一个低报警阈值-10V并设置约50mV的回滞。计算阈值码值ADC是18位。对于±12.288V量程LSB (2 * 12.288V) / 2^18 ≈ 93.75μV。10V对应的码值 (10V / 12.288V) * (2^17) ≈ 66643 (十进制)。注意这里是相对于满量程的分数计算且双极性码值是偏移二进制格式。更准确的方法是使用公式Code (V_in / V_range 1) * 2^17。对于10V(10/12.288 1)*131072 ≈ 222,xxx需要根据具体编码格式计算此处为示例过程。实际开发中TI会提供计算工具或代码片段。得到18位码值后取高16位写入INP_ALRM_HIGH_TH寄存器低2位硬件补0。计算回滞码值50mV / 93.75μV ≈ 533 LSB。回滞寄存器是8位最大值255所以533LSB超出了范围。我们需要选择一个可行的回滞值比如250 LSB约23.4mV。将250写入INP_ALRM_HYST寄存器同样取高6位有效低2位必须为00b。配置代码// 假设已计算出 high_threshold_code, low_threshold_code, hysteresis_code uint32_t alarm_h_th_value 0; alarm_h_th_value | (hysteresis_code 24); // 设置回滞 alarm_h_th_value | (high_threshold_code 0xFFFF); // 设置高阈值低16位 write_register(0x24, alarm_h_th_value); uint32_t alarm_l_th_value 0; alarm_l_th_value | (low_threshold_code 0xFFFF); write_register(0x28, alarm_l_th_value);重要提示报警阈值的设置必须在正确的输入量程配置生效后进行因为阈值码值是基于当前量程的满幅值计算的。此外AVDD的报警阈值通常是固定的由芯片内部设置用户不可配置。4. 构建高共模抑制比CMRR的隔离式采集系统寄存器配置是软件层面的精确控制而要实现芯片手册中提到的100dB的共模抑制比CMRR硬件电路设计尤其是隔离设计才是真正的挑战。TI手册中的图8-1给出了一个经典的18位隔离DAQ系统方案我们来拆解其设计要点。4.1 为什么需要隔离当被测信号的地IGND与数据采集系统主电源的地GND之间存在很高的电压差可能是直流也可能是高频交流噪声时就产生了共模电压。如果不隔离这个电压差会通过地线回路形成巨大的干扰电流轻则导致测量不准重则损坏接口电路。隔离就是在信号路径和电源路径上建立一个“绝缘屏障”只让有用的差分信号通过阻断共模电压和地环路。4.2 电源隔离系统稳定的根基隔离系统的核心是创造一个“浮地”区域。ADS869x及其前端电路如果有需要在一个与主地GND隔离的“岛屿”上运行。这就需要隔离电源。方案选择手册推荐使用SN6501变压器驱动器中心抽头变压器全波整流LDO的方案。SN6501是一个推挽式变压器驱动器非常适合小功率隔离电源。关键设计变压器选择变比NS1确保整流后电压高于LDO的输入压差要求。例如输入5V变比1:1.2得到约6V交流整流后约5.5V直流给LDO留出裕量。LDO的选择推荐使用TPS7A4901这类超低噪声、高PSRR电源抑制比的LDO。变压器输出的直流含有开关噪声高PSRR的LDO能将其极大衰减为ADC提供极其干净的AVDD和DVDD。这是实现高SNR的关键之一。每个电源引脚AVDD, DVDD都必须严格按照手册就近放置10μF和1μF的退耦电容。地平面分割隔离电源的次级地即IGND需要为ADC模拟部分建立一个干净的“小地平面”。这个地平面必须与初级侧的主地GND严格分开两者之间的最近距离要满足安规要求通常通过爬电距离和电气间隙规定。4.3 信号与数字隔离数据与时钟的精准传输模拟信号本身是差分输入VINP, VINM本身就具有一定抗共模干扰能力。但数字接口SPI的SCLK, SDI, SDO, CS必须进行隔离。数字隔离器选型推荐ISO7640FM这类多通道、高速数字隔离器。它支持50MHz的速率完全满足ADS869x在1MSPS时的SPI时钟要求。必须选择延迟匹配性能好的型号确保CS、SCLK、SDI、SDO这几个信号通过隔离器后的延迟基本一致否则在高频下会导致SPI时序错乱。布局布线要点SPI信号线从MCU到隔离器初级再从隔离器次级到ADC应保持为可控阻抗的传输线尽量短且等长避免反射和串扰。隔离器初级和次级侧的电源退耦必须各自独立、就近完成。ADC的CONVST/CS启动信号非常关键其边沿质量直接影响采样时刻的精度。这条线的布线应给予最高优先级。4.4 参考设计复盘与实操调整TI的应用曲线图8-3至图8-9显示了在高达±75V共模电压、15kHz频率下系统依然能保持92dB以上的SINAD和-109dB的THDCMRR在低频时超过140dB。这证明了该架构的有效性。在实际项目中我基于此方案做了以下调整变压器由于体积限制我选用了Würth Elektronik的760390011表面贴装变压器其隔离电压满足要求且频率特性适合SN6501。LDO除了TPS7A4901我还并联了一组LC滤波器铁氧体磁珠电容在LDO输出后进一步滤除可能残留的极高频噪声。数字隔离器我使用了ISO7741性能与ISO7640类似因为它有更多的通道我顺便把ALARM输出信号也进行了隔离回传实现了完全隔离。ADC基准退耦我严格遵循了手册建议在REFCAP引脚放置了1μF0603和10μF0805低ESR两个电容在REFIO引脚放置了4.7μF电容。布局上这三个电容的接地端先接到一起然后通过一个单独的过孔连接到ADC的REFGND引脚最后再连接到模拟地平面形成了一个“星型”接地避免了噪声电流流经基准地线。5. 寄存器配置的软件实现与调试技巧理解了寄存器含义和硬件设计最后需要通过软件把它们驱动起来。这里分享一些在MCU上实现ADS869x驱动和调试的实用经验。5.1 SPI通信底层驱动ADS869x的SPI接口相对标准但要注意几点命令格式读写寄存器需要先发送一个8位的命令字。最高位MSB是R/W位1读0写接着是6位寄存器地址最后一位是“空位”或特定协议位详见手册。然后是32位的数据。数据是MSB先传。速度与模式在初始化配置阶段可以用较低速的SPI如1-5MHz。但在高速连续采样时需要确保SPI时钟SCLK能跟上数据输出速率。SPI模式通常是CPOL0, CPHA0时钟空闲为低数据在第一个边沿采样。但务必核对手册时序图。片选CS管理在寄存器读写时需要控制好CS信号。通常是一个完整的命令数据帧在一个CS低脉冲内完成。对于连续读转换数据则有不同的模式如CS一直拉低或每个转换周期拉低一次。5.2 初始化序列与上电时序ADC的上电和初始化需要一个稳定的顺序否则可能导致配置失败或性能下降。硬件复位上电后拉低RST引脚至少几个微秒确保芯片内部状态机复位。等待电源稳定确保AVDD和DVDD完全稳定参考手册的tPWRUP时间。软件复位可选通过SPI向复位寄存器写入特定序列如手册提到的向0x05地址写0x69再配置RST_PWRCTL_REG进行一次软件复位让所有寄存器恢复默认值。这是一个好习惯。关键寄存器配置按照依赖关系配置寄存器。通常顺序是先配置RANGE_SEL_REG确定输入范围和基准源。接着配置报警阈值ALARM_H_TH_REG和ALARM_L_TH_REG。然后配置数据输出DATAOUT_CTL_REG和SDO_CTL_REG。最后如果需要配置功耗管理RST_PWRCTL_REG进入NAP或正常模式。启动转换通过CONVST/CS引脚或SPI命令启动第一次转换。5.3 调试技巧与常见问题排查问题读回的寄存器值全是0或0xFF。排查首先检查硬件连接电源、地、复位引脚电平。用示波器看SPI的SCLK、CS、SDI波形确认MCU确实发出了正确的时序和命令字。特别注意SPI模式和数据位顺序。很多问题出在这里。可以尝试先以最慢的SPI速度进行读写。问题转换数据不稳定噪声大。排查电源噪声用示波器AC耦合档细看AVDD和DVDD上的纹波。应在mV级别。如果纹波大检查LDO输出电容和ADC退耦电容的布局是否真的“就近”。基准噪声测量REFCAP和REFIO引脚电压纹波。这是影响ADC精度的直接因素。模拟输入确保模拟输入信号本身是干净的。可以在ADC输入端并联一个大的去耦电容如10μF钽电容100nF陶瓷电容到IGND滤除高频噪声。数字干扰检查数字信号线特别是SCLK和SDO是否离模拟输入线或基准线太近。必要时在PCB上增加隔离带或使用屏蔽层。问题无法进入NAP或Power-down模式。排查检查RST_PWRCTL_REG的解锁序列是否正确必须先向0x05地址写0x69。检查在设置功耗模式位后CONVST/CS引脚的电平是否满足时序要求如NAP模式需要在转换结束后保持CS高电平。利用测试模式在调试数据接收链路时不要连接真实的模拟信号。先将DATAOUT_CTL_REG中的DATA_VAL设置为110b交替01或111b交替0011。这样ADC会输出一个确定性的数字图案。用逻辑分析仪捕获SDO上的数据与你MCU接收到的数据进行比对可以快速定位是ADC输出问题还是SPI接收解析问题。报警功能验证配置好报警阈值后如何测试可以编写一个简单的测试函数缓慢调整输入电压例如使用可编程电源同时不断读取ALARM_REG寄存器观察ACTIVE标志位的变化以及当电压超过/低于阈值时ALARM硬件引脚如果配置了的电平变化。这能全面验证报警比较器的工作是否正常。6. 从评估到量产一些额外的思考当你完成了原理图、PCB、寄存器配置和驱动代码让系统在实验室跑起来这只是一个开始。要走向可靠的产品还需要考虑更多。6.1 校准与补偿即使使用了ADS869x这样高精度的ADC系统仍然存在偏移误差和增益误差。这些误差来源于ADC自身、前端运放、电阻分压网络等。需要在软件中引入校准环节。偏移校准在输入端短路接IGND时采集一组数据求平均得到的码值就是偏移误差。在后续测量中将所有采样值减去这个偏移量。增益校准施加一个精确的、接近满量程的已知电压如10.000V采集码值。根据理论码值通过量程和LSB计算与实际码值的比例计算增益校正系数。 这些校准系数可以存储在MCU的Flash或EEPROM中。对于多通道系统每个通道都需要单独校准。6.2 温度漂移管理ADC的偏移和增益会随温度变化。对于宽温范围如-40°C到125°C应用需要考虑温度补偿。一种方法是在系统中集成温度传感器如ADC内部可能自带或外置建立温度-误差的查找表或拟合公式在软件中进行实时补偿。ADS869x的内部基准温漂典型值很小但对于极端精度要求仍需评估其影响。6.3 固件架构建议一个好的采集系统固件应该是模块化、可配置的。驱动层提供最基本的寄存器读写、转换启动、数据读取函数。配置层根据应用需求封装不同的配置模板函数例如ADS869x_Init_for_HighSpeed()ADS869x_Init_for_LowPower()ADS869x_Set_Range()等。应用层处理数据解析根据DATAOUT_CTL_REG配置提取有效位、校验奇偶位、报警处理、校准补偿、数据滤波和上传。诊断层定期执行自检例如读取芯片ID寄存器、使用测试模式输出验证数据通路、检查报警状态等。6.4 PCB布局的再次强调所有理论上的高性能最终都要落在PCB上。对于ADS869x系统模拟部分集中布局将ADC、基准电容、模拟输入滤波器、模拟电源LDO集中放置在一块连续的区域内。地平面完整性无论是主地GND还是隔离地IGND都应尽量保持完整避免被信号线割裂。数字信号线要“跨越”模拟地区域时尽量走在单独的层并通过缝合过孔为返回电流提供路径。电源分割使用磁珠或0Ω电阻将模拟电源AVDD和数字电源DVDD在源头分开即使它们来自同一个LDO。然后在各自区域进行充分的退耦。关键信号线REFIO、REFCAP、VINP、VINM这些模拟信号线要短、粗并用地线包围保护远离任何数字信号线尤其是时钟线。最后我想说的是使用像ADS869x这样的高性能ADC是一个系统工程。寄存器配置是解锁其功能的钥匙但稳健的硬件设计、严谨的PCB布局、深思熟虑的软件架构三者缺一不可。手册上的-109dB THD和140dB CMRR的漂亮指标是建立在每一个细节都处理到位的基础之上的。多花时间在前期设计和调试上理解每一个配置位和每一个元件的作用你的系统才能真正达到芯片标称的性能在复杂的工业环境中长期稳定运行。