This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS124S06:多点设置中的数据损坏和信号完整性问题

Guru**** 2378650 points
Other Parts Discussed in Thread: ADS124S06
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1482333/ads124s06-data-corruption-and-signal-integrity-issue-in-multidrop-setup

器件型号:ADS124S06

工具与软件:

尊敬的 TI 工程师:

我使用的设置是在多点配置中使用三个 ADS124S06 ADC 芯片、它们在同一条 SPI 线。 每个 ADC 按顺序进行轮询、然后对输出进行采样。  每个芯片连接了两个 RTD。 然而、我们会遇到数据损坏问题、我会寻求专家的建议。

系统概述:

  • ADC :ADS124S06
  • 拓扑技术 :在多点配置中有3个 ADC (共享 SPI 线路)
  • 简短教程 :芯片按顺序轮询,并对输出进行采样
  • RTD :每个芯片都附带两个 RTD

问题:

数据损坏、表现形式为 干扰/尖峰 该寄存器位于绘制原始24位输出值时的位置。 在探测示波器时、我们注意到 MISO 线路不按预期工作–有时它具有奇怪的电压电平(约1V)、而不是只是在高电平(3.3V)和低电平之间切换。  

症状详情:

  • 示波器观察 :在 MISO 线路上,信号不仅仅是在高和低之间切换。 有时、电压电平约为1V、这是不常见的。
  • 终端 :根据数据表、47欧姆电阻应串联以实现端接。 最初、我们为每个 MISO 拼接板组装一个47欧姆电阻、但这并没有解决该问题。
  • 正常工作 :在室温下测试时,当最接近时钟的 ADC 的 MISO 端接为0欧姆,其他两个 ADC 有47欧姆电阻时,配置有效。
  • 温度测试 :当加热系统(从24°C 到175°C )时,ADC 开始出现瞬发性波动,并最终在达到175°C 之前达到饱和。

潜在原因:

  • 信号完整性 : 由于传输线路问题导致阻抗不匹配。
  • 高阻态 :另一种可能是 ADC 在需要时没有正确进入高阻态模式、导致 MISO 线路上的总线争用。

问题:

  1. 阻抗不匹配 :您认为这个问题是由于阻抗不匹配,还是有一个不同的信号完整性问题我应该研究?
  2. 高阻态缓冲器 :添加高阻抗缓冲器是否是一个好的解决方案? 如果是、您能否为此推荐一款 TI 产品?
  3. MISO 上拉 :我应该尝试将 MISO 线路上拉至中轨电压吗? 如果是、有任何有关电阻器值的建议或执行此操作的方法吗?

欢迎提供任何指导或建议。 提前感谢您的专业知识!




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    您在全部3个 ADC 上显示相同的 CS 网络(ADC3_CS)-如何单独轮询? 您要么需要单独的 CS 并组合 DOUT、DIN 和 SCLK、要么需要组合 CS、SCLK 和 DIN、带有单独的 DOUT 引脚。

    此外、您不应将器件加热至175C、因为它们不具有此温度的额定值。 绝对最大值为150°C、额定温度范围仅最高125°C。 通过这些测试、您有可能损坏了 ADC

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bryan:

    关于热测试的要点:注意,我会记住这一点。 我想多讲一点背景知识。 具有 ADC 的电路板封闭在不锈钢外壳中。 当 ADC 完全发生故障时、加热室内的热电偶的读数为~130C。  

    关于原理图、我将给出更准确的描述。 我实际上使用了单独的 CS 和通用 DOUT DIN SCLK。


    我还附上随时间变化的转换温度读数图、供您参考。 我们可以看到、在一种情况下、读数似乎出现"毛刺"。


      


    和下面是显示"奇怪的"电压电平的示波器屏幕截图:1.7V 和0.84V。 我注意到、高电平也是2.7V、而不是3.3V。
         

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    您能否以 PDF 格式发送完整的原理图以便我们审阅?

    您是否可以尝试向不想读取的 ADC 发送 POWERDOWN 命令、然后尝试从仍通电的 ADC 读取? 您可以尝试将 ADC 的所有组合断电、以查看这是否适用于所有3x 器件。 这将有望 使 DOUT 引脚保持安静、从而完全避免总线上的争用。

    这看起来确实像争用、但我认为这不一定是由 ADC 引起的。 我知道、许多客户已成功地将多个 ADS124S06链接在一起、没有问题、因此可以做到。

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    早上好、Bryan、

    原理图如下:
    e2e.ti.com/.../sch_5F00_doc.pdf

    当你说"链接"时、你是指菊花链吗? 我相信、3 ADC 多点拓扑(在本例中)与3 ADC 菊花链配置相比具有不同的含义。

    我将尝试实施 断电方案 并向您提供最新情况。 感谢一群人!  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bryan:

    我现在修改了实现方式、以便在初始化之后关闭 ADC 的电源。 然后、每当我需要从 ADC 读取数据时、我都会发送唤醒命令、采集数据、然后再次断电。 通过这种方式 、我可确保在给定时间只有一个 ADC 处于活动状态。  

    但是、这并没有解决这个问题。 我仍然在 MISO 线路上看到争用:
      

      


    • 在 MISO 上施加弱上拉(中间轨)是否合理?  
    • 使用电容器替换 R40、R32、R24 (ref sch_doc.pdf)是否有帮助?
      *目标是消除/减少反射并使 MISO 保持在已知状态。

    请告诉我您的想法。 谢谢!  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    感谢您提供这些信息

    您在哪里探测这些引脚? 您是否在 ADC 引脚上探测?

    您的原理图在数字接口方面有很多"东西"、包括时钟缓冲器、LVDS 芯片等 是否有办法简化此电路、以便减少与必要组件(基本上只是 ADC 和控制器之间的连接)的通信、从而可以排除导致问题的原因? 同样、我们已经有许多客户使用与您当前使用的相同连接来实现多器件系统、而不会出现任何问题。 因此、您不需要在 DOUT 上添加电容或上拉、因为这可能只是掩盖了实际问题

    另外、请确保您使用的 ADC/系统尚未暴露在高于125°C 的环境中。 我认为这些器件 可能已损坏、因此您无法排除这是导致这些问题的原因(或至少使其变得更糟)

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bryan:

    是的、我探测 ADC 引脚。 [对于 U3]、黄色通道为 SCLK (R31)、蓝色通道为 MISO (R32)。

    我们已经尝试了绕过 LVDS 和时钟缓冲器。 我们使用的是飞线、虽然它会引入自己的阻抗、但我们将3ADC-MCU 系统与"东西"隔离了。 还是没有改善。

    并且我们在经过热试验后更换芯片。 新芯片的行为同样表明存在固有的设计问题。  

    其他信息:  

    • 我有一个"评估系统"、它只有 MCU 和一个 ADC 芯片。 它没有 MUX (用于 nCS)、LVDS、以及其他竞争驱动器的 ADC。 该系统工作正常。
    • 此外、在上 实际系统 (原理图) 拆下2个 ADC 芯片 Y (或拆下 R24和 R40 - 其他2个 ADC 的 MISO 接头开路 )、争用就会消失-这是有意义的。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    您是否能够在通信期间探测所有3个 CS 引脚、以确保两个未使用的 ADC CS 为高电平、而使用中的 ADC CS 为低电平? 还请在此期间显示 DOUT 信号

    您能否移除 R24、R32和 R40 (所有 DOUT 串联电阻)、然后将最靠近 ADC 的焊盘用导线连接在一起(基本上将 ADC 上的 DOUT 引脚短接在一起。 然后监控 DOUT 以查看行为是否仍然存在? 请提供此行为的示波器屏幕截图

    您的接地平面是什么样子的? 我看到您有两个接地符号、它们在测试点 TP3处连接在一起。 您能展示一下这个平面在您的 PCB 中是什么样的吗?

    星期五结束时、我开始连接多个 S08 EVM、但没能完成(硬件已连接、我可以看到 DRDY 脉动以指示两个 ADC 都在运行、但这只是我能得到的)。 我将在下周出差、因此请预计我的回复会延迟、我将无法在下周恢复硬件设置

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bryan:

    我有好消息和坏消息。  

    好消息第一:

    您能否在通信期间探测所有3个 CS 引脚、以确保两个未使用的 ADC CS 高电平以及使用中的 ADC CS 低电平? 还请在此期间显示 DOUT 信号[/QUOT]

    我先开始、所有内容都已检查完毕:有源芯片的 CS 为低电平、两个未使用的芯片的 CS 为高电平、但我仍然观察到争用的情况。 然后、我删除了 U11 (片选多路复用器)并直接反激连接到每个 CS 引脚。 我将想要使用的 ADC 的 CS 引脚接地、并将另外两个连接到3.3V。 这证实 CS 现在受到直接控制、放弃了 MCU/多路复用控制。

    我将 ADC1的 CS 连接为低电平、将 ADC2和 ADC3的 CS 连接为高电平。 我对固件进行了编程、以便仅与接地的芯片 ADC1通信。

    • 但是、当我使用示波器进行检查时、仍然看到 MISO 信号存在争用。
    • 然后、我将 ADC1 CS 线路连接至3.3V、并预期 MISO 信号变为空闲状态、因为所有三个 CS 引脚都应该为高电平。
    • 令人惊讶的是,我仍然观察到有效的数据,有趣的是,有 无争用 .
    • 经过进一步调查、我发现尽管 ADC3的 CS 为高电平(示波器上的 CS 会变为高电平)、但仍然在传输数据。

    这个问题是由故障芯片引起的。 虽然它仍在运行、但它在不应该传输数据的情况下却错误地传输了数据。  

    现在、坏消息是:

    虽然不再存在争用且所有三个 ADC 都可以正常工作、但我注意到每个 ADC 上通道1和通道2的读数之间存在可疑偏差。

        

    我使用以下寄存器配置、并尝试调整 SPI 频率和采样率以查看它是否产生了效果、但遗憾的是、问题仍然存在。

    RTDData.R_ref = 2500;
    ADC_config.resolution = 24;
    ADC_config.pgaGain = 1 << ADS_GAIN_8;
    ADC_config.sampleRate = ADS_DR_50;
    ADC_config.filter = ADS_FILTERTYPE_LL;
    
    //ADS124s06 Register Config:
    ADC_config.statusReg = ADS_FL_POR_CLEAR;
    ADC_config.inputMuxConfReg = ADS_P_AIN1 | ADS_N_AIN2; 
    ADC_config.pgaReg = ADS_PGA_ENABLED | ADS_GAIN_8;
    ADC_config.dataRateReg = ADS_CONVMODE_SS | ADS_FILTERTYPE_LL | ADS_DR_50;
    ADC_config.refSelReg = ADS_REFP_BYP_DISABLE | ADS_REFN_BYP_DISABLE | ADS_REFSEL_INT | ADS_REFINT_ON_ALWAYS;
    ADC_config.IDACmagReg = ADS_IDACMAG_1000;
    ADC_config.IDACmuxReg = ADS_IDAC2_OFF | ADS_IDAC1_A0;
    ADC_config.VBIASReg = VBIAS_DEFAULT;
    ADC_config.SYSCONReg = SYS_DEFAULT;

    以下函数会更新输入 MUX 配置、然后我发送 RDATA 命令:

    void selectRtdAndStartConversion(UINT8 rtd_num){
        UINT8 MUX1 = ADS_P_AIN1 | ADS_N_AIN2;
        UINT8 MUX2 = ADS_P_AIN4 | ADS_N_AIN5;
        UINT8 WREG_START_AT_MUX = OPCODE_WREG | (REG_ADDR_INPMUX & OPCODE_RWREG_MASK);
        UINT8 count = 0x00;
        switch(rtd_num){
            case    RTD1 :
                SpiWrite(1, WREG_START_AT_MUX);
                SpiWrite(1, count);
                SpiWrite(1, MUX1);
                SpiWrite(1, OPCODE_START);
                // delay125ns();
                break;
            case    RTD2 :
                SpiWrite(1, WREG_START_AT_MUX);
                SpiWrite(1, count);
                SpiWrite(1, MUX2);
                SpiWrite(1, OPCODE_START);
                // delay125ns();
                break;
            default:
                break;
        }
    }

    根据您的经验、鉴于更改端接电阻(R24、R32、R40)也会影响延迟、电路板的硬件设计是否会影响该问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    很高兴您至少解决了一个问题

    您是否能够确认您使用的是外部 VREF 引脚(REFx1)作为比例基准? 看起来您已将其连接到原理图中、但也好像您已 选择内部 VREF 作为基准源("ADS_REFSEL_INT")

    您是否还可以启用 REFP 缓冲器并禁用 REFN 缓冲器? 您似乎已将它们同时启用(或已禁用、寄存器设置的#define 命名规则有点不清楚)

    您能确认您发送的图像中发生了什么吗? 前两个映像(RTD1和 RTD2)来自一个 ADC (U3)、第二个映像(RTD5和 RTD6)用于另一个 ADC (U5)。 第一组图像是否为"良好"数据、第二组图像是否为"不良"数据? 如中所示、与获得的结果相比、您应该看到什么?  两个 RTD 似乎是串联测量的、您要测量的近似 RTD 电阻是多少?

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bryan:

    是的、我很高兴我们取得了进展。 感谢您的指导!

    首先、我来解释一下这些数字。 是的、第一个来自 U3、第二个来自 U5。 这两个图都显示每个芯片上的第一个 RTD 正确地对数据进行采样。 另一方面、U3上的 RTD2和 U5 (每个 ADC 的第二个通道)上的 RTD6无法正常工作。 我预计在~24°C (室温)时、会看到一条与 y 轴交叉的稍微平坦的曲线。

    • [不正确的行为]根据 RTD6的读数、温度最初为44°C、在5分钟内降至40°C。
    • U3 (RTD1)上的通道1正常工作。  
    您能否确认您使用的是外部 VREF 引脚(REFx1)作为比例基准? [报价]

    答:是的。 该电路配置为具有低侧基准的4线 RTD;2个串联的 RTD;通过 IDAC1偏置到1mA。

    下图来自 TI 的 RTD 测量指南。

      

    但您似乎也 选择了内部 VREF 作为基准源("ADS_REFSEL_INT")

    AN:数据表中的图98描述了 REF 控制寄存器。 数据表指出:

    "(1)当为测量选择内部基准时、禁用基准缓冲器。 (2)必须打开内部电压基准才能使用 IDAC。 "

    • 由于我使用 IDAC、因此我打开了内部基准(ADS_REFSEL_INT)
    • 由于我使用了内部基准、因此我禁用了基准缓冲器

    这是我的理解-如果有任何不一致之处、请告诉我。

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    不过、在您的系统中、您不想使用内部基准作为基准源

    您想要开启内部基准(REF 寄存器中的 REFCON 位)、因为内部 VREF 为 IDAC 供电、但又想使用 REFP1/REFN1作为基准源。 这将选择基准电阻器作为基准源、从而在系统中实现比例基准配置。 我在下图中突出显示了这一点

    在现有配置中使用 REFP1/REFN1时、需要启用 REFP 缓冲器并禁用 REFN 缓冲器

    请尝试这些设置、然后告知我情况是否有所改善

    您能否还告诉我您正在测量哪些类型的 RTD、例如 Pt100、Pt1000等? 还是至少测量的 RTD 电阻?

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bryan:

    明白了。 很有道理。 我将更新配置并进行一些测试。 我将分享结果。

    我使用 PT100型 RTD。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    我懂了

    -Bryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Bryan:

    首先,我们解决了 争用问题 .

    之后、我们遇到了 "偏移问题" 、其中 ADC 不会产生一致的值。 事实上是 RTD 的原因、因此我将其替换为标准100欧姆电阻器。

    我对系统进行了一次热测试(记住您提到的边界条件)、我很高兴地报告一切都按预期运行:

    • 无争用
    • 所有6个通道的读数一致为100欧姆
    • 有一个超越120°C 的轻微漂移、但是除此之外、系统是稳定的

      

    总之、在您的帮助下、我解决了数据转换问题。 下一步是正确地重新接线 RTD、然后重新运行测试。

    再次感谢! 我们可以 将其标记为已解决。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Usama Tariq:

    我很高兴我们能够帮助解决您的问题!

    -Bryan