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.

[参考译文] TSWDC155EVM:ADC3683EVM 电子保险丝重新加载和 FPGA 导出存储器故障(位映射器和放大器;存储器写入问题)

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1512873/tswdc155evm-adc3683evm-efuse-reload-and-fpga-export-memory-failure-bit-mapper-memory-write-issue

器件型号:TSWDC155EVM
主题中讨论的其他器件:ADC3683EVM、ADC3683 、ADC3664、ADC3668

工具/软件:

尊敬的 TI 支持团队:

我目前正在评估 ADC3683EVM、并尝试将其与 TSWDC155参考设计集成

遵循基于 Python 的标准配置流程(使用adc3683evm.pyadc3683_api.py)、

我在 HSDC Pro 中遇到了与电子保险丝加载、存储器导出和波形可见性相关的一些问题。

我尝试了几个调试步骤、并想分享症状、当前设置和具体问题以供您参考。 非常感谢您的帮助。

  • 可能的根本原因是什么 间歇性电子保险丝重新加载失败
    →这是否与内部电源/复位时序或时序问题有关?

  • 如果在电子保险丝重新加载后应用手动位映射、这可能是正确的
    电子保险丝会重新覆盖位映射 是什么呢?

  • 当消息Writing to memory failed在中出现adc_export_to_memory()时、
    →应该验证哪些具体条件(例如 DDR 映射、缓冲区大小、导出配置)?

  • TI 提供的位文件()是否adc3664_bd_wrapper.bit已经包含 DDR 控制器逻辑、
    →或者我们是否需要手动实例化和配置 MIG?

系统配置

挑战 :ADC3683EVM

  • 缩写 :2线 LVDS

  • 采样率 :40 MSPS

  • 效率较低 :16位

  • 抽取模式 :旁路(无 DDC)

  • Python SDK :由 TI 提供(adc3683evm.py /adc3683_api.py)

问题摘要

问题1: 呼叫后adc.config_output_mode()、后续efuse_reload()呼叫间歇性失败。
→有时、该efuse_load_done标志不会变为1 (未检测到完成)。

问题2:  呼叫后adc.config_output_mode()、后续efuse_reload()呼叫间歇性失败。
→有时、该efuse_load_done标志不会变为1 (未检测到完成)。

问题3  在msps_server.py输出中会看到以下错误:

***将数据导出至内存
写入内存失败

故障排除和采取的措施

  • time.sleep(1)在调用前添加、efuse_reload()以稳定时序。

  • 已验证是否为 DA0/DA1通道正确写入了位映射器地址值。

  • 使用以下器件启用切换测试图形:

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

    您好:

    感谢您发送编修。 看起来您的帖子在"Enabled toggle test pattern using:"之后被切断了。 如果您有其他信息、请随时分享。

    要回答您的一些问题:

    • 可能的根本原因是什么  间歇性电子保险丝重新加载失败
      →这是否与内部电源/复位时序或时序问题有关?

      是的、这可能是由三字符串问题引起的。 在 API 中、轮询电子保险丝恢复超时。 您可以尝试增大此值、以查看电子保险丝加载是否在较长的持续时间后完成。
    • 如果在电子保险丝重新加载后应用手动位映射、这可能是正确的
      电子保险丝会重新覆盖位映射  是什么呢?

      是的、电子保险丝加载将覆盖位映射。
    • 当消息 Writing to memory failed 在中出现 adc_export_to_memory()时、
      →应该验证哪些具体条件(例如 DDR 映射、缓冲区大小、导出配置)?

      出现"写入存储器失败"消息的原因有很多。
    • TI 提供的位文件()是否adc3664_bd_wrapper.bit已经包含 DDR 控制器逻辑、
      →或者我们是否需要手动实例化和配置 MIG?

      这不是参考设计、它是一个位文件、仅用于与 ADC3683EVM 和 TSWDC155EVM 一同使用、用于评估 ADC 的性能。 这些数据被写入 TSWDC155EVM 上的存储器、并通过 JTAG 转储到 PC 的存储器。 然后、该文件保存为.csv 文件并加载到 HSDC Pro 中以显示。 所有这些都由软件包中包含的 adc3683evm.py 脚本自动处理。

    为了帮助您确定问题的原因、请澄清以下事项:

    1. 为了澄清一下、您使用的是 ADC3683EVM 和 TSWDC155EVM?
    2. 您是否按原样运行 adc3683evm.py 脚本? 或者您是否进行了一些修改或创建了自己的脚本? 我建议我们 首先尝试使用未修改的脚本。
    3. 您是否曾成功捕获数据? 您是否仅在 efuse reloadd 失败时才看到"Writing to memory failed (写入内存失败)"消息?

    此致、

    Luke Allen

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

    亲爱的卢克、

    感谢您的答复和澄清。

    要回答您的问题:

    1. 硬件设置
      是的、我正在使用 ADC3683EVM 结合使用 TSWDC155EVM

    2. 脚本用法
      adc3683evm.py为了进行调试、我运行的是稍微修改的版本。
      具体而言、我将默认位文件替换为adc3668_parallel_bd_wrapper.bit、以评估与我们的硬件配置一致的自定义设置。

    3. 问题观察
      最初、我能够在打开系统电源后立即成功捕获数据。
      但是、在执行其他操作(包括)之后 电子保险丝重新加载 —消息
      "写入内存失败" 表现出一致性。

    为了缓解这种情况、我在触发电子保险丝重新加载之前插入了一个延迟、这在某种程度上帮助稳定重新加载过程。

    但是、另一个问题仍然存在:
    执行 Python 脚本并尝试使用进行波形捕获后 高速数据转换器 GUI 、我始终收到以下输出:

    ***将数据导出至内存


    "export_LANE_ORDER":[2、1、4、3、11、 10、9、8、7、6、 5、13、12、15、14、 0]、
    'export_num_lanes':4、
    'export_num_burst':512、
    'export_addr':3221225472、
    'export_bitoffset':0
    }
    写入内存失败

    此外,我注意到一些特殊的,而测试各种位文件在msps_infra/bitfiles目录中提供:

    • 几个其他 EVM 位文件正常工作并支持数据采集和存储器导出。

    • 但是、用于的位文件 ADC3683EVM (具体而言adc3683_parallel_bd_wrapper.bit)持续触发 "写入内存失败" 两种方法。

    这让我怀疑可能存在与存储器导出逻辑或 DDR 接口配置相关的位文件问题。

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

    您好、

    感谢您分享有关您的问题的更多信息。 ADC3683EVM.py 脚本中使用的默认位文件是 adc3664_bd_wrapper.bit。 这是为类似器件 ADC3664生成的位文件。 我们创建的评估固件需要非常灵活、可在所有器件模式下与多个器件配合使用。 ADC3664和 ADC3683都是同一器件系列中具有 LVDS 接口的器件、因此我们能够将 ADC3664位文件重复用于 ADC383。  adc3664_bd_wrapper.bit 是 ADC3683的正确位文件、我们已对该文件进行测试并确认可与 ADC3683配合使用。 请继续使用此位文件。

    您遇到的问题可能是因为您在 FPGA 固件校准后执行电子保险丝重新加载。 电子保险丝重新加载将更改设备位映射和时序、因此、如果由于任何原因需要在校准后执行电子保险丝重新加载、则必须重置 FPGA 固件并再次执行校准序列。 这包括将 ADC 置于切换模式(0101)、并在 FPGA 上执行 IO 校准。

    我可以问为什么您在固件校准后执行电子保险丝重新加载? 通常、当配置 ADC 输出接口时、这只需要发生一次。 如果要切换模式或更改 ADC 配置、只需修改脚本顶部的变量并再次运行、脚本将在该模式下自动正确处理 ADC 和固件。

    此致、

    Luke Allen