鄭景仁 2025-10-14 08:57 采纳率: 0%
浏览 5

ti mmwave 最低的chirps設定值

目前我是使用ti mmwave 6843aop
ccs 11 , sdk 3.6LTS , 使用3T4R 的config 設定
想要擷取ADC raw data 在uart 的interface 作output 到pc 端作後續處理
因為在uart 的interface , 所以chirps per frames想設定是ti config 中的最低可用的數值
(1)但使用ti mmwave demo tools 給的設定值為16
(2)手動設定1/2/4/8/16 , 只有16 的數值才可以run , 而沒有錯誤 , (1~8 數值均會出錯而無法run)

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2025-10-14 08:58
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    在使用 TI mmWave 6843AOP 并基于 CCS 11SDK 3.6 LTS 进行开发时,你提到的问题是关于 Chirps per Frame(每帧的 chirp 数量)的设定。你希望将该值设置为 最低可用值(即 1),但发现只有当设置为 16 时才能正常运行,而 1~8 的数值会报错。


    📌 问题分析

    1. Chirps per Frame 的限制

    在 TI mmWave SDK 中,chirpsPerFrame 是一个关键参数,它决定了每个 frame 内发送的 chirp 数量。这个参数受到以下因素的限制:

    • 硬件资源:如 ADC、DMA、内存等。
    • 数据传输速率:UART 接口的数据传输能力有限,若 chirp 数过多会导致数据溢出或无法及时处理。
    • SDK 配置逻辑:某些 SDK 版本中可能对 chirpsPerFrame 设置了最小值限制。

    🔍 原因分析

    2. 为什么 1~8 无法运行?

    根据你的描述,设置为 1~8 时程序无法运行,可能是以下几个原因:

    (1) 硬件资源不足

    • chirpsPerFrame 设置过低时,可能导致:
      • ADC 数据采集不完整
      • DMA 缓冲区无法正确填充
      • UART 接口无法及时接收和处理数据

    (2) SDK 配置限制

    • 在 SDK 3.6 LTS 中,可能存在默认配置限制了 chirpsPerFrame 的最小值为 16,即使你手动修改代码,也可能被重置或校验失败。

    (3) UART 接口带宽不足

    • UART 接口的波特率有限(例如 115200),如果 chirp 数太少,可能触发某些错误检查机制(如超时、数据丢失等)。

    🛠️ 解决方案

    步骤一:确认 SDK 配置是否允许 chirpsPerFrame = 1

    1. 打开你的项目文件,定位到 mmwave_config.h 或类似的配置文件。

    2. 检查是否有如下定义:

      #define MMWAVE_CHIRPS_PER_FRAME 16
      

      如果存在,尝试将其改为:

      #define MMWAVE_CHIRPS_PER_FRAME 1
      
    3. 重新编译并运行程序。


    步骤二:检查 ADC Raw Data 的配置

    确保你已经正确配置了 ADC raw data 的输出方式:

    1. main.c 或相关模块中,确认你调用了以下函数:

      mmWave_setADCDataOutput(MMWAVE_ADC_DATA_RAW);
      
    2. 确保你已启用 UART 输出功能:

      mmWave_setUartOutputEnable(TRUE);
      

    步骤三:调整 UART 配置(可选)

    如果你的 UART 接口波特率较低,可以尝试提高波特率以适应更小的 chirpsPerFrame

    // 修改 UART 波特率为 921600
    uartConfig.baudRate = 921600;
    

    ⚠️ 注意:波特率过高可能会导致通信不稳定,建议逐步测试。


    步骤四:检查 SDK 的版本兼容性

    • SDK 3.6 LTS 可能对 chirpsPerFrame 有硬编码限制。
    • 考虑升级到 SDK 3.7 LTS 或更高版本,查看是否支持更低的 chirpsPerFrame 值。

    步骤五:调试与日志分析

    1. 使用 TI CCS 的 Debug 功能 查看程序崩溃点。

    2. 检查是否有以下类型的错误信息:

      • MMWAVE_E_INVALID_ARG
      • DMA_BUFFER_OVERRUN
      • UART_TIMEOUT

      这些可以帮助你定位具体问题。


    🧪 示例代码片段(供参考)

    // mmwave_config.h
    #define MMWAVE_CHIRPS_PER_FRAME 1  // 尝试设置为 1
    
    // main.c
    #include "mmwave.h"
    
    int main(void)
    {
        // 初始化 mmWave
        mmWave_init();
    
        // 设置 ADC RAW 数据输出
        mmWave_setADCDataOutput(MMWAVE_ADC_DATA_RAW);
    
        // 启用 UART 输出
        mmWave_setUartOutputEnable(TRUE);
    
        // 设置 chirps per frame
        mmWave_setChirpsPerFrame(MMWAVE_CHIRPS_PER_FRAME);
    
        // 启动 mmWave
        mmWave_start();
    
        while (1) {
            // 主循环
        }
    }
    

    ✅ 最终建议

    | 项目 | 建议 | |------|------| | chirpsPerFrame | 尝试设置为 1,但需配合 UART 波特率调整 | | SDK 版本 | 建议升级至 3.7 LTS 或以上 | | UART 配置 | 提高波特率以匹配数据流量 | | 调试 | 使用 CCS Debug 检查错误日志 |


    🧩 总结

    你可以尝试将 chirpsPerFrame 设置为 1,但必须确保以下条件满足:

    1. UART 波特率足够高(如 921600);
    2. SDK 支持该设置(建议升级 SDK);
    3. ADC 数据采集和处理逻辑无误

    如果你仍然遇到问题,建议提供完整的错误日志或代码片段,我可以进一步帮你分析。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月14日