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.

AWR1243: Regarding AWR1243p, Question about default mmWave DFP settings

Part Number: AWR1243

We got the DFP package of mmWaveStudio from the following link.

http://software-dl.ti.com/ra-processors/esd/MMWAVE-DFP/latest/index_FDS.html

We're trying to configure AWR1243p setting using modified version of "mmwave_dfp_01_02_05_01\ti\example\mmwavelink_monitoring\mmwaveconfig.txt".

Regarding this default text file "mmwaveconfig.txt", we have 27 questions, so it would be appreciated if you answer all questions.

******

Q1. Please let us know the meanings of 'Complex 2x' and 'Pseudo Real' in the setting 'rlAdcOutCfg_t->adcFormat'.

Q2. The default value of 'rlAdcOutCfg_t->adcFormat' is 'Complex 2x' and that of 'rlDevDataFmtCfg_->adcFormat' is 'Complex', which is inconsistent with each other. Is it all right with that and why?

Q3. In what order is raw data transferred when 'rlDevDataFmtCfg_t->chInterleave' is ON ?

Q4. What's the meaning of the setting 'rlDevDataPathCfg_t->transferFmtPkt1' ?

Q5. The setting 'rlProfileCfg_t->profileId' is set to 0 in default setting, but four Profile IDs can be set at most. Please let us know how to make settings of those other three profile IDs (profileId=1~3).

Q6. The setting 'rlProfileCfg_t->txCalibEnCfg' is set to 511, of which we cannot find any explanation anywhere.  What's the meaning of this setting command ?

Q7. Does 'rlChirpCfg_t' mean the setting for the detail of chirp ? If so, since a maximum of 512 chips can be set, please let us know how to make settings of all 512 chirps individually.

Q8. Please let us know the meaning of 'rlChirpCfg_t->chirpStartIdx' and what to set.

Q9. Please let us know the meaning of 'rlChirpCfg_t->chirpEndIdx' and what to set.

Q10. Please let us know the meaning of 'rlChirpCfg_t->profileIdCPCFG' and what to set.

Q11. 

We have 'rlFrameCfg_t' setting and 'rlAdvFrameSeqCfg_t' setting, and the 'rlAdvFrameSeqCfg_t', including a subcontent 'rlSubFrameCfg_t' setting, have more detailed parameter than 'rlFrameCfg_t'.
Is is correct to think that when sub-frame function isn't needed we use 'rlFrameCfg_t' setting only, and when sub-frame function or burst function is needed we use 'rlAdvFrameSeqCfg_t' setting ?
If so, please let us know how to switch between the above two modes.

Q12. What's the difference between 'rlChirpCfg_t->chirpStartIdx' and 'rlFrameCfg_t->chirpStartIdx' ? (If our understanding in Q.11 is correct, this question need not to be answered.)

Q13. What's the difference between 'rlChirpCfg_t->chirpEndIdx' and 'rlFrameCfg_t->chirpEndIdx' ? (If our understanding in Q.11 is correct, this question need not to be answered.)

Q14. Please let us know what 'rlFrameCfg_t->loopCount' means.

Q15. Please let us know what 'rlFrameCfg_t->numAdcSample' means and how to calculate the value.

Q16. 

Does the setting 'rlAdvFrameSeqCfg_t->forceProfile = 0' mean that all four sub-frames are set to 1st profile ?
If so, when four different profiles are needed, please let us know how to set those four profiles, and also, the relationship with 'rlSubFrameCfg_t->forceProfileIdx'.

Q17. 

The setting 'rlAdvFrameSeqCfg_t->numFrames' is set to 100 in default setting, but 'rlFrameCfg_t->frameCount' is set to infinity in default.
Is it ok to make such a contradictory setting and why ? (If our understanding in Q.11 is correct, this question need not to be answered.)

Q18. Please let us know the meaning of 'rlAdvFrameSeqCfg_t->loopBackCfg' and what to set.

Q19. Please let us know the meaning of 'rlAdvFrameSeqCfg_t->triggerSelect'. Is it the same as 'rlFrameCfg_t->triggerSelect'?

Q20. We have the same parameter setting 'frameTrigDelay' in both 'rlAdvFrameSeqCfg_t' and 'rlFrameCfg_t'. Please let us know the difference.  (If our understanding in Q.11 is correct, this question need not to be answered.)

Q21. Regarding 'rlSubFrameCfg_t', is it corret to think of the number of all chirps in one burst as 'numOfChirps x numLoops' ?

Q22. Regarding 'rlSubFrameCfg_t', is it corret to think of the number of all bursts in one sub-frame as 'numOfBurst x numOfBurstLoops' ?

Q23. Regarding 'rlSubFrameCfg_t', is it corret to think of the number of all chirps in one sub-frame as 'numOfChirps x numLoops x numOfBurst x numOfBurstLoops' ?

Q24. Which part of transmitter does the parameter 'rlContModeCfg_t->contModeRxGain->RX_GAIN' relate to ?

Q25. Which part of transmitter does the parameter 'rlContModeCfg_t->contModeRxGain->RF_GAIN_TARGET' relate to ? And what's the difference from above-mentioned RX_GAIN?

Q26. What does the default setting 'rlContModeCfg_t->vcoSelect = 3388' mean ? 

Q27. 

In a simple case of transmitting infinite number of chirps only from Tx1, with the same time interval but with 90 degree initial phase rotation between each chirp,
please let us know in detail about how to set this sequence.

*****

  • Hi,

    Please provide us some time to provide answers to all of these questions.

    Thanks for your patience.

    Regards,

    Jitendra

  • Hi,

    Please find the QnA below-

    Q1. Please let us know the meanings of 'Complex 2x' and 'Pseudo Real' in the setting 'rlAdcOutCfg_t->adcFormat'.

    Ans: Please refer this appnote http://www.ti.com/lit/pdf/spyy007

    Q2. The default value of 'rlAdcOutCfg_t->adcFormat' is 'Complex 2x' and that of 'rlDevDataFmtCfg_->adcFormat' is 'Complex', which is inconsistent with each other. Is it all right with that and why?

    Ans: Above parameter is to define BSS how it is generated from RF chain and stored on ADC buffer, there we need to select from real/complex1x/complex2x. 'rlDevDataFmtCfg_->adcFormat' is used by MSS for datapath to transmit the generated ADC data over LVDS/CSI-2 interface, in this case it requires to know the byte length of ADC sample which can be 2 byte(real) or 4 bytes(complex1x/complex2x) thus this has only real/complex option.

    Q3. In what order is raw data transferred when 'rlDevDataFmtCfg_t->chInterleave' is ON ?

    Ans: Refer these documents-

    www.ti.com/.../swra581b.pdf

    www.ti.com/.../swra555.pdf

    e2e.ti.com/.../779093

    Q4. What's the meaning of the setting 'rlDevDataPathCfg_t->transferFmtPkt1' ?

    Ans: In mmwave sensor, raw ADC data along with CP (chirp parameter) and CQ (chirp quality) data can be sent in single packet or CP/CQ as separate packet. transferFmtPkt1 is used to configure to send CP/CQ data as separate packet on top ADC (FmtPkt0). Please refer ICD (AWR DEV RX DATA PATH CONF SB).

    Q5. The setting 'rlProfileCfg_t->profileId' is set to 0 in default setting, but four Profile IDs can be set at most. Please let us know how to make settings of those other three profile IDs (profileId=1~3).

    Ans: you can edit ‘mmwaveconfig.txt’ to select different profileID (1 to 3) so application (mmw_config.c-> MMWL_readProfileConfig) will read this file for different profileID. In case you need to multiple profile IDs from file then you need to add multiple configurations in the mmwaveconfig.txt and amend MMWL_readProfileConfig function to read all the profile config from the file.

    void MMWL_readProfileConfig(rlProfileCfg_t *profileCfgArgs, int profileCfgCnt)

    {…..

           if (strcmp(name, "rxGain") == 0)

           {

               profileCfgArgs->rxGain = atoi(value);

                                                    profileCfgCnt--;

                                                    if (profileCfgCnt == 0)                                                {

                                                                    readAllParams = 1;

                                                    }                                                else                                                {

                                                                    // Jump to next profileCfgArgs pointer

                                                                    profileCfgArgs++;                                                }       }

    Q6. The setting 'rlProfileCfg_t->txCalibEnCfg' is set to 511, of which we cannot find any explanation anywhere.  What's the meaning of this setting command ?

    Ans: Please refer profile configuration structure (rlProfileCfg_t ) detail in ‘ti\control\mmWaveLink\include\rl_sensor.h’ file.

    Q7. Does 'rlChirpCfg_t' mean the setting for the detail of chirp ? If so, since a maximum of 512 chips can be set, please let us know how to make settings of all 512 chirps individually.

    Ans: This is structure to set the chirp configuration to the device. To set all the 512 chirps individually you need to call ‘rlSetChirpConfig’ those many times with different value in rlChirpCfg_t structure. Please look for rlChirpCfg_t structure in rl_sensor.h file or ICD document (docs\ mmWave-Radar-Interface-Control.pdf)

    Q8. Please let us know the meaning of 'rlChirpCfg_t->chirpStartIdx' and what to set.

    Ans: Please look for rlChirpCfg_t structure in rl_sensor.h file or ICD document (docs\ mmWave-Radar-Interface-Control.pdf)

    Q9. Please let us know the meaning of 'rlChirpCfg_t->chirpEndIdx' and what to set.

    Ans: same as above.

    Q10. Please let us know the meaning of 'rlChirpCfg_t->profileIdCPCFG' and what to set.

    Ans: This is to set profileID for that specific chirp configuration. Please refer above answer.

    Q11. We have 'rlFrameCfg_t' setting and 'rlAdvFrameSeqCfg_t' setting, and the 'rlAdvFrameSeqCfg_t', including a subcontent 'rlSubFrameCfg_t' setting, have more detailed parameter than 'rlFrameCfg_t'.
    Is is correct to think that when sub-frame function isn't needed we use 'rlFrameCfg_t' setting only, and when sub-frame function or burst function is needed we use 'rlAdvFrameSeqCfg_t' setting ?
    If so, please let us know how to switch between the above two modes.

    Ans: Your understanding is correct. Whichever API is called lately that feature will be enabled. Refer this link for advanced frame configuration detail.

    https://e2e.ti.com/support/sensors/f/1023/p/851842/3150523#3150523

    Q12. What's the difference between 'rlChirpCfg_t->chirpStartIdx' and 'rlFrameCfg_t->chirpStartIdx' ? (If our understanding in Q.11 is correct, this question need not to be answered.)

    Ans: first one points to start index of Chirp RAM which needs to be configured whereas second one is to select starting chirp for the frame configuration.

    Q13. What's the difference between 'rlChirpCfg_t->chirpEndIdx' and 'rlFrameCfg_t->chirpEndIdx' ? (If our understanding in Q.11 is correct, this question need not to be answered.)

    Ans: similar to above answer. Refer ICD for detailed info. (AWR CHIRP CONF SET SB, AWR FRAME CONF SET SB)

    Q14. Please let us know what 'rlFrameCfg_t->loopCount' means.
    Ans: this is how many times you need to repeat the set of chirp (startIdx to endIdx) range in the frame. Refer ICD for detailed info. (AWR FRAME CONF SET SB)

    Q15. Please let us know what 'rlFrameCfg_t->numAdcSample' means and how to calculate the value.

    Ans: same as above.

    Q16. Does the setting 'rlAdvFrameSeqCfg_t->forceProfile = 0' mean that all four sub-frames are set to 1st profile? If so, when four different profiles are needed, please let us know how to set those four profiles, and also, the relationship with 'rlSubFrameCfg_t->forceProfileIdx'.

    Ans: please refer ICD (AWR ADVANCED FRAME CONF SB). If forceProfile is set to zero then all the chirps within the advFrame will connect to profileID set from rlSetChirpConfig API. If set to ‘1’ then all the chirps of subframe will use profileID set under forceProfileIdx.

    Q17. The setting 'rlAdvFrameSeqCfg_t->numFrames' is set to 100 in default setting, but 'rlFrameCfg_t->frameCount' is set to infinity in default. Is it ok to make such a contradictory setting and why ? (If our understanding in Q.11 is correct, this question need not to be answered.)

    Ans: this example is for reference only, you can configure the device as required.

    Q18. Please let us know the meaning of 'rlAdvFrameSeqCfg_t->loopBackCfg' and what to set.

    Ans: This is to configure any of one subframe to use as loopback config.

    Q19. Please let us know the meaning of 'rlAdvFrameSeqCfg_t->triggerSelect'. Is it the same as 'rlFrameCfg_t->triggerSelect'?

    Ans: Both are same, refer rl_sensor.h or ICD.

    Q20. We have the same parameter setting 'frameTrigDelay' in both 'rlAdvFrameSeqCfg_t' and 'rlFrameCfg_t'. Please let us know the difference.  (If our understanding in Q.11 is correct, this question need not to be answered.)

    Q21. Regarding 'rlSubFrameCfg_t', is it corret to think of the number of all chirps in one burst as 'numOfChirps x numLoops' ?

    Ans: Yes.

    Q22. Regarding 'rlSubFrameCfg_t', is it corret to think of the number of all bursts in one sub-frame as 'numOfBurst x numOfBurstLoops' ?

    Ans: Yes.

    Q23. Regarding 'rlSubFrameCfg_t', is it corret to think of the number of all chirps in one sub-frame as 'numOfChirps x numLoops x numOfBurst x numOfBurstLoops' ?

    Ans: Yes.

    Q24. Which part of transmitter does the parameter 'rlContModeCfg_t->contModeRxGain->RX_GAIN' relate to ?

    Ans: The total RX gain is achieved as a sum of RF gain and IF amplifiers gain. The RF Gain target (30 dB, 34 dB and 26 dB) allows the user to control the RF gain independently from the total RX gain, thus giving flexibility to the user to trade-off linearity vs. noise figure. Out of multiple gain settings for the RF stages, the firmware calibration algorithm uses the one that makes the RF gain as close as possible to the user programmed RF Gain Target. Refer ICD (AWR PROFILE CONF SB)

    Q25. Which part of transmitter does the parameter 'rlContModeCfg_t->contModeRxGain->RF_GAIN_TARGET' relate to ? And what's the difference from above-mentioned RX_GAIN?

    Ans: On top of RX_GAIN, RF_GAIN can be configured separately.

    Q26. What does the default setting 'rlContModeCfg_t->vcoSelect = 3388' mean ? 

    Ans: Please refer rl_sensor.h (rlContModeCfg_t) for mapping.

    Q27.  In a simple case of transmitting infinite number of chirps only from Tx1, with the same time interval but with 90 degree initial phase rotation between each chirp, please let us know in detail about how to set this sequence.

    Ans: You need to use phaseShift feature (rlRfSetPhaseShiftConfig) of the device where at each Tx you can add fixed phase for each chirp Index.

     

    Regards,

    Jitendra

  • Thank you for your detailed answer. We'll check all of them and if we have another question answered, we'll post another question on E2E later.

    Thank you for your kindness.

    Kitamura