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.

[参考译文] ADS131E06:使用RDATA命令破坏数据

Guru**** 2502205 points
Other Parts Discussed in Thread: ADS131E06

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/615552/ads131e06-corrupted-data-with-rdata-command

部件号:ADS131E06

我们尝试在不监控DRDY信号的情况下将ColdFire V1中的RDATA命令用于单个ADS131E06;监控此信号会给系统增加相当大的复杂性,我们愿意接受结果中会出现定时抖动。 ADS131使用内部振荡器(ADSMHz) 2.048 和外部参考。 芯片在加电时配置(RESET,SDATAC,config1 = D2h,D4H或D6H, 开始,所有时间限制都得到了适当的遵守)。

我们以大约1毫秒的间隔发出RDATA命令。 但是,我们偶尔会看到RDATA命令返回的数据值被破坏。 大多数情况下,所有信道的值都已损坏,但偶尔,似乎只有某些信道中的数据已损坏(在这些罕见情况下,没有观察到哪些信道的模式)。 腐败几乎可以采取任何形式;错误数据没有明显的模式。 例如,这不仅仅是一个双边投资条约被以某种方式转移的问题。 状态寄存器的四个最重要位始终正确(当前忽略状态寄存器的其余部分)。 更改输出数据速率(在config1,寄存器1,位0-2中)会更改观察到的错误的频率。 当速率设置为1 ksps时,我们会看到每12.8万个查询中的平均错误率约为1。 在4 ksps时,每2.6万个查询的平均速率约为1。 在16 ksps时,每7000次查询的平均速率约为1。 这些值在数分钟内以百万次查询(同样,查询的频率为1 kHz)为平均值;错误发生时没有可观察的模式。

虽然此芯片与其它芯片共享SPI总线,但在此测试期间,所有其它芯片都已禁用。 经过测试,1 MHz到13 MHz之间的SPI总线速度对损坏数据的频率没有明显影响。 增加了延迟,以确保tCSSC和tSCCS比数据表中的最小值长很多倍(测试了大约10 usec的延迟); 额外的延迟似乎对返回错误数据的速率没有影响(据认为,最初的时间安排已经达到了最低限度的延迟)。 某些测试在发出RDATA命令之前立即读取了寄存器00h到00Ch;返回的寄存器值始终是预期 值,即使立即执行的RDATA命令产生损坏的数据时也是如此。

在每个通道的MUX中选择正常输入(CHnSET寄存器位0-2)以及将MUX设置为使用短路输入(值= 001)时,观察到相同的错误率。 大多数测试都是在MUX选择短路输入的情况下执行的。 由于我们处于非常早期的测试阶段,我们处于良性电气环境中;系统的其余部分(包括同一SPI总线上的其他芯片)没有噪音问题。

由于SPI参数在报告的错误率方面没有明显的差异,并且报告的寄存器值始终是预期值(而且几乎所有数据值看起来都正确),我认为SPI总线或配置不存在问题。

ADS131的输出数据速率与错误速率之间的相关性使我相信,当发出RDATA命令时,还存在其他一些与计时相关的问题。 根据数据表的9.5 .3.10 部分(第 37),对何时可以发出RDATA命令没有任何限制(与使用RDATAC命令不同,RDATAC命令必须避免DRDY附近的区域坠落)。 事实上,以下引述来自该节:

RDATA最适合必须读取寄存器设置或用户无法 精确控制定时的系统。 建议使用RDATA命令读取数据,以避免在 未监控DRDY信号时数据损坏。

但是,同一节建议在发出RDATA命令之前DRDY降低,这让我想知道是否有一个与RDATAC命令类似的禁止区域,在该区域中发出RDATA命令可能会返回损坏的数据。 查看观察到的错误率,它似乎大约为16 * tCLK周期。

您能否告诉我RDATA命令是否有禁止区域,或者告诉我可能会出现什么问题的其他想法?

非常感谢您的帮助。

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

    欢迎来到我们的e2e论坛! 仅为完整起见,您能否提供用于ADS131E06的其余寄存器设置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    汤姆-

    以下寄存器值将在许多测试中设置/读取。 config1中的输出数据速率有时会发生变化,并且在几次测试中,各种CHnSET中的PGA增益也可能发生了变化。

    ID:D1h
    配置1:D4H
    CONFIIG2:E0h
    CONFIIG3:41小时
    故障:00h
    CH1SET:11小时
    CH2SET:11小时
    CH3SET:11小时
    CH4SET:51h
    CH5SET:11小时
    CH6SET:11小时
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你Brian。 使用输入短路配置时,您是否可以知道在测试部分中看到错误时返回的值是什么? 我知道对RDATA命令的发出没有限制。 整个读取周期中,/CS是否处于低位?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    /CS在整个RDATA命令期间保持低电平:
    1./CS设置为低
    2.12h写入SPI
    3.从SPI读取21字节
    4./CS设为高。

    以下是一些使用输入短路配置的示例值,这些值已被清楚地读取,其中包含错误;这被解释为两个补码,符号+23位,根据数据表第9.5 1节,通道1到通道6:

    -395.6896万 -401.9042万 -8152 62033 -387.3294万 -887
    838.7827万 -932 -824 -907 -1047 -876
    -393.2946万 125.2447万 -31538 8388607 13.1199万
    41.93530314亿 31448.01104775亿3 41.93382838亿 83875.77209422亿2
    838.8607万 1744.3104万 104774.5104万 10477.01838855亿 8388555-78.7303万
    209.637万 104.765万 -36.70845261亿 2612.5020961亿1 8388607
    52.3501万 -419.5229万 524.219万 -115615 8388607 7404707
    83.87822523亿 5233.65524206亿2 7787088 -1044 8387734
    838.7821万 524.1969万 -8.26209625亿 209625183.8756万 838756641.9343万3
    209.6373万 -419.5221万 -419.5125万 -192 -629.2502万 838.7738万
    1523786 -8.1683886亿 838860720.9611万1 -881
    838.8607万 -941 -820 -9.3483886亿 838860783.886万7
    -183.5196万 -52.9857万 8126335 -802 -1050-1480576</s>148.0576万
    -210.4764万 104764449.0712万 104.7644万 838.7564万 -874
    416.036万 -840 -822 -808 -419.4984万 -13.178万
    832.3071万 838.7711万 -814 -23.0152万 8388607 -1
    41.93522733亿 73391.07524207亿4 2096215 -419.5346万 -867
    104.7799万 - 9.2183886亿 838860783.886万 838860252.4287万 524287883.8859万9
    -81 -9.17838779亿3 -9.60774174亿5 -551
    215.3727万 -83.88608128亿-930 -103.2196万 -255.6768万
    -1 -9.20629063亿8 -897 -1034 -890
    209.6377万 58.8897万 -1 -25.333万 -4030472 799.4511万
    -395.804万 -402.1329万 -8030 61684 -387.3354万 -924

    下面是一些示例,我不确定这些值是否错误,或者是否只有一些异常高的噪声级别:

    -1805 -913 -827 -897 -1073 -816
    -74 -945 -823 -937 -10 -31
    -7 -909 -818 -897 -1031 -1

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

    似乎所有包含损坏数据的RDATA读取都具有类似的时间线,如所附的示波器截图所示。

    顶部的黄色迹线是SCLK。 第一个脉冲是将RDATA命令写入ADS131;以下脉冲从ADS131读取每个字节的数据。

    中间的粉红色迹线是/DRDY。 每个损坏数据示例都显示/DRDY介于状态寄存器的第一个字节和状态寄存器的第二个字节之间。

    底部的蓝色迹线在这里不是很重要;它被用作捕捉所需信号的触发器。

    我仍在努力确定良好读取和损坏读取之间的时间差异。 由于微控制器未与ADS131同步,因此迟早会遇到所有计时情况。

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

    是否可以缩小您拍摄的屏幕截图? 我很想知道在您发出RDATA命令之前DRDY何时处于低位,以及在您开始读取数据之后DRDY何时再次处于低位。 我还假设这些SCLK脉冲各包含八个过渡,这一假设是否正确? 您是否有任何方法可以减少SCLK之间的低停留时间?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    汤姆-

    ADS131在该屏幕快照中配置了4 ksps的数据速率,因此在屏幕快照开始之前DRDY的速率相当低;DRDY引脚计时与预期的采样速率相当一致。 如前所述,我们每隔1毫秒只查询ADS131,因此在每个RDATA命令之间有三个示例将不被确认。 我们将ADS131设置为较高的采样率,以减少数字滤波器的相位延迟,尽管我们无法以理想的方式使用数据。

    假设每个SCLK脉冲都包含八个跃迁,这是一个要传输的字节(抱歉,我应该已经提到过),这是正确的。 检查的每个数据损坏实例都显示了非常一致的计时模式,在SCLK的最后一个下降边缘之后,DRDY始终在大约+/- 50 nsec的窗口中下降,如屏幕截图所示。 在DRDY位于第一个和第二个状态寄存器字节之间的情况下,我们看到了一些正确数据的示例,但这些示例的时钟有明显不同(我从未看到足够多的良好数据示例来说明所需的时钟差异)。

    当我看到DRDY转换和损坏的数据之间的关联时,我就开始尝试影响SCLK突发/字节之间的暂停时间。 我可以将暂停时间缩短到屏幕截图中显示的1/3或1/2,但我无法获得比这更快的速度。 我没有收集数据损坏率的可靠统计数据,只是暂停时间较短,除此之外,数据损坏率对于我们的目的来说仍然过高。 明显延长暂停时间没有任何帮助,很可能使问题更糟(令人惊讶的是没有人);我再次没有收集足够的样本来对速率有信心。 更改暂停长度还会改变相对于SCLK最后一个下降边缘以及SCLK下一个上升边缘的DRDY下降时间。 换言之,我不能说在SCLK的最后一个下降边缘之后DRDY下降600 nsec会导致所有暂停的损坏,也不能说在SCLK的下一个上升边缘之前DRDY下降1100 nsec会导致所有暂停长度的损坏。 随着暂停时间的改变,关注的时机也发生了变化。

    在周末,我运行了一个修复程序,微控制器跟踪DRDY引脚的正时,如果它发现存在撞击导致损坏的正时的危险,它 将在发出RDATA命令之前暂停,并避免出现问题的正时 (这是我能找到的最简单的解决方案,考虑到我们所面临的一系列限制)。 此修复程序在周末运行了超过65个小时,但未检测到单个损坏实例。 在没有修复的同一配置中,平均每25-30秒检测一次损坏,大约2或3分钟是损坏事件之间最长的间隔。 虽然我不希望必须执行此变通办法,但在我们的应用程序中,这是一个可接受的修复方法。

    我很想听听你对这一切可能有什么想法。

    谢谢!

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

    在您发送的最新屏幕截图中,您能否告诉我们,当DRDY首次进入高位时,第一批SCLK的SDO是什么,然后第二个实例的SDO是什么? 它是否输出了两次状态词?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    汤姆-

    我会得到这些信息,但可能是明天晚些时候,我才能进行测试。

    感谢您继续为您提供帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    汤姆-

    以下是从RDATA命令接收到的字节。 在发送RDATA命令字节(12h)时收到列出的第一个字节,因此此处比数据表响应中所述的字节多一个字节。 我使用了一个对一系列响应的示波器来验证微控制器是否正确解释了传入的字节。 您会注意到,在发送RDATA命令字节时,ADS131始终发送C0。 状态寄存器似乎有效,似乎不再重复。 使用我们的配置,我不希望设置状态寄存器中的任何位(除了始终设置的最重要的位对)。

    对于此数据,ADS131配置为使用短接输入,速率为4 ksps。 所有其它配置与先前的帖子中所述的配置相同。 1字节(8位) SCLK脉冲之间的时间与前面的示波器截短中所示的时间相同。

    以下是被认为已损坏的响应的选择:
    C0h C0h 00h 00h FFh FEH EBh FFh FCh 7Fh FFh FCh C9h FFh FCh 7Eh FFh FBH FFh FEH 85h
    C0h C0h 00h 00h BFH FCh eeh 7Fh FCh 5Ch 0Fh FCh CEH 7Fh FFh EFH 7Fh FBH E5h 7Fh FCh 99h
    C0h C0h 00h 00h 3Fh FCh 2Fh FCh 70h FFh FCh CCH 7Fh FFh FFh FFh FFh FBH E7h 7Fh FFh FFh FFh
    C0h C0h 00h 00h 7Fh FCh 0Fh FCh 62h 4Fh FCh D3h 01h FCh 8Ch 00h 01h 0Fh FCh A6h
    C0h C0h 00h 00h 03h FCh FFh 02h ECH 70h C0h FCh CAH 7Fh FFh 03h FBH F4h FFh FFh
    C0h C0h 00h 00h 7Fh FEH F3h FFh 6Ah 1Fh FCh CEH 1Fh FCh 95h 7Fh FBH F3h 7Fh FEH 9Bh
    C0h C0h 00h 00h 3Fh FCh F8h 03h FCh 5Dh 07h FCh CCH 01h FCh 81h 0Fh FBH F2h 28h 08h 00h
    C0h C0h 00h 00h 1Fh FCh F2h 03h FCh 61h 0Fh FCh C8h FFh FFh FEH 1Fh FBH FBH 7Fh FCh A0h
    C0h C0h 00h 00h C0h 9Fh FFh FCh 7Bh FFh FEH D5h FFh FCh 6Fh FFh 41h 14h FFh EFH aah
    C0h C0h 00h 00h 8Fh F0h 00h 00h 20h 01h FCh C9h 7Fh FFh 77h FFh 7Fh FFh FFh
    C0h C0h 00h 00h 00h 00h 00h FFh FCh 5Eh FFh FCh D6H FFh FCh 7Fh FFh FFh FFh 7Fh FFh FFh FFh FFh
    C0h C0h 00h 00h 3Fh efh eeh BFH FCh 66h 07h FCh C5h 07h FCh 75h 07h FBH E1h 7Fh FFh
    C0h C0h 00h 00h FFh FFh 7Fh FCh 6Bh FFh FCh D5h FFh FCh 75h FFh FBH EAh FFh FCh FEH
    C0h C0h 00h 00h 1Fh FCh F0h 2Fh FCh 61h 0Fh FCh D3h 1Fh FCh 85h 5Fh FBH F2h FFh FCh 96h
    C0h C0h 00h 00h FFh FFh F8h FFh 66h BFH FFh 98h FFh F9h 53h B7h 10h 90h 9F8h ABH
    C0h C0h 00h 00h BFH FCh EFH 7Fh FCh 6Bh 4Fh FCh CEH 03h FCh 74h 7Fh FBH F4h 7Fh FFh FFh
    C0h C0h 00h 00h FFh E3h F7h FFh FCh 62h FFh FDH75h FFh FCH 75h FFh FFh FFh D3h FFh FBH 63h
    C0h C0h 00h 00h F9h 9Ch F2h B0h 01h 6Bh A7h FDH4Dh 7Fh FCh 80h 7Fh FFh FFh 00h FCh 9Bh
    C0h C0h 00h 00h BBH FCh FEH FFh FCh B2h FFh FFh FFh FFh FCh 4Bh FFh FBH FBH E7h FFh 1Dh
    C0h C0h 00h 00h 00h 00h 09h FFh FCh 6Ch FFh FCh CDH FFh FFh EFH 7Fh FFh FFh 7Fh FFh FFh
    C0h C0h 00h 00h DCH 3Eh 31h BDH 95h 6Fh 7Fh aah 6Eh FFh E1h 76h 7Fh FEH 6Eh FFh FCh A2H
    C0h C0h 00h 00h 1Fh FCh EBh 07h 5Ch 22h 0Fh FCh D0h 7Fh FFh 1Fh FBH F3h CBH FCh 98h
    C0h C0h 00h 00h 7Fh FFh FFh F9h 61h FEH A5h C3h FFh 68h 08h 86H C0h FFh 93h
    C0h C0h 00h 00h B3h 7Eh 7Bh FFh FCH 5Dh FFh FCH A4h FCH DBH FFh F9h aah FDHC9h
    C0h C0h 00h 00h 7Fh FCh FFh 7Fh 64h 7Fh FFh 1Fh FCh 7Bh BFH FBH E5h FFh FCh 96h
    C0h C0h 00h 00h 01h BDH F0h 7Fh FFh FFh FFh E6h D5h E3h FCh 8Dh FCh 3Ch 75h 00h 02h
    C0h C0h 00h 00h 3Fh FCh eeh 02h FCh 5Dh 07h FFh F3h 01h FCh 89h 0Fh FBH E5h FFh FCh FEH

    以下是来自相同数据集的一些被认为是好的回答,供参考:
    C0h C0h 00h 00h FFh FCh FBH FFh FCh 68h FFh FCh D3h FFh FCh 82H FFh FBH F1h FFh FCh aah
    C0h C0h 00h 00h FFh FCh E4h FFh FCh 64h FFh FCh CBH FFh 84h FFh FBH eeh FFh FCh 9Bh
    C0h C0h 00h 00h FFh FCh eeh FFh 70h FFh FCh C8h FFh FCh 78h FFh FBH E4h FFh FCh 9Fh
    C0h C0h 00h 00h FFh FCh F5h FFh FCh 58h FFh FCh CEH FFh 85h FFh FBH F3h FFh FCh 93h
    C0h C0h 00h 00h FFh FCh F0h FFh FCh 68h FFh FCh CBH FFh FCh 79h FFh FBH F1h FFh FCh A2H
    C0h C0h 00h 00h FFh FCh FEH FFh FCh 69h FFh FCh D0h FFh FCh 77H FFh FBH FFH FFh FCh 96h
    C0h C0h 00h 00h FFh FCh EFH FFh FCh 64h FFh FCh D4H FFh FCh 80h FFh FBH EFH FFh FCh A3H
    C0h C0h 00h 00h FFh FCh F8h FFh FCh 63h FFh FCh C1h FFh FCh 7Dh FFh FBH E7h FFh FCh A4h
    C0h C0h 00h 00h FFh FCh F7h FFh FCh 68h FFh FCh CBH FFh FCh 8Ah FFh FBH EFH EFH F6h FFh 92h
    C0h C0h 00h 00h FFh FCh F5h FFh 61h FFh FCh C5h FFh FCh 7Ah FFh FBH F3h FFh FCh A3h
    C0h C0h 00h 00h FFh FCh F5h FFh FCh 7Ah FFh FCh D0h FFh FCh 7Fh FFh FBH FFh FCh 93h
    C0h C0h 00h 00h FFh FCh E4h FFh FCh 66h FFh FCh C1h FFh FCh 81h FFh FBH EAh FFh FCh 9Dh
    C0h C0h 00h 00h FFh FCh F8h FFh FCh 61h FFh FCh C9h FFh FCh 8Ah FFh FBH F2h FFh FCh 99h
    C0h C0h 00h 00h FFh FCh E9h FFh FCh 67h FFh FCh CFH FFh FCh 84h FFh FBH EFH FFh FCh 90h

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

    在Tom的脱机帮助下,这被跟踪为/DRDY,它位于正在发出的RDATA命令的3.4 usec中,并且在/DRDY下降时未完全读取状态寄存器。 由于我们使用的是2.048 MHz的内部fCLK,因此这次大约为8 * tCLK (或2 * tUPDATE)。 不清楚的是,满足这一时机总是会损害结果,但除非满足这一时机,否则永远不会看到损坏的结果。

    有两种有效的变通办法:(1)延迟发布RDATA,直到/DRDY下降;或(2)如果/DRDY在读取状态寄存器之前下降,则重新发布RDATA。 很可能,读取数据的速度也很有效。

    非常感谢Tom的所有帮助!