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.

[参考译文] ADS131A02:ADS131a02出现问题、我看到帧位错误0x2501

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1042723/ads131a02-issue-with-ads131a02-that-i-see-frame-bit-error-0x2501

器件型号:ADS131A02

我在异步从模式下使用 ADS131a02、32位器件字、汉明码字验证关闭。 初始化正确进行。 我获取的状态为0x2220至 NULL 命令、当我读取 STAT_S 寄存器时、它提供的状态为0x2501。 我正在传递 SCLK 的96位(状态+ 32位、通道1 + 32位、通道2)。 我还通过传递80位(通道状态为16位+通道为32位+通道为1位+ 32位)进行了检查、但仍然面临相同的问题。 SPI 主器件的 SCLK 设置为26MHz 频率。 如果我将 SCLK 频率增加到高于26MHz、ADS131a02将不会响应。 有关如何解决问题的任何输入。

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

    Prachan、您好!

    假设:

    因此、我们假设您将其用于您的设置:  

    并且、您已启用所有通道0 (ENA[3:0]= 0b1)。 如果未启用通道、动态帧(固定或 reg:0x0C[1])将不会查找通道数据。:

    并且您没有启用 CRC (CRC_EN 或 reg:0x0C[0])、因为它默认处于禁用状态。  启用 CRC 后、 我们希望在器件数据之后有另一个字。

    总结:

    然后 、96 (32/32/32)是正确数量的 SCLK。 我将确认状态响应 分配应为16位+ 16位零、通道1和2数据应为24位数据+ 8位零。  

    该错误清楚地表明存在的 SCLK 不足、因此我们只能假设最有可能出现的问题是时间问题。  我们可以快速检查一些粗略的数学计算、以了解在25MHz 下将数据速率与96个 SCLK 进行比较时、您还有多少时间剩余、并查看是否存在明显的问题。

    更现实地说、我建议使用逻辑分析仪、并在下一次数据速率切换之前检查是否获得了全部96个时钟。  

    由于数据表规格中存在这种情况、因此器件预计不会响应 SCLK > 25MHz:

    请告诉我们您的想法。

    最棒的

    Cole

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

    感谢您的回答、

    复位后、我获得了0xx02、如下图所示。

    下图来自逻辑分析仪、显示生成了96个 SCLK。

    MISO 显示状态中的0x2220值。

    为了解决上图中显示的 SPI 故障、我读取了 STAT_S 寄存器。

    下图显示了发送命令读取 STAT_S 寄存器的逻辑分析仪图像。

    下图显示了 STAT_S 寄存器中的值。

    STAT_S 寄存器的值为0x01、这意味着帧故障。

    我在接下来的周期中也会获得类似的波形、同时 STAT_S 提供0x01。 配置与第一个帖子中提到的相同。

    如果我做了任何错误、请告知、并帮助解决此问题。

    此致、

    Prachan

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

    感谢您的响应 Prachan。

    让我花一天或两天时间回顾一下您发送的内容。 您已确认帧故障持续到下一个周期、并且从未在任何其他周期清除、对吧?

    谢谢、

    Cole

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

    感谢您的回答、

    是的、您的理解是正确的、帧故障在下一个周期中不会清除。

    此致、

    Prachan

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

    嗨、Prachan、

    在读取 STAT_S 期间、我注意到96的最后两个时钟的频率较慢(周期较长)、"高"时间较短。 您是否确保在过去两个时钟周期内满足 t_su (DI)、t_w (SCHL)和任何其他适用的 SPI 规范?

    我发现您的时钟看起来很适合发送 NULL、但当您尝试读取 STAT_S 时、您会得到一个不均匀的时钟。 如果存在任何时序违例、则这会使每个周期的误差永久化。

    最棒的

    Cole

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

    感谢 Cole 的回答、

    图1显示了包含96个时钟周期的 SCLK。 图像2是放大后的图像、显示 SCLK 的高电平时间为84ns。 如图3所示、SCLK 的低电平时间为42ns。 如图4所示、SCLK 的周期为125ns。

    如上表 tw (SCHL) 32ns 或20ns 中所示、但在我们的案例中为84ns。

    您能不能深入了解一下、让我知道可以做些什么。

    此致、

    Prachan

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

    Prachan、您好!

    看起来时钟的形状再次改变、我想我知道原因。  本质上、 您似乎无法确认 信号是否快于41.6ns、因为您的设备每41.6ns 采样一次(本质上、逻辑分析仪上的每个点的间隔相等~42ns)。 虽然逻辑分析仪帮助确认了 SPI 值、但我认为可能是时候转到实际的示波器并探测 SCLK 和 MISO、以查看我们使用分析仪无法看到的其他情况了。 如果我们需要查看小于42ns 的值、那么我们需要的设备的读取速度会快于该值。

    如果我无法正确解释逻辑分析仪屏幕截图、请更正我的问题。

    最棒的

    Cole

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

    您好、Cole、

    在上一篇文章中、我们使用的 SCLK 为8MHz、但逻辑分析仪以24MHz 的频率进行采样。

    我们在获得0x2220后尝试读取 STAT_S 寄存器两次、但在每个响应中、我们都读取0x2501。 我们是否做了任何事情。 为什么即使在读取 STAT_S 寄存器之后也不会清除帧故障。

    图1:上图显示了响应读取0x2220和读取用于第一次迭代的 STAT_S 寄存器的命令

    图2:上图显示了响应读取0x2501和用于读取 STAT_S 寄存器以进行第二次迭代的命令

    图3:上图显示的响应读数为0x2501。

    此致、

    Prachan

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

    Prachan、您好!

    我提到 了一个可能的原因,可以解释为什么早些时候:

    [引用 userid="272387" URL"~/support/data-converters-group/data-converters/f/data-converters-forum/1042723/ads131a02-issue-with-ads131a02-that-i-see-frame-bit-error-0x2501/3881040 #3881040">我发现您的时钟看起来很奇怪、它可以发送 NULL、然后当您尝试读取 STAT_S 时、您会得到一个不均匀的时钟。 如果存在任何时序违规、则这将使每个周期的错误永久化。[/引用]

    如果您在每个数据包期间都存在时钟违例、则不会清除。

    [引用 userid="500758" URL"~/support/data-converters-group/data-converters/f/data-converters-forum/1042723/ads131a02-issue-with-ads131a02-that-i-see-frame-bit-error-0x2501/3899982 #3899982"]逻辑分析仪以24MHz 采样

    1/24MHz =~42ns、这与 屏幕截图相比是合理的。 但是、如果您尝试以更快的速度进行验证、则无法使用逻辑分析仪进行检测。

    如果您认为 SCLK 信号捕获正确、并且由于逻辑分析器的原因 SCLK 未运行到采样问题中、那么您的 SPI SCLK 不是8MHz。  这意味着器件会看到一个左侧 SCLK、因为转换不在波形的中间。  这意味 着 SCLK 频率在5.9MHz 和11.9MHz 之间交替、平均值为~8.9MHz、这会导致问题。 在数据存在的情况下、我无法证明这是错误的。 我认为这不是真的、但我们现在需要验证假设、因为我认为我们都同意您所做的事情没有内在的错误。

    这就是为什么示波器屏幕截图将证明 SCLK 处于您所期望的8MHz、并证明我们所做的假设。

    最棒的

    Cole

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

    您好、Cole、

    问题 1:我们对硬件进行了一些更改、现在我们没有收到帧故障错误。 但是、即使我们未连接任何电压源、我们也会为两个通道获取一些值图1和图2是从逻辑分析仪读取的样本。 我已经设置了

    • 将 A_SYS_CFG 寄存器更改为0x60

    • D_SYS_CFG 寄存器更改为0x3E

    • CLK1寄存器至0x02

    • CLK2寄存器为0x20

    如果我有任何问题、请告诉我。

    图1:ADC 数据样本1

    图2:ADC 数据样本2

    问题2:无论通道1和通道2数据的变化如何、DRDY 都是连续生成的、还是仅当通道1和通道2数据发生变化时才生成 DRDY?

    问题 3:您能否通过示例说明如何根据通道1和2的值计算电压。

    问题 4:关于内部和外部 Vref。 何时使用内部 Vref 或外部 Vref。 目前、我们有一个如下图所示的电路、该电路使用2.5V 的外部 Vref。它是否正确?

    此致、

    Prachan

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

    Prachan、您好!

    如果您下次可以使用页面顶部的橙色"询问相关问题"、询问与启动该主题帖的问题不同的相关问题? 它有助于实现论坛可搜索性并保持线程长度可管理。

    问题 1:我们对硬件进行了一些更改、现在我们没有收到帧故障错误。 但是、即使我们未连接任何电压源、我们也会为两个通道获取一些值图1和图2是从逻辑分析仪读取的样本。

    现在我将忽略这个、因为稍后应该通过回答问题来回答这个问题。

    问题2:无论通道1和通道2数据的变化如何、DRDY 都是连续生成的、还是仅当通道1和通道2数据发生变化时才生成 DRDY?

    是的、nDRDY 将始终以采样率生成、通道1和通道2将同时采样。 有关 Δ-Σ 转换器的基本原理、请访问 :https://training.ti.com/ti-precision-labs-sar-delta-sigma-basic-operation 、这有助于解释原因。

    简而言之、Δ-Σ 始终对输入值进行转换和平均计算。 这不是可以拍摄输入快照的 SAR、Δ-Σ 必须始终作为其架构的一部分进行转换。  由于 ADS131A02器件内实际上有两个 ADC、 每个通道连接一个 ADC、因此您将持续从器件中获取两个通道的转换结果。

    我尚未计算上述数据的输出、但有人告诉我 、在考虑输入悬空时发生的情况以及数据表中描述的固有噪声和偏移时、预期输出。

    问题 3:您能否通过示例说明如何根据通道1和2的值计算电压。

    请访问此博客详细介绍此概念: [博客]数学:如何将 ADC 代码转换为电压(第1部分) 您将在模拟工程师口袋参考书  https://www.ti.com/lit/slyw038第123页找到一个示例 

    通常、输入始终与基准电压进行比较、并创建一个代码以作为基准电压的百分比。

    问题 4:关于内部和外部 Vref。 何时使用内部 Vref 或外部 Vref。 目前、我们有一个如下图所示的电路、该电路使用2.5V 的外部 Vref。它是否正确?

    假设 您在使用内部基准时取消了 R49、并且您针对用作基准的电压源所需的任何输出调整了 C53、则图像看起来很好。

    使用外部基准的主要原因是为了实现灵活性和优于器件内部提供的性能。  

    例如、我复制并粘贴了上面的内部参考规格。 最大温度漂移为20ppm/C、这可能不够精确、具体取决于应用。 温度漂移会导致百分比误差、这可能是不可接受的、因此用户可以使用具有更严格温度漂移规格的外部基准、并满足其性能需求。 如果您要启动并运行系统、请使用内部基准并稍后进行错误分析。

    作为一点反馈、这些类型的问题显示了基础知识水平和初学者知识水平。 我强烈建议您观看 TIPL ADC 视频系列 https://training.ti.com/introduction-analogue-digital-converters-adcs  

    最棒的

    Cole

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

    感谢 Cole 抽出时间。