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: Crash of OOB demo

Part Number: AWR1843BOOST
Other Parts Discussed in Thread: AWR1843

Hi supports,

I tried to run OOB demo by 'mmwave_sdk_03_03_00_03' and below configuration file but the program doesn't work well.

sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 7 0
adcCfg 2 1
adcbufCfg -1 0 1 1 1
profileCfg 0 77.009999997 11.30 4.50 39.90 131586 0 49.631596 1 349 10000 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 4
chirpCfg 2 2 0 0 0 0 0 2
frameCfg 0 2 33 0 33.33 1 0
lowPower 0 0
guiMonitor -1 1 0 0 0 0 0
cfarCfg -1 0 2 8 4 3 0 15 1
cfarCfg -1 1 0 4 2 3 1 15 1
multiObjBeamForming -1 1 0.5
clutterRemoval -1 0
calibDcRangeSig -1 0 -5 8 256
extendedMaxVelocity -1 0
lvdsStreamCfg -1 0 0 0
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 5 121 0
CQSigImgMonitor 0 127 4
analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -1 1.00
sensorStart

However, the program works well by below configuration. All I changed is the number of chirps from 33 to 32.

sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 7 0
adcCfg 2 1
adcbufCfg -1 0 1 1 1
profileCfg 0 77.009999997 11.30 4.50 39.90 131586 0 49.631596 1 349 10000 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 4
chirpCfg 2 2 0 0 0 0 0 2
frameCfg 0 2 32 0 33.33 1 0
lowPower 0 0
guiMonitor -1 1 0 0 0 0 0
cfarCfg -1 0 2 8 4 3 0 15 1
cfarCfg -1 1 0 4 2 3 1 15 1
multiObjBeamForming -1 1 0.5
clutterRemoval -1 0
calibDcRangeSig -1 0 -5 8 256
extendedMaxVelocity -1 0
lvdsStreamCfg -1 0 0 0
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 5 121 0
CQSigImgMonitor 0 127 4
analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -1 1.00
sensorStart

Is there any limitation for radar configuration?

I know there is a limitation of radar cube size but this configuration doesn't exceed it.

Best Regards,

Kazuki

  • Hi Kazuki,

    Let me run this configuration on a device on my end to see what the problem might be. I will get back to you with a definitive answer by Monday.

    For now though, one likely culprit could be the frame periodicity being too low for the chirps and processing to finish. Perhaps try Increasing that in the configuration? You could start with frameCfg 0 2 3350 1 0 and if that works, you can experiment with other values of frame periodicity.

    Regards,

    Aayush

  • Hi Aayush,

    Thank you for quick response.

    I tried to change frame periodicity from 33ms to 100ms.

    But the program doesn't seem to work well.

    The program seems to work well with 30fps(frame periodicity=33ms) when I decreased the number of ADC sample from 349 to 256.

    Does this program have any limitation of memory or calculation time?

    Regards,

    Kazuki

  • Hi Kazuki,

    I was able to run your configuration and root cause the issue. When debugged with CCS, I could see that the program terminates with error number -30311. This error originates from the CFAR data processing unit: DPU_CFARCAPROCHWA_ENOMEM__DET_MATRIX_EXCEEDS_HWA_INP_MEM.

    This error essentially means that for your configuration, the detection matrix couldn't fit into the HWA memory banks when needed by the CFAR data processing unit. The CFAR data processing unit (DPU) uses two HWA memory banks to hold the detection matrix during processing. As one bank is 16K, this means that the detection matrix must fit in 32K memory to be copied into HWA memory during CFAR computation.

    Size of detection matrix needed is: numRangeBins * numDopplerBins * sizeof(uint16_t) or numRangeBins * numDopplerBins * 2

    mmWave demo rounds up numAdcSamples to the nearest power of two to get numRangeBins. For your configuration, 349 ADC samples rounds up to 512 range bins.

    Similarly, it rounds up numChirpsPerFrame/numTxAntennas to the nearest power of two to get numDopplerBins. For your configuration, (3*33)/3 = 33 rounds up to 64 doppler bins.

    For this configuration, size of detection matrix is  512*64*2  = 65,536 bytes, which exceeds the 32K limit.

    When you reduce numAdcSamples to 256, this number is halved and becomes 32,768 bytes, which just fits into two HWA memory banks.

    On the other hand, if you use the other configuration you mentioned, numDopplerBins becomes (3*32)/3 = 32. This configuration also allows detection matrix to fit into HWA memory.

    I hope this answers your question. You can look into how to debug the demo in CCS in section 3. 2. 2. of the mmWave SDK user guide.

    You can have a look at demo/utils/mmwdemo_rfparser.c to see how numRangebins, numDopplerBins, etc are calculated from user configuration. You can have a look at datapath/dpc/objectdetection/objdethwa/src/objectdetection.c to see memory allocation details.

    Alternatively, information on memory constraints imposed by DPUs is usually available in the doxygen documentation of all DPUs. For example, from the doxygen documentation of CFAR DPU: "...This matrix must be no bigger than what can fit in M0+M1 memory (error checking is done during DPU_CFARCAProcHWA_config and violation will generate error code DPU_CFARCAPROCHWA_ENOMEM__DET_MATRIX_EXCEEDS_HWA_INP_MEM)."

    You can find this page on your local SDK install location, probably here: file:///C:/ti/mmwave_sdk_03_03_00_03/packages/ti/datapath/dpc/dpu/cfarcaproc/docs/doxygen/html/index.html

    Regards,

    Aayush

  • Hi Aayush,

    Thank you for your detailed answers.

    I understood well.

    I guess this problem would be resolved by using DSP for CFAR processing because L2 memory of DSP is bigger than HWA memory.

    But this would cause slower calculation time/

    Do you have any solution for this problem?

    Btw, you said data size of HWA memory is rounded up.

    Is it same in L3 memory (radar cube)?

    Regards,

    Kazuki

  • Hi Kazuki,

    Let me have a look into this and get back to you by Monday.

    Regards,

    Aayush

  • Hi Aayush,

    Thank you for your reply.

    I look forward to hearing back from you.

    Regards,

    Kazuki

  • Hi Kazuki,

    It is the mmWave demo that does this rounding up. So, it'll be the case for both HWA and DSP. numRangeBins, numDopplerBins, etc are calculated on the basis of numAdcSamples, numChirpsPerFrame/numTxAntennas provided by the user. It is these that are rounded up to the power of two.

    numRangeBins and numDopplerBins are used to allocate space for the detection matrix, the ADC In buffer and the radarcube, so this rounding up would affect all of them. This calculation of numRangeBins and numDopplerBins happens in demo/utils/mmwdemo_rfparser.c.

    I am not sure of a way around this, but to my knowledge, the datapath in itself doesn't impose a hard constraint of needing these bins to be a power of two (I could be wrong here). Let me experiment, go through the code and ask the wider team about why this rounding up is needed. Perhaps you could also experiment on your end by removing this round-up from the rfparser file, recompiling the demo and checking if that has an impact.

    Regards,

    Aayush

  • Hi Aayush,

    Thank you for your reply

    I understood rounding up would be done on all memory (HWA,L1,L2 and L3 memory)

    By the way, I found below document.

    www.ti.com/.../swra663.pdf

    Is memory compression compatible with HWA memory?

    Best Regards,

    Kazuki

  • Hi Kazuki,

    I'm not sure. Let me check with the wider team and get back to you on this next week.

    Regards,

    Aayush

  • Hi Aayush,

    Thank you!

    I look forward to your reply.

    Best Regards,

    Kazuki

  • Hi Kazuki,

    I checked the documentation and conferred with the wider team, compression/decompression support is not available for HWA 1.0 with AWR1843. 

    Regards,

    Aayush