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.

[参考译文] AFE7903:自动创建的 AFE 参数结构文件"afe7903 Parameters.c"by Latte not usable

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

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1304800/afe7903-automatically-created-afe-params-struct-file-afe7903parameters-c-by-latte-not-usable

器件型号:AFE7903

你好

除了日志文件之外、Latte 工具还会自动创建 AFE 系统参数结构文件"afe7903Parameters.c"。 遗憾的是、此输出文件不可用。 输出文件中有许多错误,如括号({,[ or })或参数数据格式(如"FRef")设置为双精度型,但应使用无符号整数值。 声明顺序不正确。

需要修复 Latte 工具中创建该 c 文件的 python 函数。

我们希望动态配置 NCO 频率、因此我们需要 cafe-library 中的 c 函数"updateRxNco"。 此 c 函数要求系统参数结构"afe79SystemParamsStruct"中定义了正确的值。 在调用"updateRxNco"函数之前、您有什么建议要提前在系统参数结构中设置这些参数? 我们是否应该使用"tiAfe79_paramsSetterGetter"文件中的函数设置这些参数?

我们正在使用 cafe 库 C_libraries_CAFE2p1。 此库由 TI 于2023年3月上传至安全文件夹。

提前感谢您的帮助

此致、Frederik

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

    有任何更新?

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

    您好、Frederik、

    我已在设置中对此进行了测试、并且能够看到 afeParameters.c 文档中存在的问题。 有关格式的第一个问题是正确的、Fref 不应作为双精度型给出、它应以 kHz 而不是 MHz 为单位给出。 括号中也有问题。  

    我将向我们的软件团队提出这些问题、并要求他们在 AFE79xx GUI 中更新这些问题。

    我还致力于创建 afeParameters.c、这些内容已经过测试、因此您可以拥有参考资料。 我将在本周致力于提供这项服务。  

    此致、

    大卫·查帕罗  

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

    谢谢、那将是有帮助的。

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

    您好、Frederik、

    在与我们的软件团队讨论之后、我们发现获得正确/更新参数结构的理想方法是使用 afeDeviceBringupFromMem 函数启动 AFE 并更新参数结构。 上传至 AFE79xx 安全文件夹中的最新版本的 cafe 函数现在将包括此函数。  

    要使用 afeDeviceBringupFromMem 函数、您应首先使用 AFE79xx GUI 生成十六进制格式的配置文件。 然后、您可以复制十六进制文件的内容、并将其放置在 tiAfe79_baseFunc.c 文件中的 hostMemRead 函数中。 现在、一旦您调用  afeDeviceBringupFromMem 函数、AFE 将进行编程、参数结构将根据十六进制文件内容进行更新。  

    若要生成十六进制格式、可以将 logDumpInst.logFormat 参数更新为等于"0xff"。 运行启动脚本后、您应该能够在 AFE79xx GUI 文件夹 C:\Users\<>\Documents\Texas Instruments\Afe79xxLatte\lib 中找到.hex 文件。  

    此致、

    大卫·查帕罗

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

    这种方法使得编写 AFE 芯片更为不切实际。 在有单独的 SPI 日志文件之前、可以从外部更改该文件、而无需重新构建软件。 使用这种方法、每次我们更改配置文件时、我们都必须重建软件。 这一事实会在每个迭代循环中产生更多的开销。 因此、我们不打算更改 AFE 编程过程。

    是否有其他方法可以填充参数结构、但仍然使用单独的 SPI 日志文件对 AFE 芯片进行编程?

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

    您好、Frederik、

    十六进制启动操作会处理系统参数填充、因此无需重新生成.c 并重新编译。 它还根据需要执行器件的 SPI 配置。

    基于十六进制的启动可以完成

    1. 通过文件(如果有运行的操作系统和文件系统)使用 afeDeviceBringup API。 通过在 AFE79xx GUI 配置脚本中设置"logDumpInst.logFormat=0x40"、可生成此 API 的十六进制文件。  
    2. 通过存储器(BareMetal)、使用 afeDeviceBringupFromMemAPI。  通过在 AFE79xx GUI 配置脚本中设置"logDumpInst.logFormat=0x2000"、可生成此 API 的十六进制文件。

    否则、上述2种方法是等效的。

    使用 configAfeFromFile、configAfeFromFileFormat0和 configAfeFromFileFormat5的传统方法已折旧,因此不再推荐使用。

    此致、

    维贾伊

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

    Vijay、您好。

    请多多指教。

    1.如果我想通过文件使用方法1。 此过程与 configAfeFromFileFormat0类似。 十六进制文件是使用 Latte 工具(最低?:TI-AFE79xx-Latte_V2p5)创建的。 创建的 hex 文件可以存储在操作系统的文件系统中的某个位置。 我们的产品采用了基于 Linux 的操作系统。 必须使用该新函数"afeDeviceBringup"来配置 AFE 芯片。 此函数需要此十六进制文件并发送 SPI 命令。 我的假设是否正确?

    这个函数"afeDeviceBringup"在某种程度上是"configAfeFromFileFormat0"函数的继承函数吗?

    2.如果我通过方法2使用内存。 创建的十六进制值必须放置在函数"hostMemRead "中(文件:tiAfe79_baseFunc.c)。 必须使用函数"afeDeviceBringupFromMem"(文件:tiAfe79_init.c)来控制 AFE 芯片。 此假设是否正确?

    此致、

    弗雷德里克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 方法1至文件的方法。 此过程与 configAfeFromFileFormat0类似。 十六进制文件是使用 Latte 工具(最低?:TI-AFE79xx-Latte_V2p5)创建的。 创建的 hex 文件可以存储在操作系统的文件系统中的某个位置。 我们的产品采用了基于 Linux 的操作系统。 必须使用该新函数"afeDeviceBringup"来配置 AFE 芯片。 此函数需要此十六进制文件并发送 SPI 命令。 我的假设是否正确?

    可以。 正确。 请使用 AFE79xx_Latte 和 CAFE79xx 的最新 V2p5版本。

    此函数"afeDeviceBringup"不知何故是函数"configAfeFromFileFormat0"的后继函数吗?

    "afeDeviceBringup"函数还包含系统参数组装。 ‘、"afeParameters.c"无需单独添加。 在‘"configAfeParameters.c"的旧方法中、需要单独添加"SafeFromFileFormat0"。   

    2. 如果我通过方法2使用内存。 创建的十六进制值必须放置在函数"hostMemRead "中(文件:tiAfe79_baseFunc.c)。 必须使用函数"afeDeviceBringupFromMem"(文件:tiAfe79_init.c)来控制 AFE 芯片。 此假设是否正确?

    方法2适用于没有操作系统的情况(裸机实现)。 在这种情况下、十六进制文件应存储在存储器中、并且必须更新"hostMemRead "函数、在调用此函数时、它会从存储器中读取数据。 在 TI 提供的源代码中、将十六进制值添加到"hostMemRead "函数中以进行测试。 在最终系统植入中、可能不需要这种方式、因为这种方式使用有限的程序存储器来存储十六进制文件。

    可以。 在这种方法中、必须使用函数"afeDeviceBringupFromMem"(文件:tiAfe79_init.c)来配置 AFE 芯片。

    此致、

    维贾伊