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.

[参考译文] ADS131A04:SPI 状态寄存器指示存在一些错误-每帧发送的 SCLK 不足。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1246914/ads131a04-spi-status-register-indicates-there-are-some-errors---not-enough-sclks-are-sent-per-frame

器件型号:ADS131A04
主题中讨论的其他器件: ADS1299

大家好!

我正在尝试使用 nRF52开发套件连接 ADS131A04评估板。 我能够正确写入和读取所有寄存器。 我将按照其他 文章中共享的指令 来初始化和读取 ADC 数据。 我将使用具有固定数据帧的异步中断模式来读出数据。 下面是应该看到的、如果我成功使用了此模式。 当有来自 DOUT (MISO)的数据时、DRDY 变为低电平。

但是、在本例中、我从 STAT_S (SPI 状态寄存器)读取数据、并且它在其位0中显示为1、这意味着每个帧发送的 SCLK 不够。 如下图所示。 我将4MHz 用于 SPI 的 SCLK、它以前在不同的 ADS 芯片(ADS1299)上运行良好。 因此、我想知道我的设置是否有任何错误。 我的期望是、每当 DRDY 为低电平(I 通过 CLK2寄存器设置每2ms 一次)时、我会看到数据从 MISO 引脚输出、然而、在 DRDY 变为低电平8次后、只有2个数据序列输出。

希望收到 TI 支持团队和论坛其他成员的任何建议! 谢谢 Tai。

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

    快速更新! -我仍然收到一条消息 ,说 每个帧发送的 SCLK 不够。 但是、我删除了一个用于处理 while (1)循环中原始 ADC 值的函数、然后我能够接收以下结果、该结果与 ADS131A04数据表中提到的异步中断模式数据图一致。 现在的问题是、我无法从4个通道收集 ADC 数据、因为我在 ADC 通道3和4中始终看到0值、即使我尝试将一些电压连接到这些通道。 对此有什么建议吗?

    BTW 中、关于 M 引脚、输入 M0 -> IOVDD (32位器件字大小);M1 -> GND (使用24位转换器);M2 -> GND (用于关闭汉明数据)。

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

    尊敬的 Tai LE:

    您可以读回您的寄存器设置并将其发布在此处吗?

    此外,你能发布你的.Sal 文件,而不是发布他们的图像吗? 这样、我就可以看看计时等。

    最后、您是否确保开发套件和 A04 EVM 之间的牢固连接、包括接地连接? 如果能查看图片以了解电路板的物理连接和

    -Bryan

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

    您好、Bryan。 感谢您的回复! 我只是想确保您了解我的如下 M 引脚设置(M 引脚设置-> 32位字大小+ 24位 ADC 数据、8位零+无汉明码)

    对于寄存器设置:

    1. 发送 NULL_COMMAND -->收到0xFF04,然后等待~5ms。
    2. 发送 UNLOCK_COMMAND ->收到0x0655
    3. 配置寄存器:
      1. A_SYS_CFG -启用外部基准电压
      2. D_SYS_CFG -启用固定6个器件字并禁用 CRC
      3. CLk1 --除以2 (fICLK = fCLKIN (使用晶振-16.384))
      4. CLK2 -- fmod = fICLK/2 -- Fdata -- 500Hz (OSR 4096 -- Fdata at 2.048 fmod )--我再次检查 DRDY 引脚(以500Hz 正确触发)。
      5. ADC_ENA --启用所有 ADC 通道。
    4. 发送 WAKEUP_COMMAND -->收到0x0033。  
    5. sar.files 来自寄存器设置结果。
    6. 如上所述、我从  STAT_S (SPI 状态寄存器)读取数据、并且该寄存器在其位0 (0x2501)中显示为1。

    对于 ADC 数据读取:  请通过 SPI + DRDY 引脚触发器找到 SAR.files 及所有数据。

    如果您无法阅读我附加的文件、请告诉我。

    对于连接了 nRF52的 ADS131评估板、h 这是它的物理连接、我仔细检查了它的连接。 我将离开 IOVDD 引脚(它未连接到 nRF52开发套件的任何引脚)。 我在 ADS131板上测量此引脚的电压、结果仅为2.5V。 我查看了 ADS131电路板数据表、发现 IOVDD 是3.3V。  

    在尝试将其连接到外部3.3V 时、未能收到启用 ADS131芯片的就绪响应。 只是想知道这有什么问题吗?

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

    不知为何、我不知道如何附加文件。 请在 gg 驱动器中找到它们。 谢谢!

    drive.google.com/.../1i6Gx5XdhgV1KttRiECvleR4_Y0b9V8i1

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

    尊敬的 Tai LE:

    我们无法通过 Google Drive 访问文件。 当您尝试附加.sal 文件时发生了什么情况? 我见过其他人在过去添加文件扩展名.csv 到.sal 文件,例如"capture.sal.csv"。 然后我将删除".csv"以便能够实际打开该文件

    在您使用 PHI 控制器卡代替开发套件时、EVM 是否可以正常工作? 换句话说、我们能否确认问题不是 EVM 本身引起的、而是与您的开发套件或代码的物理连接?

    关于 M 引脚:由于我看不到您的板的底部、这意味着您已经将电阻焊接到正确的位置、以将这些引脚连接到它们各自的电平?

    需要连接 IOVDD 电压、否则 ADC 没有 IO 电压。 您可能会通过数字线路重新驱动该引脚、但如果没有此电压、ADC 就无法正常工作是有道理的。

    -Bryan

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

    我错误地点击了"这解决了我的问题"。 对不起!

    关于 M 引脚:由于我看不到板的底部,这意味着您已将电阻焊接到正确的位置以将这些引脚连接到各自的电平?

    可以。 我将电阻器焊接到了正确的位置。  

    我们无法通过 Google Drive 访问文件。 当您尝试附加.sal 文件时发生了什么情况? 我见过其他人在过去添加文件扩展名.csv 到.sal 文件,例如"capture.sal.csv"。 然后我将删除".csv "以便能够实际打开文件[/报价]

    您的建议是有效的。 给你。  

    e2e.ti.com/.../registers-setting.sal.csve2e.ti.com/.../SPI-data-_2D00_-ADC-reading.sal.csv

    需要连接 IOVDD 电压,否则 ADC 没有 IO 电压。 您可能会再次通过数字线路驱动此引脚、但如果没有这个电压、ADC 就无法正常工作是有意义的。

    我明白了。 但是、正如我之前提到的、将 IOVDD 连接到3.3V、我无法正确读取所有寄存器。 对此有什么建议吗? 同时,请帮助我看那些 Sal.file 并希望收到您的任何意见.   

    当您使用 PHI 控制器卡而不是开发套件时、EVM 是否可以正常工作? 换句话说、我们能否确认问题不是 EVM 本身引起的、而是与开发套件的物理连接还是代码引起的?

    我还没有将它插入 PHI 控制器、因为这是一个全新的器件、我假设我工作正常。

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

    尊敬的 Tai LE:

    感谢分享.Sal 信息,我很高兴这个方法 是有效的。

    您能否将 EVM 与 PHI 控制器连接起来、并确保其按预期运行? 请按照使用开发套件对其进行配置的方式准确配置 ADC/EVM -包括电源、输入信号等。 -并确保 ADC 可以正确转换。 这样、我们就可以确认 EVM 不存在问题。

    -Bryan

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

    谢谢、Bryan! 我会这样做、并让您保持贴图。 请不要提前阻止此主题。 测试 EVM 后、我会给您回复。 谢谢。

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

    尊敬的 Tai LE:

    我认为这些线程在不活动30天后会锁定、所以您应该没问题。

    -Bryan

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

    您好、Bryan:

    我正在使用 PHI 控制器来控制 EVM。 然而、在我将 M1实际连接到 GND (24位字大小)之前、我制作的代码是通过 SPI 发送的32位字大小。 使用 M0 --> IOVDD;M1->GND 和 M2->GND、使用 PHI 控制器可以正常运行、如下图所示。

    然后、我将 M1连接到 IOVDD、以具有32位字大小、再次使用 PHI 控制器。 不过、它未显示任何 ADC 值。 此外、STAT_M2寄存器一直显示 M1连接到 GND (同步主模式)。 我在 EVM 上对其进行了仔细检查、M1实际上已连接到 IOVDD (异步模式)。

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

    尊敬的 Tai LE:

    EVM 不支持32位模式、请参阅以下用户指南中的注释。

    您能否对开发套件和代码尝试相同的配置(24位字大小)以查看其效果是否更佳?

    -Bryan

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

    太棒了! 我现在正在检查它。 谢谢、Bryan!

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

    Bryan。 我更改了代码以发送24位字大小;但是、我仍然保持接收0xFF08而不是0xFF04。 以下是已附加的 SAL.FILE。 据我了解、ADS131芯片上电后应该会立即得到响应。 是这样吗?e2e.ti.com/.../new-register-setting.sal.csv

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

    尊敬的 Tai LE:

    今天我将深入探讨这一主题、

    -Bryan

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

    我以某种方式成功接收了 DRDY 响应。 我是通过向 IOVDD 引脚添加3.0V 而不是3.3V 来实现的。 我仍然不清楚为什么会发生这种情况。 我能够成功写入/读取寄存器。

    以下 SAL.file 是我的 ADC 数据。 对于24位字大小、我禁用 CRC 并选择动态数据帧。 我将读取15个字节、其中包括 3个字节的状态响应和4个12个字节的 ADC 通道。 我仍然遇到 SPI F_FRAME 故障错误。 现在、DRDY 每2ms 触发一次、但 SPI 的速度慢5倍、其中10ms 用于连续2次数据传输。 我已经阅读了论坛中关于 F_FRAME 错误的几篇文章、但还没有弄清楚。

    e2e.ti.com/.../SPI-dat-_2D00_-24_2D00_bit-word-size-_2D00_-F_5F00_FRAME-fault.sal.csv

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

    尊敬的 Tai LE:

    我很高兴你们取得了进展。 您从 ADC 接收的数据是否与您施加到器件的输入电压相匹配? 换言之、数据是否正确(帧故障除外)?

    为何在数据事务完成(所有5个字或15个字节都在时钟沿输出)后不使 CS 处于高电平? 为什么在 DRDY 每2ms 下降至低电平时不会再次读取数据?

    -Bryan

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

    您好、Bryan:

    我能够解决 DRDY 和 SPI 频率之间不匹配的问题。 刚刚在我的 SPI 数据处理程序中注释了所有 printf 行、这有助于加快 SPI 速度。

    虽然我能够正确地获得 ADC 数据(我向 ADC 输入端放置一个正弦波并正确读出)、但从该寄存器读取数据时、帧故障仍然会发生。  

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

    尊敬的 Tai LE:

    好的、我想知道 printf 语句的情况。 这些中断通常占用大量资源、目前还可能导致其它中断丢失。

    那么、现在一切似乎都按预期运行、除了仍然遇到 F_FRAME 故障-是这样吗?

    如果是这样、则数据表中有一条有关我在下面复制的 F_FRAME 故障的注释。 由于使用的是动态帧模式、因此此注释应适用于您的情形。 我会将其解释为、只要您能够成功读取数据和其余状态位、您就可以有效地忽略 F_FRAME 故障

    -Bryan

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

    明白了。 非常感谢您的帮助、Bryan!

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

    尊敬的 Tai LE:

    没问题,很高兴我们能提供帮助

    -Bryan