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.

[参考译文] AM2732:用于级联2 x AWR2243的 HWA 配置

Guru**** 2540720 points
Other Parts Discussed in Thread: AWR2243, AM2732

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1299594/am2732-hwa-configs-for-cascading-2-x-awr2243

器件型号:AM2732
主题中讨论的其他器件:AWR2243

您好!

我开始将 AM2732+AWR2243演示更新为 AM2732+2xAWR2243 (级联板 TIDA020047)。 我已更新了以下函数并在 DSS 部分中定义、以支持此新配置(CSI、DMA、

HWA ):  

1. CSI RX 配置 PING/PONG CSIRX_contextSetConfig  

/* CSI 1. */

gConfigCsirx0ContextConfig[mmw_demo_CSI2_context].pingPongConfig.pingAddress = CSL_DSS_HW_DMA0_RAM_BANK0_BASE;
gConfigCsirx0ContextConfig[mmw_demo_CSI2_context].pingPongConfig.pongAddress = CSL_DSS_HW_DMA0_RAM_BANK1_base;

/* CSI 2. */
gConfigCsirx1ContextConfig[mmw_demo_CSI2_context].pingPongConfig.pingAddress = CSL_DSS_HWA_DMA0_RAM_BANK0_BASE +(nomberOfSample*4(nbrRXForOneAWR2243)*4);
gConfigCsirx1ContextConfig[mmw_demo_CSI2_context].pingPongConfig.pongAddress = CSL_DSS_HWA DMA0_RAM_BANK1_BASE +(nomberOfSample*4(nbrRXForOneAWR2243)*4);

2.我们使用了 DMA 配置,如3天线的配置:"DPC_ObjDet_rangeConfig"

3. HWA 配置函数 "rangeProcHWA_ConfigEDMA_DataOut_nonInterleave":

/
*配置 EDMA 以将 HWA 结果复制到雷达立方体
*适用于带3 TX 天线的案例
香港特别行政区











政府 / dpedma_syncACfg syncACfg; uint32_t numSamplePerChirp; uint32_t numBytesPerChirp; uint32_t destAddr[2][3]; uint8_t 索引; bool lastChan = false; numSamplePerChirp = DPParams->numRangeBins *DPParams->numRxtams; numBytesPerChirp = numSamplePerChirp * sizeof (uint32_t); destAddr[0][0]=(uint32_t) rangeProcObj->radarCubebuf; destAddr[0][1]=(uint32_t)(rangeProcObj->radarCubebuf + 2 * numSamplePerTx); destAddr[0][2]=(uint32_t)(rangeProcObj->radarCubebuf + 4 * numSamplePerTx); destAddr[1][0]=(uint32_t)(rangeProcObj->radarCubebuf + numSamplePerTx); destAddr[1][1]=(uint32_t)(rangeProcObj->radarCubebuf + 3 * numSamplePerTx); destAddr[1][2]=(uint32_t)(rangeProcObj->radarCubebuf + 5 * numSamplePerTx); =>通过修改这些函数,我得到了与下面相同的日志。 我需要弄清楚其他函数吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Amine:

    请给我2天的时间来回顾并了解。 另请注意、如果以图表或简要说明的形式列出了您打算进行的代码更改、而不是以代码本身的形式、则支持会更容易。 如果您遇到任何问题、我们一定可以查看更改的具体细节。

    此致、

    考希克

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

    尊敬的 Gouda:

    感谢您的答复。

    我为我们的级联雷达数据路径准备了两张幻灯片、其中重点介绍了使用 CSI 的两个雷达的数据流、以及数据如何从距离处理 DPU 传输到雷达立方体数据。

    我们需要知道此流程是否正确、以及我们应该在代码中更改什么以使此流程正常工作?

    因为 w 试图修改代码来匹配此流程、但它对我们不起作用。

    e2e.ti.com/.../radar-Architecture-Spec-DPU.pdf

    Thnaks.

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

    您好!

    下面是我们所做的基本修改:

    -添加了从雷达 CSI2B 的配置,我们在 DATA_PATH.c 文件中配置了目标内存:

    /*在 HWA 存储器中配置存储器。 */
    gConfigCsirx1ContextConfig[mmw_demo_CSI2_context].pingPongConfig.pingAddress = CSL_DSS_HW_DMA0_RAM_BANK0_BASE + 2048;
    gConfigCsirx1ContextConfig[mmw_demo_CSI2_context].pingPongConfig.pongAddress = CSL_DSS_HWA _DMA0_RAM_BANK1_BASE + 2048;

    -我们将 mmwDemo_DPC_ObjectDetection_csirxSOF0callback 更改为 cal "  SemaphoreP_POST (&gMmwDssMCBDPMTrigFrameSemHandle);"仅适用于主雷达的 CSIRX 帧起始。

    -在 objectdetection.c 文件中、我们更新了 DPC_ObjDet_rangeConfig 函数、我们将 TX 天线计数检查从3更改为6:

    /*我们使用雷达立方体格式1和非交错 ADC,因此对于3 TX 天线情况,我们必须
    *填充 format2、否则 format1
    */
    if (staticCfg->numTxtames ==6)
    {
    /* Ping */
    /* Ping - dataOutPing */

    -在 rangeprochwa.c 文件中,我们将 TX 天线计数检查从3更改为6 ,并将用于 EDMA 传输的目标地址更改为:

    否则,如果(DPParams->numTxtams==6U)
    {

    /
    *配置 EDMA 以将 HWA 结果复制到雷达立方体
    *适用于带3 TX 天线的案例
    香港特别行政区











     

    政府 / dpedma_syncACfg syncACfg; uint32_t numSamplePerChirp; uint32_t numBytesPerChirp; uint32_t destAddr[2][3]; uint8_t 索引; bool lastChan = false; numSamplePerChirp = DPParams->numRangeBins *DPParams->numRxtams; numBytesPerChirp = numSamplePerChirp * sizeof (uint32_t); destAddr[0][0]=(uint32_t) rangeProcObj->radarCubebuf; destAddr[0][1]=(uint32_t)(rangeProcObj->radarCubebuf + 2 * numSamplePerTx); destAddr[0][2]=(uint32_t)(rangeProcObj->radarCubebuf + 4 * numSamplePerTx); destAddr[1][0]=(uint32_t)(rangeProcObj->radarCubebuf + numSamplePerTx); destAddr[1][1]=(uint32_t)(rangeProcObj->radarCubebuf + 3 * numSamplePerTx); destAddr[1][2]=(uint32_t)(rangeProcObj->radarCubebuf + 5 * numSamplePerTx); 您能否检查此修改? 此致。