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.

[参考译文] AFE7900EVM:通过外部 Python 脚本(在 Latte 之外)配置 AFE7900EVM

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

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1207189/afe7900evm-afe7900evm-configuration-from-external-python-script-outside-the-latte

器件型号:AFE7900EVM
主题中讨论的其他器件: AFE7900LMK04828AFE7950

您好、TI 团队、

设置说明:

我有 AFE7900EVM 和 ZCU102电路板。 对于 AFE7900的独立设置、我使用带有标记脚本的 Latte GUI。 一切都像我预期的那样正常。

但我的问题是-是否可以运行我的自定义脚本(在 Latte GUI 之外)以便能够 执行相同的步骤? 如果是、我可以如何操作(库位于何处、我需要哪个 python 版本等)  

提前感谢!

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

    尊敬的 Tomas:

    有 几种方法可以用于在 Latte 外对 AFE 进行编程。  

    第一种方法是在 Latte 中运行您的脚本、使其产生一个配置文件、其中包含启动 AFE 所需的所有寄存器写入/读取/轮询。 借助此配置文件、您随后可以 使用自己的 SPI 模块对 AFE 进行编程。 要生成配置文件、可将"logDumpInst.logFormat"参数设置为"0x1"。  

    另一种方法是 通过 Python 控制 Latte GUI、如以下应用手册: https://www.ti.com/lit/an/sbaa397/sbaa397.pdf 所述。AFE79xx 安全文件夹中提供了上述 bsocket 文档。

    此致、

    David Chaparro

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

    您好,

    谢谢、我会在几 天内试用它。

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

    尊敬的 David:
    可以 获取 DLL 库而不是 exe 吗?
    我想使用一个没有 exe 第三方软件的 Python 脚本。  现在我必须运行 Latte、在 Latte 中、我需要按照正确的顺序运行4个 scrhipts。 我需要的是  用我自己的 python 脚本替换上述所有程序、以便在评估过程中提供更轻松的设置。  

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

    尊敬的 Tomas:

    我们没有 Latte 软件的 dll。 需要注意的一点是、我上面提到的第一种方法必须至少在您的配置中使用一次、才能生成配置文件、该文件按照启动 AFE 所需的正确顺序包含所有读取/写入/轮询。 通过使用此配置文件、您可以在不使用 Latte 软件的情况下、使用您自己的 python 脚本来对 AFE 进行编程。  

    要使用 Latte 生成的配置文件在 EVM 上配置 AFE、您可以使用 TI FTDI dll 来执行 SPI 读取/写入。 可以通过以下链接下载相关文件和说明。  

    链接: https://tidrive.ext.ti.com/u/sfWwvyJ1sMCj9bC4/8830537e-93cb-4d0c-8084-8a93fb6683d9?l 

    访问代码: m5iVB9g=

    此致、

    David Chaparro

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

    尊敬的 David:

    感谢您的答复和链接。 在 AFE7900EVM 板上、还有一个用于时钟生成的 LMK 电路。 此电路需要单独配置、我是否正确? 非常感谢。

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

    你好,

    可能我在所需的内容上不完全准确。 我有一个 AFE7900EVM 板、需要通过在命令行中运行一个命令对其进行完整配置、而无需任何人运行 Latte 并执行那里的一系列多个脚本。

    可能需要配置 AFE7900和 LMK04828。 我知道英特尔 CPLD 在这里没有被使用,也不需要使用它(是真的吗?)

    谢谢你。

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

    尊敬的 Tomas:

    不使用 CPLD、因此无需与其连接。  

    要将 LMK 写入记录在配置文件中、可以按照以下步骤操作:

    1. 将‘lmk.logClassInst=logDumpInst'添加到 devInit 脚本。

        2.将‘lmk.rawWriteLogEn = 1'添加到 AFE79xx 脚本。

    完成这些写入之后、还可以使用之前提供的 FTDI dll 对 LMK 进行编程。 要实例化 LMK、您可以使用以下代码作为参考。 通过使用之前提供的代码示例、您可以使用该示例对 LMK 和 AFE 进行编程、而无需使用 AFE79xx GUI 并运行多个脚本。  

    AFEserial = "FT8A8V8P"
        AFEAserial = AFEserial + 'A'
        AFENUM = 0
        FTDI_A = ctypes.c_void_p()
        AFE_PROT = ctypes.c_void_p()
        TI_FTDI.setupFTDIdev(ctypes.byref(FTDI_A), AFEAserial.encode(), 12000000) #maximum baud rate. 
        TI_FTDI.initSPIDev(ctypes.byref(AFE_PROT), 0, 3, 1, 2, 15, 8, True, True)
        TI_FTDI.mapHandles(FTDI_A, AFE_PROT, AFENUM)
     
        LMK1serial = "FT8A8V8P"
        LMK1Bserial = LMK1serial + 'B'
        LMKNUM = 0
        FTDI_1 = ctypes.c_void_p()
        LMK_PROT = ctypes.c_void_p()
        TI_FTDI.setupFTDIdev(ctypes.byref(FTDI_1), LMK1Bserial.encode(), 12000000) #maximum baud rate. 
        TI_FTDI.initSPIDev(ctypes.byref(LMK_PROT), 6, 5, 7, 4, 15, 8, True, True)
        TI_FTDI.mapHandles(FTDI_1, LMK_PROT, LMKNUM)
        spiwrites.LMKprog(TI_FTDI, LMKNUM)
        spiwrites.AFEprog(TI_FTDI, AFENUM)
    

     

    此致、

    David Chaparro

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

    尊敬的 David:

    谢谢莲花,我会尝试它。

    第二、我可以向您提供最新版本 Latte 的链接吗? 这可能无关紧要、但我对行号不完全满意、我想和您具有相同的起点。

    谢谢

    Tomas

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

    尊敬的 Tomas:

    AFE79xx 安全文件夹中提供了最新版本的 GUI、现在称为"AFE79xx"而不是"Latte"。

    此致、

    David Chaparro

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

    尊敬的 David:

    我目前正在尝试生成转储文件。 我是否正确理解(如果这是正确的行为):第一步我为 AFE 生成转储、下一步我为 LMK 生成转储? 并使用 SPI_Convert.py (我始终修改它)、我会生成两个不同的 spidwrite 文件? 非常感谢您的澄清。

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

    David、您好!

    我尝试复制您的建议、结果如下:

    1. ZCU102连接到 AFE7900 (ZCU102未通电)
    2. 给 AFE7900EVM 上电后、电流消耗约为0.67A (UCC = 5.3V 时)。
    3. 运行包含随附结果的 AFE7950_SPI.py 脚本。
    4. 流耗减少至大约0.36A


    对于可能的问题或我的问题、您有什么建议吗?

    控制台输出: output.txt
    Python 脚本: AFE7950_SPI.py

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

    尊敬的 Tomas:

    是的、您将需要创建配置文件、一个用于 AFE、一个用于 LMK。  

    需要检查的一点是、对 LMK 进行编程时、您是否看到"LMK 锁定"LED D4亮起? 否则、AFE 的时钟可能出现问题。 如果您还可以共享您正在使用的 SPI 写入、我可以在我这边进行测试。 您是否正在使用 AFE79xx_ZCU102 8b10b 参考设计中的 Latte 脚本?

    此致、

    David Chaparro

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

    尊敬的 David:
    我使用的是 ZCU102_AFE79xx_64b66b_12Gbps.zip 设计(FPGA 参考设计以及 Latte 脚本)。 我知道、在第二个线程中、我们还讨论了8b10b 设计、但它是一项并行任务。  

    经过测试并能正常工作的组件:  
    setup.py -> devinit.py -> TI_IP_12Gbps_8Lane_ConfigLmk.py。 一切都运行良好(但 D4 在此状态下未进入、但 D3为是)  

    然后、我尝试生成 SPI 写入:

    1) 1)我设置 logDumpInst.logFormat=0x21、然后得到 Afe79xxPg1Format5.txt

    2) 2)我运行 SPI_convert.py 并获得 spiwrites_step2.py
    3) 我将  ‘lmk.logClassInst=logDumpInst’添加到 devInit 脚本,并  将‘lmk.rawWriteLogEn = 1’添加到 AFE79xx 脚本
    4) 4)我 有一个新的 Afe79xxPg1Format5.txt  

    5) 5)我应用了修改后的 SPI_Convert_LMK.py (AFEENUM 替换为 LMKNUM、AFEprog 替换为 LMKprog)、我获得了 spiwrites.py

    6) 6)最后、在器件重新启动(下电上电)后 、我尝试运行 AFE7950_SPI.py、但未成功、D3和 D4 LED 未亮起。

     上面讨论的脚本附在以下位置: LatteConfig

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

    尊敬的 Tomas:

    看起来 LMK 未正确编程。 查看 spiwrites 文件后、看起来该文件包含适用于 LMK 和 AFE 的写入。 这意味着您要通过 AFE 寄存器写入来对 LMK 进行编程。  

    若要仅捕获 LMK 写入、您应遵循第3步、然后仅运行 TI_IP_12Gbps_8Lane_Config<:mk 脚本。 这应该只对 LMK 进行写入、并且写入次数应该为几百。

    此致、

    David Chaparro

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

    尊敬的 David:

    谢谢您的关注-我已经修复了它。 但是,我仍然无法取得成功。  

    脚本位于此处: LatteConfig 和他们说是正确的(希望)。  回读期间似乎有一些错误?  

    也许、控制台输出可能很重要:output.txt  

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

    尊敬的 David:

    此问题是否有任何更新?  

    此致、

    Tomas  

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

    尊敬的 Tomas:

    查看脚本后、问题是应将 LMKNUM 参数设置为"1"。 如果 AFENUM 和 LMKNUM 同时设置为相同的值、则第一个字符将被覆盖。

    请在您的脚本中更新此内容、您现在应该能够对 EVM 进行编程。

    此致、

    David Chaparro  

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

    尊敬的 David:

    非常感谢您的帮助! 可以按照您的说明进行配置。 实际上、我将具有不同的设置参数(不同的 LMFSH、DDC 等)、但使用本指南不会遇到任何问题。

    简单来说、如果有人试图解决这个问题、我在最后一步中遇到了一些 AFE (读数错误)问题、这是由于忘记关闭 Latte GUI 引起的。