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.

[参考译文] ADS131E08:使用 ADS131E08开发套件。 ADC 配置寄存器读回正确。 但是、ADC RDATAC 模式持续返回相同的错误值

Guru**** 2516070 points
Other Parts Discussed in Thread: ADS131E08

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/970642/ads131e08-using-ads131e08-dev-kit-adc-config-registers-read-back-correctly-however-adc-rdatac-mode-continuously-returns-same-incorrect-values

器件型号:ADS131E08

大家好、

简而言之、我能够写入配置寄存器并读回它们。 但是、当进入 RDATAC 模式时、ADC 在采样时不会报告正确的数据。 每个通道都会卡在一个值上、并在每个 DRDY 下降沿周期上始终重复该值。

此时、我不确定是否在模拟侧设置了错误的 PDK 开发套件。 或者如果存在配置设置问题、ADC 将挂起。

我使用的是 ADS131E08-EBM-PDK 套件。 我移除了顶部板、并将 SPI 信号、DRDY 和复位输入连接到 FPGA 开发套件。

ADS131E08开发套件具有为电路板供电的5V 电压以及为 DVDD 电源轨提供的3.3V 电压。 通过跳线选择3V 单极模拟电源。 外部振荡器被启用、2.5V 被连接至 VREFP 以用作一个外部基准。 我在通道1上连接了+1.25V 电压、其余输入保持悬空。

FPGA 使用80ns SCLK、并遵循数据表中要求的 TCLK 延迟。 我将所有内容拆分为8个时钟周期、并在每个字节后插入 TCLK 延迟。 SCLK 只在写入/读取周期内运行。

启用 ADC 的过程是:

  1. 为 ADC 加电。 (ADC 复位保持高电平、START 保持高电平)
  2. 等待 VCAP 稳定
  3. 发出复位脉冲并等待18个 TCLKS
  4. 发送 SDATAC 命令
  5. 读取 CONFIG2、按预期接收0xE0
  6. 将0x40写入 CONFIG3 (使用外部基准)
  7. 将0xE4写入 CONFIG2 (禁用测试信号)
  8. 将0xD6写入 CONFIG1 (将速率设置为1K)
  9. 读取 CONFIG3= 0x41 (数据表显示 LSB 位是保留的、可以返回为1或0)
  10. 读取 CONFIG2= 0xE5
  11. 读取 CONFIG1 = 0xD6
  12. 将 START 信号设置为高电平(立即保持高电平)
  13. 等待4个 TCLK 周期(我是否需要在这里等待更长的时间、还是因为 DRDY 在就绪前不会变为低电平?)
  14. 发送 RDATAC 命令
  15. 等待直至 DRDY 变为低电平
  16. 每次 DRDY 变低时对 ADC 采样。 (每次在每个序列上、我都确认了正确的216个时钟周期)
    1. 对于 STATUS->I 得到0xC0F000 (正确的 ID,表示输入1-4出现故障,此时电压处于范围之内或根本没有施加电压?)
    2. 通道1回读0x640000
    3. 通道3-4始终读回0x800000
    4. 更改这些通道上的输入电压不会产生影响。 它始终报告相同的内容

我的另一个观察结果是、当我读取 ADC 时、会在下一个 SPI 周期输出下一个寄存器数据、此时要求仅读取一个通道。 它不会影响我,但这似乎是 ADC 的错误行为。

我已包括一些已标记的屏幕截图、其中显示了成功的配置读取、下一个 CS 周期中的奇怪下一个寄存器数据以及 ADC 采样。

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

    您好、Tony、

    感谢您的发帖。

    您的启动例程似乎正确。 我假设您未写入的寄存器保留为默认值吗? 是否可以进行完整的寄存器读取以进行确认? 由 ADC 通道转换的电压取决于该通道的 MUXn[2:0]设置(请参阅 CHnSET 寄存器)。

    当您向任何通道施加输入电压时、必须将输入共模保持在数据表中给出的范围内。 共模是在 INxP 和 INxN 上看到的平均电压、通常保持在1/2 Vs 附近。 测试中连接到 IN1N 的是什么?

    此致、

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

    您好、Ryan、

    正确、我将其他寄存器保留为默认值。 至于 IN 信号、我将 AVSS 连接到负输入、将1.25V 连接到正输入。 我在通道1和2上尝试过此操作。 如果我相对于 INN 测量 INP、则测量值为1.25V。 如果我相对于 AVSS 测量 INP、则测量1.25V。 如果我相对于 AVSS 测量 INN、我测量0V。 在这种单极开发套件情况下、AVSS 也与 AGND 相连。 我在这里看不到共模电压的问题。 如果我移除1.25V 或增大/减小1.25V、我看不到回读值发生变化、它始终返回相同的错误值。

    另一个需要提及的数据点是、我之前没有在帖子中提及过。 DRDY 信号按预期以1kHz 的频率进行脉冲。

    我继续读取所有寄存器。 CHnSET 寄存器返回正确的值0x10。 以下是正确读取的示例:

    我终于在这里看到 ID 寄存器有一些奇怪的东西。 每个其他寄存器看起来都是正确的、默认情况下都需要这个寄存器。  我将返回一个0xBC、这应该是不可能的(数据表显示为0xD2)。 上半字节是对的、但下半字节不等于任何值。 我在论坛上看到其他文章抱怨 ID 寄存器恢复为0xD0 (在4通道模式下)。 由于两个半字节都不正确、这似乎不是同一个问题。 位6应该为高电平、位5应该为低电平、但是它们是相反的。 此外、低半字节中的位3和位2应始终为0、并且我在每个位上读回1。 假设它处于4通道模式、通道1和2应该正常工作、但情况并非如此。

    ID 是错误的、而其他所有器件都在工作、因此我开始想知道该转换器是否以某种工厂测试模式加电?  

    此外、我还回顾了加电时序、因为一些论坛讨论了该时序、并且时序是通过裕量来满足的。 下面是我要做的:

    1. 安装 JP4跳线以保持 PWDN 信号被拉至低电平
    2. 为 AVDD 加电(我也尝试同时使 AVDD/DVDD 加电)
    3. 为 DVDD 加电
    4. 等待秒
    5. 拆下跳线
    6. 等待秒
    7. 让 FPGA 运行重置->配置例程
      1. FPGA 在复位时启动高电平、然后等待22us、然后变为低电平1us、并在发送第一条 SDATAC 命令之前恢复高电平22us

    以下是读取的错误 ID:  

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

    您好 Tony、

    通常、当不遵循 POR (上电复位)过程时、ID 寄存器读回错误。 但是、您似乎通过等待电源斜升并发出复位脉冲来正确执行此操作。 内部默认振荡器(CLKSEL = 1)为2.048MHz、因此1us 应该足够器件识别复位脉冲。 无需在电源斜升时使用跳线将 PWDN 引脚保持在低电平、但它不应产生任何影响。

    您是否测试过其他器件以查看行为是否一致? 如果将 EVM 恢复为出厂默认跳线设置并将其与随附的 MMB0主板配对、EVM 软件是否会读回相同的 ID 值?

    此致、

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

    您好、Ryan、

    我按照您的建议继续使用软件和主板。 遗憾的是、软件无法正确读取任何寄存器。 我不确定是有跳线设置还是有坏板。

    我确实验证主板是否正在发送 CS/ SCLK 和 DIN 线。 我尝试重置、关闭电源、重新安装软件、但仍然收到相同的结果。  

    我的跳线设置为(我认为这些是默认设置):

    • JP1-1-2
    • JP3:已安装
    • JP4:已删除
    • JP5:2-3
    • JP6:1-2
    • JP7:2-3
    • JP8:1-2 (我也尝试了2-3)
    • JP9:2-3
    • JP10:1-2
    • JP11:2-3

    这是工具加载并同步后的值:

    那么、这是我运行 Refresh registers 命令后的值:

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

    您好、Tony、

    请确保您使用的是正确的 GUI 软件。 屏幕截图顶部的黑色栏显示"ADS130E08EVM"。 这可能是 GUI 无法读回任何寄存器值的原因。

    www.ti.com/.../ADS131E08EVM-PDK

    此致、

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

    您好、Ryan、

    不幸的是,这不是问题。 我已经在使用错误的软件时犯了错误。 我已在多台 PC 上安装了正确的 ADS131E08软件、并也安装了 PAMB 驱动程序。 我继续在寄存器中接收0的结果:

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

    尊敬的 Tony:此 EVM 不使用 PAMB 硬件平台或相关驱动程序。 ADS131E08EVM 附带 MMB0、并使用 USBStyx 和 NI-VISA 驱动器。 这是此 EVM 支持的唯一主板平台。

    您能否在"Device Manager (设备管理器)"下检查 EVM 的枚举方式?

    此致、

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

    在运行 ADS131E08软件之前、我只能看到 NI-VISA USB Devices -> MMB0 (NI-VISA)。

    运行软件后、NI_VISA 将从设备管理器中消失、我在设备管理器中看到 libusb-Win32设备-> USBStyx

    是这样吗?

    我已根据另一位 TI 员工的说明尝试在另一台设备上安装 PAMB。 我认为我们将驱动程序分配给了其他设备、而不是这个开发套件。

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

    您好、Tony、

    是的、如您所见、NI-VISA 应更改为 libusb-Win32设备-> USBStyx。 这是否解决了该问题并允许 EVM GUI 在其默认配置下与硬件通信?

    此致、

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

    您好、Ryan、

    结果、我的开发套件一直有缺陷。 我今天收到了 TI 提供的第二个开发套件、它立即与 ADS131E08软件配合使用、无需重新安装驱动程序或重新安装软件。 原始开发套件仍然无法正常工作。  

    此外、我还能够使用我开发的固件从 ADC 正确读取数据。 那么、我在这里进行了设置。

    感谢您对此问题的快速回答。  


    最棒的

    Tony