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.

[参考译文] ADS52J90EVM:ADC 寄存器回读不能通过 SPI 工作-第2部分

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/922958/ads52j90evm-adc-register-readback-not-working-over-spi---part-2

器件型号:ADS52J90EVM
主题中讨论的其他器件:ADS52J90TSW1400EVMADS5294EVM

在找到问题解决方案之前、我的原始线程已锁定。 请参阅文章了解完整的背景信息。

https://e2e.ti.com/support/data-converters/f/73/p/892927/3320071#3320071?jktype=e2e

总之、我在与 ADS52J90EVM 板上的 ADS52J90芯片通信时遇到问题。 我  没有连接 TI 支持的主机 FPGA 卡(TSW14J56EVM 或 TSW1400)。 而是将 ADS52J90EVM 连接到 ZC706板。 我正在使用 FTDI D2XX 库和一些 C 代码在位传输模式下控制 SPI 总线。 我完全知道、我需要自己设置 ADC 和时钟分配芯片中的所有寄存器设置、而无需支持主板。 但是、我无法让 ADC 读回任何寄存器以确认我的寄存器写入正确。

我的测试如下。

写入地址0x00 = 0x0001来复位 ADC 芯片

2. 写入地址0x0A = 0x3000以初始化 ADC 芯片。  ADS52J90数据表中指定了此步骤。

写入地址0x01 = 0x0094作为寄存器写入的测试。 这应将 ADC 配置为16通道输入模式。

写入地址0x00 = 0x0001以启用寄存器读回模式。

5、读取地址0x01。  

6、读取地址0x00。

问题是每次执行读取时、我只会看到 SDOUT (SPI-MISO)为0。 我使用逻辑分析仪探测 SPI 总线引脚、以确认事务是否符合数据表。 我甚至已经用示波器进行探测、再次检查逻辑分析仪是否正在正确读取 SDOUT 测试点。

我怀疑我的原始线程中有两件事情经过了测试。

可能 ADS52J90需要系统时钟才能使寄存器正常工作。

我将 具有80MHz 时钟输出的信号发生 器连接到 ADS52J90EVM 的 J75 SMA 输入。 我重新运行 SPI 测试并获得相同的结果。 SDOUT 始终读回0。

ADS52J90可能具有最小 SCLK 速度、即使它未在数据表中列出。

我的原始测试使用 python 脚本对 SPI 事务进行位通信、并且运行速度非常慢。 SCLK 大约为几 kHz。 此后、我已将测试代码更新为 C 并使用 FTDI D2XX 库。 SCLK 现在的运行频率大约为3MHz、低于数据表中指定的最大20MHz。

我缺少什么? 此时、我开始认为 ADC 已损坏。  

谢谢、

Chris

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

    您好!

    感谢您向我们发送非常清晰的信息。

    有关以下地址设置(请参阅下一节):

    ===========================

    写入地址0x00 = 0x0001以启用寄存器读回模式。

    ===========================

    您能否看到以下修改和注意事项。

    0x00 (用于设置 SDIN 引脚)

    0x0001 (请将其更改为0x0002)和(这也用于 SDIN 引脚)。

    没关系吗?

    然后、您可以尝试在步骤5中运行。:

    0x01 (用于设置 SDIN 引脚)

    然后从 SDOUT 引脚读取数据(时序恰好在 SDIN 引脚完成其工作后)。

    希望这能为您找到合适的解决方案。

    谢谢!

    此致、

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

    很抱歉造成混淆。 我的步骤4在描述中有一个拼写错误。 它应该已经读过了...

    写入地址0x00 = 0x0002以启用寄存器读回模式。

    如果您查看所附的波形、您将看到我为启用寄存器读取模式设置了正确的位。  

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

    我能够使用 TSW1400EVM 主板测试 ADS52J90EVM。 我完成了用户指南中的所有设置步骤、以测试 LVDS 上的斜坡波形输出、并卡在第一次捕捉时。 单击"捕获"按钮后、我在短时间内收到"读取 DDR 到文件中的帧时钟错误"弹出窗口。

    您能否建议一些后续调试步骤来尝试解决此捕获错误?

    我使用设置为5V 的电源为两个 EVM 板供电、并注意到 ADS52J90EVM 的电流约为0.6A、TSW1400EVM 的电流约为0.5A。 这两种情况看起来都是合理的电流、因此我认为测试设置中的任何地方都没有短路。

    我在用户指南中的任何位置都看不到时钟振幅(J75)的规格。 您能否为 ADS52J90EVM 指定时钟信号振幅。

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

    您好!

    也感谢您使用 ADS52J90EVM 和 TSW1400EVM。

    当您的设置(硬件和软件设置)正确时、

    运行后、您应该会执行

    如 ADS52J90用户指南第11页所示

    图7. TSW1400和 ADS52J90设置

    您必须只能看到 LED D6 =关闭

    (所有其他 LED D2、D3、D4、D5、D7、 D8 D9开启)。

    请检查。

    谢谢!

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

    这没有解决我的"Read DDR to file 中的帧时钟错误"错误问题。  我确认 LED 设置与第11页上的用户指南相匹配。 除 D6外、所有 LED 均亮起。

    ADS52J90EVM 电路板为5V、0.644A。

    TSW1400EVM 电路板电压为5V、1.238A。

    您能告诉我 J75上 ADS52J90EVM 的时钟输入规格是多少? 1.4Vpp 是否足够?

    谢谢。

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

    感谢您的新尝试。

    我们将研究并尝试您的测试。

    感谢您使用 ADS52J90EVM 和 TSW1400EVM。

    谢谢!

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

    如需了解相关信息、我还能够确认 TSW1400EVM 电路板与其他 ADC 评估板(ADS5294EVM)配合工作是否正常。 我能够收集该配置中没有任何错误的数据。

    我是否可以专门执行任何测试来确认 ADS52J90EVM 未损坏?

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

    您好!

    请在此处确认以下设置:

    1) 1)需要将 SMA J75连接到信号源的65MHz。

    2) 2)首先、您需要先运行高速数据转换器 Prob (HSDC) GUI (而不是 HMC-DAQ GUI)。

    因为它将在您选择左上方按钮上的 ADS52J90后自动运行。

    3) 3)首次运行时、如果您的计算机收到来自高速数据转换器专业版的任何错误信息、

    请忽略它、然后运行(另一个 GUI) HMC-DAQ GUI、并遵循您需要选择的所有选项。

    例如、单击"DUT reset"按钮、单击"Initialize Device"、然后根据需要选择数据格式。

    4) 4)完成 HMC-DAC GU 的所有选择后、

    然后、请返回 HSDC GUI、然后您可以看到所有设置均已完成(自动)。

    5) 5)在这种情况下、您可以点击"Capture"按钮来捕获数据并在屏幕上显示结果。

    谢谢!

    祝你度过美好的一天!

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

    此外、

    在您运行 HSDC Pro GUI 时  

    但您收到了"Read DDR to file 中的帧时钟错误"错误消息。

    这意味着另一个 GUI、即 HMC-DAQ GUI

    尚未完全(完全)设置。

    因此、请确保必须设置 HMC-DAQ GUI

    然后在 HSDC Pro GUI 上运行"Capture"。

    希望这两个 GUI 能够在您的工作站上正常工作。

    谢谢!

    祝你度过美好的一天!

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

    1) 1) SMA J75连接到我的信号源的65MHz。 该时钟信号的振幅为0dBm。 这是正确的振幅吗?

    2) 2)当我首先运行高速数据转换器专业版(HSDC) GUI 时、在左上角的按钮上选择 ADS52J90后、我会看到以下错误。 HMC-DAQ GUI 自动打开后、此错误消息会打开。

    如果我单击"Continue"、GUI 永远不会完成初始化、并且我无法单击"DUT reset"或"Initialize Device"按钮。 如果我手动打开 HMC-DAQ GUI (与 HSDC GUI 分开)、则该 GUI 仅完全初始化、没有错误。

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

    您好!

    感谢您的介绍。

    尽管 TSW1400EVM 电路板和 ADS52J90EVM 电路板看起来都是这样

    连接到 PC 的 USB 端口

    但是、您的 PC 未检测到任何一个 EVM 板。

    这就是 GUI 不断发送错误消息的原因。

    我们将研究您的问题。

    谢谢!

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

    HMC-DAQ 初始化问题的解决方案需要在 Windows 上以"管理员身份"打开 HSDC Pro GUI。 否则、HMC-DAQ GUI 初始化会遇到权限问题。

    我能够使用 HSDC Pro 软件从 ADS52J90采集样本。

    现在、我计划研究 HSDC Pro/HMC-DAQ GUI 如何通过 SPI 总线配置 ADS52J90、以了解为何无法使用我自己的自定义 FTDI 软件进行配置。 很清楚,我原来的问题仍然没有答案。

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

    您好!

    请下载  

    FT_Prog 文件、用于检查 EVM 板是否正确连接到 PC 的 USB。

    请使用以下链接:

    https://www.ftdichip.com/Support/Utilities.htm

    希望这可以帮助您进行检查。

    谢谢!

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

    您好!

    以确保 PC 的 USB 端口确实检测到 ADS52J90EVM 和 TSW1400 EVM。

    请在加载后运行"FT_Prog.exe"

    并运行其"Scan and Parsation"图标。

    您应该能够看到以下示例

    要确保两个 EVM 均已正确连接并被 PC 硬件检测到、请执行以下操作:

    谢谢!

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

    我检查了 FT Prog 输出并确认我在 Windows 和 Linux 上使用 lsusb -v 输出看到了相同的 FTDI 芯片属性。

    这是连接到 ADS52J90EVM 时、我的 Linux 计算机上记录的信息。 我可以连接到该器件并控制 bitbang 接口、而不会出现任何问题。

    器件:ID 0403:6011 Future Technology Devices International、Ltd FT4232H 四路 HS USB-UART/FIFO IC
    器件描述符:
    b 长度18.
    b 描述符类型1
    bcdusb 2.00
    bDeviceClass 0 (在接口级别定义)
    bDeviceSubClass 0  
    b 设备协议0  
    bMaxPacketSize0 64
    idVendor 0x0403 Future Technology Devices International、Ltd
    idProduct 0x6011 FT4232H 四路 HS USB-UART/FIFO IC
    bcdDevice 8.00
    制造商1 FTDI
    iProduct 2 ADS52J90vAEVM
    iSerial 3 K1471201
    b 数字配置1.
    配置描述符:
    b 长度9.
    b 描述符类型2
    wTotalLength 101
    b 数字接口4.
    b ConfigurationValue 1
    iConfiguration 0  
    bmAttributes 0x80
    (总线供电)
    最大功率100mA
    接口描述符:
    b 长度9.
    b 描述符类型4
    b 接口编号0
    b AlternateSeting 0
    b 数字结束点2.
    b 接口类255供应商特定类
    b 接口子类255供应商特定子类
    b 接口协议255供应商特定协议
    iInterface 2 ADS52J90vAEVM
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 中的 EndpointAddress 0x81 EP 1
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 结束地址0x02 EP 2输出
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    接口描述符:
    b 长度9.
    b 描述符类型4
    b 接口1
    b AlternateSeting 0
    b 数字结束点2.
    b 接口类255供应商特定类
    b 接口子类255供应商特定子类
    b 接口协议255供应商特定协议
    iInterface 2 ADS52J90vAEVM
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 中的 EndpointAddress 0x83 EP 3
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 结束地址0x04 EP 4输出
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    接口描述符:
    b 长度9.
    b 描述符类型4
    b 接口编号2.
    b AlternateSeting 0
    b 数字结束点2.
    b 接口类255供应商特定类
    b 接口子类255供应商特定子类
    b 接口协议255供应商特定协议
    iInterface 2 ADS52J90vAEVM
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 中的 EndpointAddress 0x85 EP 5
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 结束地址0x06 EP 6输出
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    接口描述符:
    b 长度9.
    b 描述符类型4
    b 接口编号3.
    b AlternateSeting 0
    b 数字结束点2.
    b 接口类255供应商特定类
    b 接口子类255供应商特定子类
    b 接口协议255供应商特定协议
    iInterface 2 ADS52J90vAEVM
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 中的 EndpointAddress 0x87 EP 7
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    端点描述符:
    b 长度7.
    b 描述符类型5
    b 结束地址0x08 EP 8输出
    bmAttributes 2.
    批量传输类型
    同步类型无
    使用类型数据
    wMaxPacketSize 0x0200 1x 512字节
    b 间隔0
    器件限定符(对于其他器件速度):
    b 长度10.
    b 描述符类型6
    bcdusb 2.00
    bDeviceClass 0 (在接口级别定义)
    bDeviceSubClass 0  
    b 设备协议0  
    bMaxPacketSize0 64
    b 数字配置1.
    器件状态:0x0000
    (总线供电)

    我花了更多时间对 ADC 和 LMK 芯片的 TI 软件配置波形进行反向工程。 据我所知、我的 SPI 总线事务处理与 TI 软件相匹配、以便使用用户指南中的 LVDS 14位示例配置电路板。 我仍然无法使用我的 FTDI c 代码回读任何寄存器值。 下面是使用 TI 软件进行 ADS52J90EVM 配置的缩小图。

    这是我在连接到 Linux 并运行 FTDI C 代码时生成的波形。 在捕获的最末尾、我为地址0x01、0x02和0x03添加了三个读取事务。 所有3个地址回读0、但我应该看到地址0x01 = 0x0014、0x02 = 0x0000、0x03 = 0x2000。  

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

    您好!

    你过得怎么样?

    很抱歉、请先告诉我们

    当您  同时使用 TSW1400EVM (包括 GUI 软件)测试 ADS52J90EVM 时、

    两者(ADS52J90和 TSW1400板)是否都能正常工作?

    或者、在您使用 FT Prog 检查两个 USB 连接后、这两个连接仍然无法正常工作?

    请告诉我们。

    之后、我们可以为您重点介绍下一步。

    非常感谢!

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

    同时测试 ADS52J90EVM、TSW1400EVM 和 GUI 时、我能够使用 LVDS_16ch_14x_14b_sine_DIV1配置正确配置和采集样本。

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

    您好!

    此外、我们的工程师还提出以下建议。

    请仔细检查您的侧面。

    谢谢!

    ========================================================================================================================================

    1. 在对 ADS52J90EVM 的 ADC 块执行写入和读取操作之前、在 GUI 中完成以下寄存器写入

    操作

    寄存器

    ADS52J90_ADC

    写入

    0x00

    0x0000

    ADS52J90_ADC

    主机 IRQ

    0x00

    0x0002

    2.请确保并修复(如下所示) "向寄存器0x00写入错误值以启用回读"

    ----------

    ----------

    3.我们能不能要求提供他为配置 FTDI 端口和执行 SPI 事务而构建的 C 语言代码。 我们可以验证进行 SPI 事务所遵循的顺序、然后返回给他。

    ========================================================================================================================================

      谢谢!

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

      在每次读取事务之前、我匹配了写入地址0x00 = 0x0002的 TI GUI 软件模式。

      2.如果您回顾论坛主题、我回答了这个问题。 描述中有一个排印错误、波形显示了地址0x00正确写入值0x0002。 下面是地址0x01的读取序列示例。

      写入地址0x00 = 0x0002

      然后、读取地址0x01。

      这里是我当前用于配置 ADS52J90EVM 以匹配 TI GUI 软件的 C 代码。 我在序列的末尾添加了3个地址读取事务、这些事务仍然始终读回0。  

      e2e.ti.com/.../ads52j90evm_5F00_config.tar.gz

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

      您好!

      我们已将您的信息转发给我们的工程师进行检查。

      谢谢!

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

      陈公用 FTDI D2XX 库向我发送了一些示例 C 代码、以写回其中一个寄存器。 这是完美无缺的、我能够将这个示例代码与我的代码的差异进行比较。  

      关键区别在于、我没有将 RSV_DIG (连接到标有 SPI_DIG_EN 的 ADS52J90引脚)引脚设置为高电平。 当 SPI_DIG_EN 设置为低电平时、SPI SDOUT 引脚似乎一直处于低电平。 ADS52J90数据表和 ADS52J90EVM 用户指南中似乎没有对此进行说明。 这是我在 ADS52J90数据表(第8页的引脚功能表)中看到的唯一注意事项如下所示。

      "SPI_DIG_EN、   B6、   I、    保留用于数字功能。 该引脚可保持悬空或连接到1.8V 电源。 该引脚 kΩ 一个20k Ω 的内部上拉电阻器。”

      考虑到这一点、我本来应该假设该引脚需要通过 ADS52J90EVM 上的 FTDI 芯片上的拉高、但这一点根本不清楚。 我希望这能为其他人在使用 ADS52J90或 ADS52J90EVM 时省去一些麻烦。