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.

[参考译文] ADS7038-Q1:手动模式:需要有关过采样的阐释

Guru**** 2460850 points
Other Parts Discussed in Thread: ADS7038

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1379826/ads7038-q1-manual-mode-clarification-needed-about-oversampling

器件型号:ADS7038-Q1
主题中讨论的其他器件:ADS7038

工具与软件:

团队、
您能提供以下帮助吗?

现在、我们已决定使用手动模式、并通过 SPI 接口上的 CRC 保护数据。
使用的设置:
   手动模式:SEQUENCE_CFG_Register = 0x00
  CRC 启用:GENERAL_CFG_Register = 0x40
   启用附加状态:DATA_CFG_Register = 0x20
   过采样:OSR_CFG_Register = 0x07
到目前为止、我们将读取16位数据并查看4位状态和 CRC 总和。 CRC 总和拟合。
如果我们在数据中附加通道 ID 而不是状态、我们也可以查看预期结果。 那么、CRC 也是正确的。
 
现在的问题是:
1)数据表中的任何地方都没有说明附加的4个状态位中哪些状态位位于哪个位置。
我读取0x80 (这应该已经是8位而不是4位、我无法从数据表中读出的状态是什么)。
-你能解释一下吗?


我们在手动模式下使用过采样。
2)在哪里可以看到过采样序列是否已完成?
3) 3)在这种情况下、过采样是也从 CS 的上升沿开始 还是必须单独启动该序列(SEQUENCE_CF_Register 中的 SEQ_START)?

提前感谢、

Anthony

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

    Anthony、您好!

    1.数据表的第8.3.9.1节介绍了状态标志的顺序。 我在下面列出了它以供参考。 第8.3.9节中的表8-6还介绍了输出数据格式。 启用 CRC 后、应注意 SPI 帧长度为32位。

    2.过采样序列的状态可以通过轮询寄存器0x0 (SYSTEM_STATUS)的位3 (OSR_DONE)来完成。

    3.在手动模式下使用该器件时、无需设置 SEQ_START。 使用 OSR 模块时、第一次转换在 CS 的上升沿手动触发、连续的转换由内部振荡器触发。  

    此致、
    Joel

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

    您好、Joel:

    非常感谢您的回答。  

    我还有一个关于过采样的问题:

    表8.2显示了用于配置内部转换速率的时钟设置。 此表是否也适用于控制过采样率的手动模式? 如果不是、在 CS 上升沿触发的第一次转换之后执行的连续转换以哪个采样率执行?

    同时、我所做的:

    我实施了对 OSR 标志的轮询、并将过采样率设置为128 (OSR = 0x07)。

    我在 SPI 接口上看到的是:

    1.帧将通道 ID 设为0。

    帧发送寄存器0的读取命令。

    3.帧读取寄存器0 => STATUS == 0x80 =>过采样完成

    4.帧读取采样数据

    正如我提到过的、我将 OSR 设置为128、我预计 OSR 至少需要128us。 应在开始转换后的第一次读取时设置 OSR-Flag。 此外、转换数据(0xEF8A)会接缝错误、模拟电压设为500mV (AVDD 为3、3V)。

    这个顺序有什么问题?

    提前感谢

    Thomas

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

    您好、Thomas:

    是的、CLK_DIV 和 OSC_SEL 字段 适用于手动模式。

    在 MOSI 的第3帧(读取0x80 0x89)中、第一个字节是寄存器值、第二个字节是输出 CRC。 在第3点、您说0x80是否表示过采样已完成? 从寄存器0x0读取0x80意味着唯一返回的高电平位是 RSVD 位、该位始终返回高电平、因此读取时不会进行过采样。 如果我误解了这一点、请告诉我。 当 OSR 完成时、寄存器0x0应读取0x88。 0x89查找0x80的8位 CRC。

    我能在实际配置 OSR 的地方看到逻辑捕获吗?


    此致、
    Joel

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

    您好、Joel:

    感谢您的响应。 是的、您是对的、当 OSR 完成时、状态寄存器应为0x88。 我的错。 0x89是 CRC、正确。

    但绝不会设置 OSR 位。 我从状态寄存器中永远读取0x80。

    下面是我配置 OSR 的帧:

    寄存器的读回显示寄存器具有正确的值:

    此致

    Thomas

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

    您好、Thomas:

    感谢屏幕截图。 我不可能完全注意到您的转换设置或启动有任何问题。 您是否能够将逻辑捕获结果导出为.Sal 文件并将其附加到此处、以便我可以更仔细地了解整个传输过程?

    此致、
    Joel

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

    您好、Joel:

    附加了完整的 SALEA 文件。

    希望它有所帮助。

    开始采样后、您可以看到我不断读取 STATUS 寄存器。 在发送读取命令期间、芯片发回数据。 当您查看数据时、您会看到在读取某些数据(大约300us)后、芯片返回不同的值。 时间与过采样率和时钟设置相匹配、该值与应用于通道1的模拟值相匹配。

    因此、事实是、我认为转换已完成。 但是、不会设置 OSR_DONE 标志。

    模拟通道中显示的模拟值应用于 ads7038的模拟输入通道。

    感谢您的帮助

    此致  

    Thomas

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

    您好、Thomas:

    感谢您让我知道。 我将研究这是否属于器件的正常运行范围。

    此致、
    Joel

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

    您好、Thomas:

    我已经查看了您发送的文件、感谢您耐心等待。 您是否尝试过在未通过 SDI 向器件发出任何命令的情况下从器件启动正常转换? 如果是、您可以在所有寄存器配置后发送从器件进行常规转换的逻辑捕获文件吗? 如您所说、此转换似乎表明 OSR 转换已经完成、因为0x28B1是一个16位结果、但 OSR_DONE 位不会变为高电平。  

    我另一个怀疑是、当前转换确实进行了过采样、但 OSR_DONE 位仍然为0、因为下一次转换正在进行过采样。  

    此致、
    Joel

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

    您好、Joel:

    我已将另一个 SALEA 日志发送给 Marcela。

    在本日志中、我已按照数据表中的说明配置了手动模式、并对器件进行了胎面检查。 初始化之后、读取数据并切换到下一个通道(写入 manual_Chid)只需一个 SPI 周期(如数据表所述、如 图8-15。 在手动模式下启动转换和读取数据)。

    启用过采样、CRC 和状态附加。 这种模式会按预期工作。 但是、由于 OSR 标志不是附加状态标志的一部分、因此不存在过采样已完成的指示。  

    在轮询状态寄存器时、不清楚额外片选会发生什么情况。 它们是否开始新的转换? 它们会中断转换运行吗? 因此、我认为当器件处于手动模式时、根本无法轮询状态寄存器。

    此致

    Thomas

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

    您好、Thomas:

    谢谢您的参与。 这些是有趣的结果。 我也不太确定您的问题的答案。 请允许我留出一些时间 将自己的 SPI 序列写入此器件、并评估 OSR_DONE 位是否会变为高电平。 我会尽快回到你的身边。

    此致、
    Joel

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

    您好、Joel:

    您是否有机会设置您自己的 SPI 序列?

    谢谢!

    Thomas

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

    您好、Thomas:

    我还没有完全了解。 我希望在这一周结束前收到这份文件。 这似乎是此器件的一个常见问题、因此我一定会使用我的结论立即向您通报最新情况。 感谢您在这方面的耐心与合作。

    此致、
    Joel  

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

    您好、Thomas:

    在器件手动操作期间、我无法将 OSR_DONE 位设置为高电平。 目前、我不确定这是否符合预期、并且在其他一些条件或另一种模式下会升高、或者是否此功能未在器件中正确实现。 当这个位变为高电平然后变为低电平时、有可能有一个与相关的时序分量。

    本数据表的作者在商务旅行中、但我会尽可能方便地向他传达您的问题、并确定该位是否起作用。

    现在、您是否能够在不轮询此状态位的情况下继续进行设计?

    此致、
    Joel

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

    您好、Joel:

    是的、我们可以不经投票继续。 但是、如果不知道是否正在读取实际数据、则属于安全缺点。 目前、我们按照数据表中所述处理该器件(图8-15)。 请求新通道和读取数据只是一个 SPI 帧、以避免多个 CS。 1:启用附加 CRC 和通道 ID。 此外、还启用了过采样。 我们只需等待过采样的计算时间结束。 通过检测到请求的通道 ID 未在预期的数据帧内返回来检测 CRC 错误。

    因此、这两种机制(通过检查返回的通道 ID 来检测 CRC 错误、以及只是等待过采样时间而不轮询直接指示)都不是很完美、尤其是对于安全应用而言。 但它是我们目前拥有的最佳解决方案。  

    此致

    Thomas