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.

[参考译文] ADS131M04EVM:在发送一段 SYNC 命令后、ADC 不会保持同步

Guru**** 2513185 points
Other Parts Discussed in Thread: ADS131M04EVM, ADS131M04

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1551831/ads131m04evm-adcs-does-not-remain-in-sync-after-some-period-of-sync-command-is-sent

器件型号:ADS131M04EVM
主题中讨论的其他器件:ADS131M04

工具/软件:

尊敬的团队:

我已通过相同的 SPI 线路 (MISO、MOSI 和 SCLK) 将 2 块 ADS131 EVM 板(使用外部电源)连接到 MCU。 两个 ADC 的 DRDY 和 CS 连接到单独的 GPIO。

OSR I 保持 512 (8kSPS)、  

在切换 Sync 引脚之后、两个 ADC 都将保持同步、但经过一段时间后、两个 ADC 都会缓慢退出 SYNC。 我正在监控 ADC 和以下两个器件的 DRDY 信号、我附加了 SYNC 切换后和同步 1 分钟后的屏幕截图。

SYNC 切换后

2.一分钟后,两个 DRDY 之间的切换~4.5us。

如果这种行为很常见、那么我们需要以何种速率同步器件?

此外、我已经看到、同步完成后、在两个 ADC 上获得的下一个响应有时会发生变化。 我在发送同步信号的多次试验中检查了该结果。 即使未重新配置 ADC 或未提供复位信号、也会设置状态寄存器中的 RESET 位和 REG_MAP 位。

此致、

Shraddha

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

    尊敬的 Shraddha naik:

    您是使用来自同一振荡器的相同时钟、还是每个 EVM 在 EVM 上使用自己的振荡器?

    BR、

    Dale

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

    尊敬的 Dale:

    每个 EVM 在 EVM 上使用自己的振荡器。

    此致、

    Shraddha

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

    尊敬的 Shraddha naik:

    为了同步多个 ADS131M04 ADC、 应在 ADC/EVM 之间使用或共享相同的振荡器。 您可以移除其中一个 ADS131M04EVM 上 JP6 上的跳线、然后使用一根导线将另一个 EVM 的时钟连接到此 EVM 的引脚 2/4/6、以共享同一时钟。

    BR、

    Dale

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

    尊敬的 Dale:

    在我们的应用中、我们对两个 ADC 使用单独的振荡器。

    此外、一旦同步完成、我在两个 ADC 上得到的下一个响应有时会发生变化。 我在发送同步信号的多次试验中检查了该结果。 即使未重新配置 ADC 或未提供复位信号、也会设置状态寄存器中的复位位位位和 REG_MAP 位。

    另外、您能否回答这个问题。

    此致、

    Shraddha

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

    尊敬的 Shraddha:

    此外、我已经看到、同步完成后、在两个 ADC 上获得的下一个响应有时会发生变化。  我在发送同步信号的多次试验中检查了该结果。

    当在 SYNC/RESET 引脚上施加负 SYNC 脉冲时、器件会在内部将脉冲的前负边沿与其跟踪数据速率的内部时钟进行比较。 如果配置为使用相位校准设置 0b 置为有效、则内部数据速率时钟具有与 DRDY 引脚等效的时序。 如果 SYNC/RESET 上的负边沿与内部数据速率时钟对齐、则器件被确定为同步、因此不采取任何操作。 如果不对齐、器件上的数字滤波器会复位、以便与 SYNC/RESET 脉冲同步。 当两 个 ADC 使用两个单独的振荡器时、毫无疑问、它们可能具有不同的下一个响应(应用 SYNC 时起的持续时间)、但 ADC 应 同步、您可以检查两个 ADC /DRDY 的下降沿。

    即使 ADC 未复位或未提供复位信号、STATUS 寄存器中的复位位和 REG_MAP 位也会置位。

    SYNC/RESET 引脚是一个双功能引脚、可将转换与外部事件同步、并可实现硬件器件复位。  在 SYNC/RESET 引脚上提供负脉冲、持续时间小于 tw (RSL) 但大于 CLKIN 周期、以触发同步。 SYNC/RESET 引脚上持续时间 大于 tw (RSL) 的负脉冲 将导致复位并设置状态寄存器中的 RESET 位。  STATUS 寄存器中的 REG_MAP 位会进行相应的设置、以在寄存器映射 CRC 更改(包括寄存器写入引起的更改)时标记主机。

    但经过一段时间后、两个 ADC 都缓慢不同步。

    当您对这两个 ADC 使用单独的振荡器时、振荡器可能会以不同方式移位、并导致主机和器件失去同步、因此 需要定期同步以在两个 ADC 之间重新对齐数据捕获。 最好使用相同的时钟源。

    BR、

    Dale

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

    尊敬的 Dale:

    感谢您的澄清。

    SYNC/RESET 引脚是一个双功能引脚、能够将转换与外部事件同步、并允许硬件器件复位。  在 SYNC/RESET 引脚上提供负脉冲、持续时间小于 tw (RSL) 但大于 CLKIN 周期、以触发同步。 SYNC/RESET 引脚上持续时间 大于 tw (RSL) 的负脉冲 将导致复位并设置状态寄存器中的 RESET 位。  STATUS 寄存器中的 REG_MAP 位会进行相应的设置、以在寄存器映射 CRC 更改(包括寄存器写入引起的更改)时标记主机。

    但是、对于本主题、我们确保切换 SYNC/RESET 引脚的时间~2us、以同步两个 ADC。  

    状态寄存器响应:0x450F --> 0100 0101 0000 1111 -->第 10 位复位状态、第 14 位重新同步状态

    也会为 SYNC 命令设置 RESET 状态位。 您能对此进行澄清吗?

    此致、

    Shraddha

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

    尊敬的 Shraddha:

    您能否提供时序(包括 SPI 总线以及/SYNC 和/DRDY)? 使用逻辑分析仪捕获/SYNC 之前和之后的帧时序会很好。

    BR、

    Dale  

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

    尊敬的 Dale:

    我在同步之前和之后都连接了 SPI 总线数据以及 DRDY 和同步信号。

    然后同步

    SYNC 引脚切换 2.5us

    到 SYNC 之后发生第 1 个 DRDY 中断的持续时间为 123us

    同步后的器件 1 数据。 此处为第 1 个 16 位响应状态寄存器:0x450F  

    器件 2 上的响应也相同

    此致、

    Shraddha

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

    尊敬的  Shraddha naik:

    现在,戴尔已经离开了办公室,所以我会帮助你,直到他回来

    您是否使用 24 位帧? 这让我感到困惑、因为您的所有数据都以一组两个字节后跟另一个字节的形式发送。 为什么不同时发送所有 3 个字节?

    为什么不在每一帧结束时将 CS 设为高电平以确保器件不会脱离同步? SCLK 引脚上的任何干扰都将被 ADC 视为有效输入、这会导致您的通信中断。

    -布莱恩

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

    您好、Bryan、

    是的、我使用的是 24 位帧、由于我的 MCU 不支持 24 位、因此我可以选择发送 8 位 3 次或 16+8 位。 我觉得稍后的选项可以节省数据传输时间。

    为什么不在每帧结束时将 CS 设为高电平以确保设备不会脱离同步?

    它是我用来读取 ADC 通道数据的 TI 库代码、其中 CS 引脚被设为低电平、然后在 CS 引脚被设为高电平之前读取所有 4 个通道数据。 每帧后、CS 引脚不会变为高电平。

    [引述 userid=“204916" url="“ url="~“~/support/interface-group/interface/f/interface-forum/1551831/ads131m04evm-adcs-does-not-remain-in-sync-after-some-period-of-sync-command-is-sent/5989371

    SCLK 引脚上的任何干扰都将被 ADC 视为有效输入、这会导致您的通信中断。

    [/报价]

    在 SCLK 或 CS 引脚上没有看到任何干扰。

    此致、

    Shraddha

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

    您好、Bryan、

    是的、我使用的是 24 位帧、由于我的 MCU 不支持 24 位、因此我可以选择发送 8 位 3 次或 16+8 位。 我觉得稍后的选项可以节省数据传输时间。

    为什么不在每帧结束时将 CS 设为高电平以确保设备不会脱离同步?

    它是我用来读取 ADC 通道数据的 TI 库代码、其中 CS 引脚被设为低电平、然后在 CS 引脚被设为高电平之前读取所有 4 个通道数据。 每帧后、CS 引脚不会变为高电平。

    [引述 userid=“204916" url="“ url="~“~/support/interface-group/interface/f/interface-forum/1551831/ads131m04evm-adcs-does-not-remain-in-sync-after-some-period-of-sync-command-is-sent/5989371

    SCLK 引脚上的任何干扰都将被 ADC 视为有效输入、这会导致您的通信中断。

    [/报价]

    在 SCLK 或 CS 引脚上没有看到任何干扰。

    此致、

    Shraddha

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

    尊敬的 Shraddha:

    感谢您的耐心。 我检查了您分享的时间和您提供的所有信息。  

    您遇到了 “状态寄存器响应:0x450F --> 0100 0101 0000 1111 -->第 10 位复位状态、第 14 位重新同步状态“的问题

    复位位 : 在 ADC 上电后,默认情况下,状态寄存器中的复位状态位始终为 1b ,当您读取每帧中的数据时,您可以看到该位设置为“1",“,因此来自 ADS131M04 的响应是正确的。 在 从 ADC 读取状态寄存器之前、您可以向 MODE 寄存器中的 RESET 位写入 0b、以清除状态寄存器中的 RESET 状态位。

    RESYNC 位 : STATUS 寄存器中的 F_RESYNC 位是 ADC 重新同步指示器, 它 让您知道是否发生了重新同步,因此来自 ADS131M04 ADC 的响应是正确的。

    您还提到了“其中 CS 引脚为低电平、然后在 CS 引脚为高电平之前读取所有 4 通道数据。 每个帧后 CS 引脚不会变为高电平。“ 请注意、建议为每个帧切换/CS、否则您必须 确保在与 ADC 通信时向 ADC 发送正确数量的字节/SCLK。

    BR、

    Dale