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.

[参考译文] AWR1843BOOST:启动时自动启动雷达- AWR1843 EVM

Guru**** 2460380 points
Other Parts Discussed in Thread: UNIFLASH, AWR1843

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1492812/awr1843boost-auto-starting-radar-on-boot---awr1843-evm

器件型号:AWR1843BOOST
主题中讨论的其他器件:UNIFLASHAWR1843

工具与软件:

您好!

我将 AWR1843 EVM 用于停车辅助解决方案。 我正在使用 Code Composer Studio 和 Uniflash 部署 DSS 和 MSS 应用(TI 提供的演示应用)。 我可以使用通过 UART 发送配置命令的 Python 脚本成功启动雷达。 但是、我想在启动时自动启动雷达、而不需要外部脚本。

为此、我尝试sensorStart在中发送必要的配置和命令 CLI init() 功能如下:

// 1. 设置数据输出模式  
sprintf (cmd、"dfeDataOutputMode 1\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 2. 配置通道  
sprintf (cmd、"channelCfg 15 3 0\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 3. ADC 配置  
sprintf (cmd、"adcCfg 2 2\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 4. 配置文件配置  
sprintf (cmd、"profileCfg 0 60.25 100 5 40 0 0 20 1 256 5000 0 30\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 5. 啁啾配置  
sprintf (cmd、"chirpCfg 0 0 0 0 0 0 0 0\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 6. 帧配置  
sprintf (cmd、"frameCfg 0 1 128 0 40\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 7. 低功耗模式  
sprintf (cmd、"lowPower 0 0\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 8. GUI 监视器  
sprintf (cmd、"guiMonitor 0 1 1 0 0 0\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 9. CFAR 配置  
sprintf (cmd、"cfarCfg 0 0 2 8 4 3 0 15.0 1\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 10. 多物体波束形成  
sprintf (cmd、"multiObjBeamForming 0 1 0.5\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 11. 干扰消除  
sprintf (cmd、"离合器移除0\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 12. 校准  
sprintf (cmd、"calibDcRangeSig 0 0 -5 5 8\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

// 13. 启动传感器  
sprintf (cmd、"sensorStart\n");  
UART_writePolling (gMmwMssMCB.loggingUartHandle、cmd、strlen (cmd));  

CLI_WRITE ("通过 UART 命令启动传感器\n");  

但是、这不起作用、并且雷达不会在启动时自动启动。

我使用的是 SDK 版本3.06.02。

您能否指导我在启动时正确自动启动雷达? 在 CLI 初始化过程中、是否需要修改特定的函数或挂钩、或者是否存在任何已知的限制?

提前感谢!

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

    尊敬的 Hitanshu:

    一种更好的方法是完全注释掉 UART CLI 命令。
    您可以对这些函数获取的值进行硬编码、并在传感器启动之前直接在代码的初始部分中调用这些函数。

    此致、
    Saswat Kumar

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

    尊敬的 Saswat:

    感谢您的答复。

    您提出的解决方案就是我们目前正在尝试的解决方案。

    如上所述、直接给出硬编码值以在 CLI_Init()函数中设置配置-该函数初始化 CLI、希望在系统初始化 CLI 时设置配置值并启动雷达、但不起作用。

    请告知我是否需要在上述给定代码或方法中进行任何更改。

    此致、

    Hitanshu

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

    尊敬的 Hitanshu:

    您共享的代码不是硬编码。
    如果您说不起作用、则必须调试是否已填充所有参数、您是否按照函数的正确顺序调用它、所有这些也都必须加以注意。

    此致、
    Saswat Kumar

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

    尊敬的 Hitanshu:

    此外、还可以参考 RTB: 中程雷达用户指南中的 MRR 应用
    我们已经在 文件 cfg.c 中完成了一些静态配置 您也可以参考这一点。

    此致、
    Saswat Kumar

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

    尊敬的 Saswat:

    基于上述中距离雷达应用的想法、我尝试了以下几点-

    //#if 0

       /*打开 CLI:*/
       if (cli_open (&cliCfg)< 0)
       {
           System_printf ("错误:无法打开 CLI\n");
           返回;
       }
       System_printf ("Debug: CLI is operated\n");

    //#endif


       // gMmwMssMCB..cfgStatus = false;
       // gMmwMssMCB.runningStatus = false;
       // gMmwMssMCB.isMMWaveOpen = false;


    #if 1.  

       gMmwMssMCB.sensorState = Mmww Demo_Sensor n_195打开;
       
       char* args2[]={"sensorStop"};
       MmwDemo_CLISensorStop (1、args2);

       char* args8[]={"adcbufCfg"、"-1"、"0"、"1"、"1"、"1"、 "1"};
       MmwDemo_CLIADCBufCfg (6、args8);

       char* args3[]={"guiMonitor"、"-1"、"1"、"1"、"0"、 "0"、"0"、"1"};
       MmwDemo_CLIGuiMonSel (8、args3);

       char* args4[]={"cfarCfg"、"-1"、"0"、"2"、"8"、 "4"、"3"、"0"、"15"、"1"};
       MmwDemo_CLICfarCfg (10、args4);

       char* args41[]={"cfarCfg"、"-1"、"1"、"0"、"4"、 "2"、"3"、"1"、"15"、"1"};
       MmwDemo_CLICfarCfg (10、args41);
       
       char* args5[]={"multiObjBeamForming"、"-1"、"1"、"0.5"};
       MmwDemo_CLIMultiObjBeamForming (4、args5);

       char* args7[]={"functerRemoval"、"-1"、"0"};
       MmwDemo_CLIClutterRemoval (3、args7);

       char* args6[]={"calibDcRangeSig"、"-1"、"0"、"-5"、"8"、 "256"};
       MmwDemo_CLICalibDcRangeSig (6、args6);

       char* args13[]={"extendedMaxVelocity"、"-1"、"0"};
       MmwDemo_CLIExtendedMaxVelocity (3、args13);

     
       char* args17[]={"lvdsStreamCfg"、"-1"、"0"、"0"、"0"};
       MmwDemo_CLILvdsStreamCfg (5、args17);


       char* args9[]={"compRangeBiasAndRxChanPhas"、"0.0"、"1"、"1"、"1"、"1"、"0"、"1"、"1"、"0"、"1"、"1"、"0"、"1"、"1"、"0"、"1"、"1"、"0"、"0"、"0"、"1"、"1"、"1"、"1"、"1"、"1"、"1"、"1"、"1"、"1"、"1"、"1"、"1"
       MmwDemo_CLICompRangeBiasAndRxChanPhaseCfg (6、args9);

       char* args10[]={"measureRangeBiasAndRxChanPhas"、"0"、"1.5"、"0.2"};
       MmwDemo_CLIMeasureRangeBiasAndRxChanPhaseCfg (4、args10);

       char* args14[]={CQRxSatMonitor"、"0"、"3"、"4"、"63"、 "0"};
       MmwDemo_CLIChirpQualityRxSatMonCfg (6、args14);

       char* args15[]={"CCQSigImgMonitor"、"0"、"127"、"4"};
       MmwDemo_CLIChirpQualitySigImgMonCfg (4、args15);

       char* args16[]={"analogMonitor"、"0"、"0"};
       MmwDemo_CLIAnalogMonitorCfg (3、args16);

       char* args11[]={"aoaFovCfg"、"-1"、"-90"、"90"、"-90"、 "90"};
       MmwDemo_CLIAoAFovCfg (6、args11);

       char* args12[]={"cfarFovCfg"、"-1"、"0"、"0"、"49.99"};
       MmwDemo_CLICfarFovCfg (5、args12);

       char* args121[]={"cfarFovCfg"、"-1"、"1"、"-1"、"1.00"};
       MmwDemo_CLICfarFovCfg (5、args121);

       char* args20[]={"calibData"、"0"、"0"、"0"};
       MmwDemo_CLICalibDataSaveRestore (4、args20);

       char* args18[]={"configDataPort"、"921600"、"1"};
       MmwDemo_CLIConfigDataPort (3、args18);

       // char* args19[]={"queryDemoStatus"};
       // MmwDemo_CLIQueryDemoStatus (1、args19);

       char* args1[]={"sensorStart"};
       MmwDemo_CLISensorStart (2、args1);

    请注意:

       // gMmwMssMCB..cfgStatus = false;
       // gMmwMssMCB.runningStatus = false;
       // gMmwMssMCB.isMMWaveOpen = false;

    它导致了错误、因为 gMmwMssMCB 没有定义这些参数。

    上述命令的执行和值直接从配置文件中捕获、否则在使用 Python 脚本通过 UART 接口发送该配置文件中的命令时、用于启动雷达。

    如果我错过了什么、请告诉我。

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

    尊敬的 Hitanshu:

    这不是正确的做法。
    我告诉您调用所有这些 CLI 函数正在调用的函数、然后在这些函数内对值进行硬编码。 您在上面所做的操作不是硬编码、请查看以下示例:

    然后被称为:

    请按此方式填写。

    此致、
    Saswat Kumar