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.

TIDEP-01012: I want to check some barriers when I use 1 TX 16 RX radar with "cascade radar object detect usecase" in PROCESSOR SDK RADAR

Part Number: TIDEP-01012

I want to create a 1 tx 16 rx cascade radar under PROCESSOR_SDK_RADAR environment.

I check the operation of the setting for 1tx 16rx using “cascade_radar_object_detect usecase”.

(It means radar_test_vector ( attached ) is just changed. Just 1 RF chip sends FMCW and other RF chips just only receives signal.).

 SDK_setting_1Tx_16Rx.zip

As a result, it seems to be wrong when I dump below value.

 

C:\PROCESSOR_SDK_RADAR_03_08_00_00\vision_sdk\apps\src\rtos\radar\src\alg_plugins\alg_fxns\radardspcascademimo\radarDspCascadeMimo.c

L.213

pObj->chObj[chId].totalNumTx[profId] is 4.

(But 1 is correct in my situation)

 

Plus I get the root of it, it is below.

C:\PROCESSOR_SDK_RADAR_03_08_00_00\vision_sdk\apps\src\rtos\radar\src\usecases\cascade_radar_object_detect\chains_cascadeRadarOd.c

Around L.518

                chCreateParams->numTxAnt[j][i] = 1U;

(Even if pAr12xxCfg->radarParams[j].ar12xxConfig.chirpCfgArgs[numChirps].txEnable is 0)

 

In my situation, a master RF chip only transmits FMCW signal.

Other RF chips don’t transmit any signal.

 

If I embed below code around L.518 in chains_cascadeRadarOd.c,

chCreateParams->numTxAnt[0][0] = 1U;

chCreateParams->numTxAnt[1][0] = 0U;

chCreateParams->numTxAnt[2][0] = 0U;

chCreateParams->numTxAnt[3][0] = 0U;

 

L.213

pObj->chObj[chId].totalNumTx[profId] becomes 1, it seems to be correct.

 

Points what I want to know are below.

Q1.

Are there any reasons why numTxAnt is 1 around L.518 in chains_cascadeRadarOd.c for no send RF chips?

 

Q2.

Are there any side effects except AOA processing if I embed these code?

(I’m afraid of meta rule like all RF chips need to send FMCW signal in cascade radar SDK)

  • Hi,

    Q1: This parameter is connected with that radar device chirp configuration. It stores the Tx enabled in 'pAr12xxCfg->radarParams[j].ar12xxConfig.chirpCfgArgs[numChirps].txEnable'. If there is no azimuth or elevation then it assumes only one Tx is enabled for that device & chirp config.

    Are there any reasons why numTxAnt is 1 around L.518 in chains_cascadeRadarOd.c for no send RF chips?

    Q2: Even though you don't enable slaves Tx antenna but for the processing you need to set numTxAnt to 1 for all the devices. As for each of slaves (which Tx is off), signal is reflected from a single transmitter of the full setup, so no. of virtual antenna is 1(tx) x 4 (rx)=4. Thus make Tx=1 for all the devices in your case here.

    Are there any side effects except AOA processing if I embed these code?
  • Thank you for your answer.
    If

    chCreateParams->numTxAnt[0][0] = 1U;

    chCreateParams->numTxAnt[1][0] = 1U;

    chCreateParams->numTxAnt[2][0] = 1U;

    chCreateParams->numTxAnt[3][0] = 1U;

    around L.518 in chains_cascadeRadarOd.c,

    totalNumTx is 4 through summing for all device

                    totalNumTx += (UInt32)pLinkCreateParams->chCreateParams[chId].

                                          numTxAnt[devId][profId];

    around L.202 in  C:\PROCESSOR_SDK_RADAR_03_08_00_00\vision_sdk\apps\src\rtos\radar\src\alg_plugins\alg_fxns\radardspcascademimo\radarDspCascadeMimo.c

     

    In this case,

    L.211

                pObj->chObj[chId].numVirtualAntenna[profId] =

                    totalNumRx * totalNumTx;

                pObj->chObj[chId].totalNumTx[profId] = totalNumTx;

     

    pObj->chObj[chId].numVirtualAntenna[profId] is 64 (=16*4). (I guess it’s wrong. 16 is correct)

    pObj->chObj[chId].totalNumTx[profId] is 4.

     

    L.403.

                UInt32 numVirtAntPerSensor =

                    pObj->chObj[pObj->currCh].totalNumTx[pObj->currProfile] *

                    pLinkCreateParams->chCreateParams[pObj->currCh].

                    numRxAnt[0U][pObj->currProfile];

     

    numVirtAntPerSensor is 4*4=16. (I guess it’s wrong.)

     ( You mention no. of virtual antenna is 1(tx) x 4 (rx)=4. )

     

    So, Should I force to set totalNumTx 1 at L.205 in my 1Tx 16Rx case?

     

     

    BTW, just for reference in radarFft2.c, numTxAntenna is 1 and numAntennas is 4.

     

    At L.553 In C:\PROCESSOR_SDK_RADAR_03_08_00_00\vision_sdk\apps\src\rtos\radar\src\alg_plugins\alg_fxns\radarfft2\radarFft2.c

                    pObj->numAntennas[chId][i] = pRadarParams->numTxAntenna[i] *

                                             pRadarParams->numRxAntenna[i];

      

    The value of pRadarParams->numTxAntenna[i] comes from L.349 in C:\PROCESSOR_SDK_RADAR_03_08_00_00\vision_sdk\apps\src\rtos\radar\src\common\chains_common_ar12xx.c

                    /* Making a simplistic assumption here that the number of chirps is equal to the

                     * number of antennas. This is not always the case if the numLoops is > 255 in which

                     * case the number of chirps may be double the number of tx antennas and the number

                     * of loops may be half. This is currently not handled.

                     */

                    pCfgOut->radarParams[j].numTxAntenna[i] =

                         pCfgOut->radarParams[j].ar12xxConfig.frameCfgArgs->chirpEndIdx + 1U;

     

  • I need to review the source code to assist you here. Let me provide reply in 2 days.

  • It's been a week since that. How's it going? Could you tell me about the current situation?

  • Apart form processing chain configuration here, were you able to configure all the slaves to achieve 1Tx and 16Rx. Ideally all those device configuration should be later used well for the processing chain calculation.

    Are you seeing some un-expected behavior in the output of processed result with your 1Tx+16Rx configuration?

    I'm forwarding this thread to TDA signal processing expert.

  • >Are you seeing some un-expected behavior in the output of processed result with your 1Tx+16Rx configuration?

    Yes.

    I guess that in my case, "totalNumTx += (UInt32)pLinkCreateParams->chCreateParams[chId]." is wrong.

    >I'm forwarding this thread to TDA signal processing expert.

    I'm glad to take it.