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.

[参考译文] AWR2944EVM:由于 SysConfig 问题(可能缺少 cbuff 驱动程序)、无法使用 HECR 演示将 LVDS 数据流式传输到 DCA1000EVM。

Guru**** 2577385 points
Other Parts Discussed in Thread: DCA1000EVM, AWR2944EVM, AWR2944, SYSCONFIG

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1573203/awr2944evm-unable-to-stream-lvds-data-to-dca1000evm-with-hecr-demo-due-to-sysconfig-issue-likely-missing-cbuff-driver

器件型号:AWR2944EVM
“主题“中讨论的其他器件:DCA1000EVMAWR2944SysConfig

工具/软件:

TI 工程师您好!

在运行 OOB 演示时、我已使用 DCA1000EVM 和 AWR2944EVM 成功收集了原始 ADC 数据。 现在我想对 HECR 演示执行相同的操作。 但我在演示方面发现了一些问题。

尽管在 chirp_design_HECR.h 文件内启用了 LVDS 流式传输功能 、但 DCA1000EVM_CLI_Control.exe 仍会在日志文件内生成“No LVDS DATA“警告。

结果表明、mmw_load_params.c 加载 LVDS 流配置数据的函数仅在存在#define LVDS_STREAM 时才有效。 为了解决这个问题、我尝试了以下方法:

  • 将 LVDS_STREAM 添加到以下目录下的预定义符号:CCS -> Project Properties -> Build -> Compiler -> Predefined Symbols
    • 导致:
    • 文件中未定义的第一个引用的符号--------- ------------------------ MmwDemo_LVDSStreamDeleteSwSession /demo/awr2944/mss/mss_main.o MmwDemo_LVDSStreamInit /demo/awr2944/mss/mss_main.o MmwDemo_LVDSStreamSwConfig /demo/awr2944/mss/mss_main.o MmwDemo_configLVDSHwData /demo/awr2944/common/mmw_load_params.o
  • 将 mmw_dlvs_stream.c 包括到工程构建中(,因为默认情况下不包括它)
    • 导致:
    • 文件中未定义的第一个引用的符号--------- ------------------------ gCbuffAttrs C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/drivers/lib/drivers.awr294x.r5f.ti-arm-clang.release.lib gCbuffObject C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/drivers/lib/drivers.awr294x.r5f.ti-arm-clang.release.lib gCbuffObjectPtr C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/drivers/lib/drivers.awr294x.r5f.ti-arm-clang.release.lib
  • 在 syscfg 中添加了 cbuff 驱动程序(请参阅屏幕截图):
    • 导致其他一些驱动程序似乎出现故障。 以下是我得到的错误:

  

Building file: "C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss/mss/mssgenerated/ti_drivers_config.c"
Invoking: Arm Compiler
"C:/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -O3 -I"C:/ti/radar_toolbox_3_20_00_04/source/ti/examples/Automotive_ADAS_and_Parking/high_end_corner_radar/src/alg/gtrack" -I"C:/ti/ccs1281/ccs/tools/compiler/ti-cgt-armllvm_3.2.2.LTS/include/c" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/kernel/freertos/FreeRTOS-Kernel/include" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/kernel/freertos/portable/TI_ARM_CLANG/ARM_CR5F" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/kernel/freertos/config/awr294x/r5f" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/networking/enet" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/networking/enet/core" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/networking/enet/utils" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mcu_plus_sdk_awr294x_10_00_00_07/source/networking/enet/utils/include" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mmwave_dfp_02_04_17_00" -I"C:/ti/mmwave_mcuplus_sdk_04_07_00_01/mmwave_mcuplus_sdk_04_07_00_01" -I"C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss" -I"C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss/alg/gtrack" -I"C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss/mss/" -I"C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss/mss/mssgenerated" -I"C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss/demo/awr2944" -DLVDS_STREAM -DGTRACK_3D -DDOWNLOAD_FROM_CCS -DDRIVERS_RADAR_HWA_V2 -DDebugP_LOG_ENABLED -DMMWDEMO_DDM -DTRACKER_ON_MSS -DMMWAVELINK_ON_MSS -DSOC_AWR294X -DSOC_AWR2944 -D_LITTLE_ENDIAN -DSUBSYS_MSS -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MMD -MP -MF"mss/mssgenerated/ti_drivers_config.d_raw" -MT"mss/mssgenerated/ti_drivers_config.o"   -o"mss/mssgenerated/ti_drivers_config.o" "C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss/mss/mssgenerated/ti_drivers_config.c"
mss/subdir_rules.mk:43: recipe for target 'mss/mssgenerated/ti_drivers_config.o' failed
C:/Users/mmpas/AWR2944EVM_TRACKING/awr2944_corner_radar_mss/mss/mssgenerated/ti_drivers_config.c:505:86: error: expected expression
        rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_C66SS0] = (uintptr_t)(&gIpcSharedMem[]);

所以我根本无法解决这个问题、尽管我认为我走在正确的轨道上。 综合考虑这一切 请告诉我如何将 LVDS 流功能正确纳入 HECR 演示。

如果您想知道我的硬件和 DCA1000EVM 使用过程是什么、请点击此处查看、不过如演示中所述、问题出在 https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1572559/awr2944evm-gathering-data-with-the-dca1000evm-with-hecr-demo-running 方面  

此致、

标记

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

    您好:Mark、

    使用以下命令在启用 LVDS 流的情况下重新编译 HECR 演示-

    gmake clean hyrMSSLinkLVDS

    此致、

    Samhitha

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

    您好 Samitha、

    感谢您的答复。 您能告诉我如何在启用 LVDS 的情况下从 CCS 编译它、而不是从命令提示符进行编译吗?

    此致、

    标记

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

    您好:Mark、

    请比较  makefile 中 harrMSSLink 和 harrMSSLinkLVDS 的构建步骤、然后相应地编辑 CCS projectspec。 概括来说、您需要更改 MSS syscfg 文件、在编译器标志中定义 LVDS_STREAM。

    此致、

    Samhitha

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

    你好、Samhitha

    请更准确地说明需要进行哪些更改和哪些文件?

    • 我应该检查哪些 makefile 文件、它们位于何处?
    • 需要在 projectspec 中编辑哪些位?
    • 我应该只更改 MSS 的 projectspec 还是也更改 DSS 的 projectspec?
    • 需要在 MSS 的 syscfg 文件中添加/更改什么?
    • 在所有 LVDS 提取发生后、我是否需要对演示 DSS 侧进行任何更改?

    感谢您的帮助!

    此致、

    标记

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

    您好:Mark、

    请阐明 mmwavelink 是在 MSS 还是 DSS 上运行。

    makefile 的路径:

    • C:\ti\radar_toolbox\source\ti\examples\Automotive_adas_and_Parking\high_end_corner radar\demo\awr2944\makefile src
    • C:\ti\radar_toolbox\source\ti\examples\Automotive_adas_and_Parking\high_end_corner_radar\demo\awr2944\mss\mmw_mss.mak src
    • C:\ti\radar_toolbox\source\ti\examples\Automotive_adas_and_Parking\high_end_corner radar\demo\awr2944\dss\mmw_dss.mak src

    您无需在其他文件(包括 syscfg)中进行任何更改。 您只需在 projectspec 中包含修改后的 syscfg、该步骤支持 LVDS 流式传输。 大多数问题的答案取决于在 MSS 或 DSS 上运行的 mmwavelink。

    此致、

    Samhitha

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

    尊敬的 Samhitha:

    感谢您的答复!  

    请澄清 mmwavelink 是否在 MSS 或 DSS 上运行。

    我正在运行默认的 HECR 演示、在 DSS 和 MSS 的 projectspec 文件中、只定义了“DMMWAVELINK_ON_MSS"编译“编译器构建选项。 因此、我假设 mmwavelink 正在 MSS 上运行。 如果我应该以不同的方式进行检查、请告诉我。

    您只需在 projectspec 中添加修改后的 syscfg(该 syscfg 支持 LVDS 流式传输)。

    因此、我明白我只需要做以下事情:

    这是正确的吗?

    此致、

    标记

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

    您好、  

    所以我设法做到了这一点。 以上是正确的、但需要进一步更改。 此外、由于我要在现有工程中实现此目标、因此我已将具有工作 LVDS 的新创建工程复制到了 syscfg 文件中。 最后、为了刷新工程、我必须删除 mssgenerated、因为在更改 SysConfig 文件后它一直失败。

    但我还有两个问题:

    • mssgenerated/dssgenerated 的用途是什么?它的作用是什么? 在哪里可以了解更多信息?
    • 我是否可以通过将 DCA 上的开关切换为“RADAR_5V_IN",“,使用、使用单电源使用 DCA1000EVM 和 AWR2944EVM 收集原始数据?

    此致、

    标记  

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

    您好:Mark、

    很高兴听到您能够在启用 LVDS_STREAM 的情况下构建应用。

    mssgenerated / dssgenerated 的用途是什么?它的角色是什么? 我在哪里可以了解更多信息?

    syscfg 生成的所有文件都将存储在这些文件夹中。 为避免编写代码以初始化驱动程序、配置引脚多路复用和其他所需配置所需的任何额外工作、我们使用 syscfg 来完成此任务。 您可以在 SysConfig IDE、配置、编译器或调试器| TI.com 中了解 SYSCFG

    [报价 userid=“635100" url="“ url="~“~/support/sensors-group/sensors/f/sensors-forum/1573203/awr2944evm-unable-to-stream-lvds-data-to-dca1000evm-with-hecr-demo-due-to-sysconfig-issue-likely-missing-cbuff-driver/6060562 ]我能否通过将 DCA 上的开关切换为“radar_5V_in",“,使用、使用单电源使用 DCA1000EVM 和 AWR2944EVM 收集原始数据?

    否、对于 AWR2944、这是无法实现的。

    此致、

    Samhitha

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

    你好、Samhitha、

    感谢您的答复!  

    遗憾的是、虽然我能够从 DCA1000EVM 中获取数据、但我的解析尝试是这样的 OOB 正常工作 -失败。

    我不知道为什么会发生这种情况。 以下是我尝试提取数据的代码:

    import numpy as np
    #============================================================================================================
    #--------------------------------------<<< DCA1000EVM Data Loading >>>--------------------------------------
    #============================================================================================================
    # Reads and reshapes raw ADC data from a DCA1000EVM capture file.
    def load_dca1000_bin_data(file_path, num_rx, num_chirps, num_adc_samples):
        samples_to_parse = 0
        raw_data = np.fromfile(file_path, dtype=np.int16)
    
        # 1.) Compute how manny frames can be parsed - warn the user if not all data will get used up
        samples = raw_data.size
        samples_per_frame = num_chirps * num_rx * num_adc_samples
        modulo_remainder = samples % samples_per_frame
    
        if modulo_remainder != 0:
            samples_to_parse = samples - modulo_remainder
            print("Warning: File size is not a multiple of the frame size. Check num_rx/num_chirps/num_adc_samples.")
        else:
            samples_to_parse = samples
    
        data_to_parse = raw_data[:samples_to_parse]
        num_frames = int(samples_to_parse / samples_per_frame)
    
        output_array = data_to_parse.reshape((num_frames, num_chirps, num_rx, num_adc_samples))
        print(f"File loaded successfully. With {num_frames} frames.")
    
        return output_array

    我 不断收到数据的预期大小与实际大小不匹配的问题。 我重写了解析器以强制它读取最大可能帧。 但是、看一下 HECR 演示获得的结果。  

    总结一下:

    • OOB 和 HECR 之间存储的 ADC 数据是否不同?
    • 您是否有这些数据的基本解析器来查看我是否正确加载它们?
    • 当我执行 DCA1000EVM_CLI_Control.exe stop_record cf_awr2944.json 时、它是在帧结束时停止记录还是可以停止中帧?
    • HECR 演示的 ADC 数据中是否有任何标头? 根据文档 (ti/demo/awr294x/mmw/docs/doxygen/html/index.html)、我认为情况不应该是这样“请注意、目前仅支持没有 HSI 标头的硬件数据。

    如果你有任何想法,我可能做错了,请告诉我。

    此致、感谢您的支持、

    标记  

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

    您好:Mark、

    OOB 和 HECR 中使用的 ADC 数据格式没有差异。

    我认为 stop_record 在传输整个帧数据之前停止捕获 ADC 数据。  配置有限数量的帧并执行测试、而不是将帧数设置为 0。

    此致、

    Samhitha

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

    你好、Samhitha、

    遗憾的是、无法对此器件使用“帧“捕获模式。 根据您在 DCA1000EVM_CLI_Control.exe 工具上关于帧模式的文档:“此模式仅在多模式数据采集中有效“。

    此外、在 AWR294X 的毫米波 (mmw) 演示文档中、写道:“目前仅支持没有 HSI 标头的硬件数据“。

    这意味着,由于多模式需要一个标头,我们不能使用它:“在多模式下,数据与包含数据标识符和长度字段的标头一起接收。“

    您是否同意我的评估?  

    考虑到这一点 、因为我似乎被困在“原始“模式下、根据文档、不能保证该模式是干净的 ADC 数据:

    对于 DCA1000、在按下“DCA1000 ARM“和“Trigger Frame“后、首先保存名为 adc_data_RAW_0.bin 的原始数据文件。
    由于以太网协议、DCA1000 EVM 接收的文件可能不包含中的 UDP 数据包
    正确的顺序。 在某些情况下、可能会出现数据丢失且无法在文件中捕获的情况。 发送数据包
    需要运行重新排序和零填充实用程序、以便扫描捕获的原始文件并重新排列
    数据包的顺序正确、如果丢失任何数据包、它将在文件中填充相等数量的零。
    该实用程序还会删除元数据、输出现在包含由传输的原始 ADC 数据
    xWRxxxx 器件供电。 按下“PostProc"按钮“按钮、adc_data_RAW_0.bin 将进行数据包重新排序
    加零填充、并保存为 adc_data.bin。 通过运行可以获得相同的结果
    Packet_Reorder_Zerofill.exe“

    那么、 在尝试解析它们之前、我是否应该在 adc_data_Raw_0.bin 上运行 RawFileFormat.exe 或 Packet_Reorder_Zerofill.exe 可执行文件? 如果没有标头、它们甚至可以处理这些数据吗?

    相反、我使用了字节模式以及 enableReorder = 1、它运行良好。 但我仍然有一些问题、因为尽管使用了 1:1 的相同设置、我现在得到的数据看起来与 OOB 期间获得的数据非常不同。

    为此、我将开始一个新主题。

    此致、

    标记

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

    您好:Mark、

     配置有限数量的帧并执行测试、而不是将帧数设置为 0。

    您能否在 chirp_design_HECR.h 文件的帧配置中配置它? 这是为了确认 LVDS 流媒体中没有问题。

    此致、

    Samhitha

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

    您好:Mark、

    HECR_FRAME_NUM_FRAMES 宏命令需要更新为 1。

    因为在检查演示中、压缩的和后范围 FFT 数据标记为 radarcube 、我想确保 DCA1000 的输出是直接形式 ADC 还是来自此 radarcube?

    ADC 数据通过 LVDS 通道(不是雷达立方体)传输。

    您 在开始时提出的问题已解决、因此可以为将来的所有问题创建一个新的 E2E。

    此致、

    Samhitha

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

    修复是以下更改:

    #define HECR_LVDS_IS_HEADER_ENABLED 0  
    #define HECR_LVDS_DATA_FMT mmw_demo_LVDS_STREAM_CFG_DATAFMT_ADC
    #define HECR_LVDS_IS_SW_ENABLED 0  

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

    您好:Mark、

    修复是:

    我还没有检查您共享的整个配置。 您似乎已对配置进行了更改。 恢复到原始配置解决了问题。 通过硬件流式传输、您通过 LVDS 通道发送 ADC 数据。 而通过配置软件流式传输、  可以通过 LVDS 通道发送自定义数据。 我认为在 MSS 上运行 mmwavelink 时、软件流不会在当前版本的 HECR 中进行测试。

    此致、

    Samhitha