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.

[参考译文] ADS124S08:读取有效转换数据时出现问题

Guru**** 2589280 points


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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1041748/ads124s08-trouble-reading-valid-conversion-data

器件型号:ADS124S08

您好!

这是一个后续问题:

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1022706/ads124s08-trouble-reading-conversion-data-with-internal-or-external-reference?tisearch=e2e-sitesearch

自从发布前一个线程以来、我确定我的软件中有一个错误、阻止了基准控制寄存器被写入。 从那时起、我修复了此错误、但仍然无法读取有效的转换数据。  我使用内部基准差分输入运行 ADC (Ain2接地并设置为负输入、Ain9设置为正输入信号并连接到 ADC 的 GPIO 信号)。 我禁用了 PGA、禁用了内部基准缓冲器。

我将 ADC GPIO 配置为输出、并将其连接到 Ain9输入信号、然后在每次转换读数时切换。 虽然 我希望根据这个 GPIO 输入读取0V 和3.3V 转换数据、但是我持续 获得与我期望的结果不匹配的转换结果。 有时、我会得到看起来是正确的结果、但这可能只是巧合。 我使用2.5SPS 的最慢数据速率进行调试、并轮询 DRDY 引脚以获取读取时序。

以下是我的 COM 的一些屏幕截图:

初始化(所有初始化命令之间有3.7ms 的延迟):

  1. 重置命令
  2. 配置系统注册  
    1. 启用发送状态
    2. 启用 CRC
  3. 配置输入多路复用器稳压器
    1. Ain2 =负输入  
    2. Ain9 =正输入
  4. 配置参考寄存器
    1. 内部基准电压始终开启
    2. 使用内部2.5V 基准
    3. 禁用两个基准缓冲器
  5. 配置 GPIO 数据寄存器
    1. GPIO 1 =输出
    2. 设置 GPIO 1 =高电平
  6. 配置 GPIO 配置寄存器
    1. 将 Ain7设置为 GPIO (GPIO-1)
  7. 配置数据速率寄存器
    1. 设置为2.5SPS
  8. 读回参考寄存器进行调试
  9. 启动命令

读取转换数据:

  1. 从 Ain9到 Ain9的低信号读数差:转换结果= 1、550、847
  2. 从 Ain9到 Ain9的高信号读数差:转换结果= 6、946、233
  3. 通过 Ain9进行良好的低信号读取? 转换结果= 124、865  
  4. 通过 Ain9进行良好的高信号读取? 转换结果= 8、388、607
  5. 显示时序的总体转换读数
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Braden、

    查看实际的 Saleae 图可能会更有帮助、因此如果您可以将文件附加到帖子中、我可以查看它。

    切换 GPIO 时、必须确保转换重新启动。  转换重新启动仅在某些寄存器写入时自动发生、例如更改多路复用器。  如果您更改 GPIO、所发生的情况是、您将获得高周期和低周期的混合采样。  我认为、如果在 GPIO 更改之后发送停止和启动命令、可能会获得更好的结果。  STOP 命令停止正在进行的转换、START 将重新启动转换。  首先、它本身不执行任何操作。  要重新启动转换、您必须先发送 STOP 命令、然后再发送 START 命令。

    此致、

    Bob B

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

    感谢 Bob、  

    下面是我的完整图。 我还将了解添加到启动/停止中或不使用 GPIO 进行测试是否有助于解决该问题。  

    谢谢、

    布拉登  

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

    您好、Braden、

    文件未附加。  请重试。

    为清晰起见、请参阅以下内容:

    下一个转换周期的开始时间遵循 DRDY。  DRDY 下降沿之间的时间是转换周期。  请注意、输入信号在转换期间发生变化、这是高电平和低电平周期的混合。  结果将是转换周期内输入信号的平均值、除非您在 GPIO 状态发生更改后重新启动转换。

    此致、

    Bob B

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

    我明白了、这是有道理的。 网站不允许我上传.Sal 文件、因此我将其作为 csv 上传。 明天早上、我将测试这些更新。  

    再次感谢、

    Bradene2e.ti.com/.../digital.csv

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

    尊敬的 Bob:

    我现在将输入连接到外部电源、并且不会切换任何 GPIO。 我已将外部电源从0.5V - 1.5V 变化、但可以看到 ADC 始终报告转换数据~6382003或~1.9V。 我已连接我的逻辑布线(通道0 - DRDY、通道1 - MISO、通道2 - CLK、通道3 - MOSI)。

    下面是我的启动过程的详细信息(每个命令之间的延迟为3.7ms):

    1. 发送 RESET 命令
    2. 读取状态寄存器- RDY 位= 0
    3. 清除状态寄存器中的 FL_POR 标志
    4. 配置 SYS reg 以启用 CRC 和状态
    5. 配置多路复用器 reg、以使 Ain9成为正输入、使 Ain2成为负输入(连接到 GND)
    6. 配置基准寄存器以使用内部基准并禁用缓冲器
    7. 将数据速率寄存器配置为尽可能低(2.5SPS)
    8. 发送开始消息

    我还验证了在 REFOUT 引脚上获得2.5V 电压。  

    e2e.ti.com/.../0714.digital.csv

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

    您好、Braden、

    csv 文件很难使用 、 我不知道我在输入电压方面具体看到的内容。  此时、返回屏幕快照可能会更好。  为什么不尽量简单。  我只会查看转换结果、不会包括状态和 CRC、除非您知道通信正常工作。

    在上一篇文章中发送原理图时、标签 AIN9与 ADC AIN9不直接对应。  是否确定使用了正确的多路复用器选择?  外部电源还应将负极连接连接到 AGND、并将 AIN2连接到 AGND。  必须禁用并旁路 PGA。  如果电源连接正确、您应该会看到电压发生变化。

    此致、

    Bob B

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

    尊敬的 Bob:  

    我不知道现在还需要尝试什么。 我上传了包含当前配置的原理图、其中显示 Ain9连接到外部电源、Ain2连接到 AGND、AGND 连接到 GND3V3。 测试点49连接到 AGND、测试点48连接到外部测试电源的正极侧。 测试电源接地至 AGND。

    以下是删除 CRC 和状态字节(使用默认配置)后我的通信屏幕截图的 PowerPoint。 我以1V 的电压运行连接到 Ain9的外部电源、并获得接近~1.9V (~6369198)的转换读数。 请注意、我仍然从 ADC 读取5个字节、这是我之前读取状态和 CRC 字节的代码的伪影(不要认为这是一个问题、只需查看转换数据开始重复)。

    e2e.ti.com/.../ASC_5F00_TIB_5F00_BUG_5F00_V2.pptx

    感谢您的所有帮助、

    布拉登

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

    每次看到 DRDY 变为低电平时、我也尝试停止转换、读取数据、然后再次启动、但结果仍然不准确。

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

    您好、Braden、

    您能否在初始化例程之后读回整个寄存器映射并向我提供数据? 这将有助于确保 ADC 处于预期状态、并确保将正确的值实际写入 ADC。

    您是否曾尝试使用 DMM 测量输入、只是为了确保 AIN9上的电压相对于接地实际为1V?

    在另一篇文章中、您提到数字接地和模拟接地连接在一起-如何连接? 这是在系统中的某个点、还是完整的接地层、恰好与之关联了不同的网络名称?

    布莱恩

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

    您好、Bryan、

    1. 我附加了一个功率点、在我的初始化例程运行后、每个寄存器的屏幕截图都在读取。  
    2. 我已经测量并可以看到,1V 出现在 Ain9和 Ain0两端。 我还在试验板上的另一个试验点上测量了 Ain9,但仍然可以看到1V
    3. 它是一个完整的接地层

    此时、我可能会购买 ADC 的评估板、并尝试将其连接到 PCB 以进一步解决问题、除非您有任何其他建议。  

    感谢您的帮助、

    e2e.ti.com/.../Full_5F00_Register_5F00_Map.pptx

    布拉登  

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

    您好、Braden、

    只需澄清一下、您的 INPUX 寄存器设置使您能够从 AINP = AIN9和 AINN = AIN2中读取。 但是、您在原理图上标记为"AIN9"的内容对应于实际 ADC 上的 AIN11。 我只想确认简单的命名交换没有问题。

    您是否曾尝试选择不同的频道并查看结果是否有所改善? 换言之、此问题是否与您测量的特定通道有关、或者这是否是一个系统范围的问题、可能表明另一个问题、例如布局不良?

    布莱恩

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

    啊、标记错误的 ADC 输入似乎是问题所在。 我相信现在一切都正常工作、并将以更高的速度开始测试。 感谢您的观看!

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

    听起来很好,布拉登,希望就是这样简单。

    我会认为这项工作现在已经结束。 如果您还有其他问题、请启动新的主题、我们可以为您提供支持

    布莱恩