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 SPI 无数据

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/877475/ads131a02-ads131a02-spi-no-data

器件型号:ADS131A02

您好!

我将 ADS131A02与微控制器配合使用、并且数据通道有问题。 数据通道始终读取0x00。

配置:

M0 =浮点

M1 = GND

M2 = GND

接口模式:同步从机模式

读取和写入寄存器工作正常、当我发送命令时、我收到正确的 ACK。

初始化设置:

  • 复位
  • 解锁命令、然后我接收0x0655
  • 配置设备、启用通道。
  • 写入的寄存器是正确的
  • 将0Fh 写入 ADC_ENA 寄存器以启用通道
  • WAKEUP 命令
  • 锁定命令

谢谢、

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

    Nico、

    目前在 e2e 上有类似的帖子、其他人在使用同步从模式从器件获取数据时遇到问题。 虽然您没有菊花链式第二个器件、但您使用的是同步从模式。 以下是我提到的帖子:  

    https://e2e.ti.com/support/data-converters/f/73/p/877552/3246867

    我相信他至少能够从第一个同步从器件中获取数据。

    我需要一些时间来阅读这两个帖子、并尝试帮助对它们进行调试。 现在、阅读我对另一篇文章的评论、看看它是否有用。  



    吴约瑟

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

    您好、Joseph、

    感谢您的回复。 我将阅读此帖子。

    Nico

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

    Nico、


    很抱歉耽误你的时间。 我想查看您是否能够从器件中获取任何数据。

    在序列中、执行 LOCK 命令后、您应该在下一个通信帧中获得0555h 响应。 当您读取 ADC 数据时、您从 ADC 获得了什么响应? 如果您发送 NULL 命令来读取 ADC 数据、则应该读取帧的第一个器件字的器件状态、该字以22xx 开头。

    您是否获得了超过前4次数据读取/帧的000000h 数据?

    吴约瑟

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

    吴约瑟

    当我发送 NULL 命令时,我读取:0xFF02

    Nico

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

    Nico、

    您能否返回检查代码以在某个位置进行复位? 您可以根据发送的每个命令的响应进行检查。 如果您得到0xFF02、这可能意味着器件已复位。 这也意味着器件返回其默认状态、并且寄存器也被锁定。  

    当我询问读操作时、我希望基于向器件发送 NULL 来获得0x22xx 响应。 这就是它看起来的样子:

    REG (STAT_1)本来是0x22xx 响应。 但是、由于您是 getting 0xFF02、这可能意味着器件已复位。 它可能已通过命令、引脚或关闭器件电源进行复位。 这是复位时会发生的情况:

    如果您有逻辑分析仪、则应能够查看发送到器件的命令以及下一个字帧中的器件响应。 您可以验证主器件和 ADS131A02之间的所有通信。

    吴约瑟

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

    Joseph、

    谢谢你。 我在 CLKPhase = 1时解决了我的通信问题。 现在、我在发送0x0655时接收正确的 ACK。

    当我发送 NULL 命令时、我接收到0x2220。

    Nico

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

    Nico、

    只是为了确保您现在能够收集数据吗? 在您的序列中,您将显示一个 WAKEUP、NULL、UNLOCK、NULL 以及相应的响应。 我会注意到、数据表的第79页上有一个显示器件启动的流程图、其中包含命令建议。 您应该能够按照流程图运行 ADC。

    我现在将关闭此帖子、但如果您尚未使器件正常运行、请发布回帖子、我们可以继续处理此主题。


    吴约瑟

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

    您好!

    我仍然无法读取 ADC 数据。

    当我读取 STAT_1寄存器时、我读取0x10

    • 寄存器 STAT_P = 0x03
    • 寄存器 STAT_N = 0x03

    我不明白为什么输入引脚超过设置的阈值。 当我将输入 AIN1P 强制为 AVSS 时、我具有相同的结果。

    • AVSS = 0V
    • AIN1N = 0V
    • AIN1P = 0V

    谢谢、

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

    Nico、


    由于 AINP 和 AINN = 0V、因此输入将非常接近 AVSS。 除非启用了负电荷泵、否则 STAT_P 和 STAT_N 会警告您 ADC 的输入接近 AVDD 或 AVSS。 当 COMP_TH[2:0]= 000时、只要输入处于电源轨的5%范围内、该阈值即为。 如果您的电源为3.3V、则只要输入引脚大于3.135V 或小于0.165V、就会标记 STAT_P 或 STAT_N。 通过将输入接地、将标记两个输入。 图42显示了针对电源设置阈值电平的 COMP_TH[2:0]。 结果被锁存在状态寄存器中。

    阈值显示在 A_SYS_CFG 寄存器中、并设置为电源电压的百分比。

    这些标志只是一个警告。 AVSS 和 AVDD 是有效输入、我还会注意到、无论您测量的是什么、传感器与 ADC 和微控制器之间都必须有一个公共接地。 如果传感器为浮动电压、则可能触发标志。

    当您将输入连接到地面上时、您是否仍在获取数据? 您读取的转换值是多少?


    吴约瑟