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.

IWR1843BOOST: numDopplerBins lower limit

Part Number: IWR1843BOOST


Hello,

When IWR1843BOOST uses the following configuration and runs the demo that comes with SDK3.5.0.4, an error is returned from the DPM module.

The error is resolved by making the following code changes.

mmwave_sdk_03_05_00_04/packages/ti/demo/xwr18xx/mmw/mss/mss_main.c

Function MmwDemo_dataPathConfig

***SDK original code:

if (RFparserOutParams.numDopplerChirps <= 4)

{

    RFparserOutParams.dopplerStep = RFparserOutParams.dopplerStep / (8 / RFparserOutParams.numDopplerBins);

    RFparserOutParams.numDopplerBins = 8;

}

***Code after modification:

if (RFparserOutParams.numDopplerChirps <= 8)

{

    RFparserOutParams.dopplerStep = RFparserOutParams.dopplerStep / (16 / RFparserOutParams.numDopplerBins);

    RFparserOutParams.numDopplerBins = 16;

}

I made this code change with reference to the comment in datapath/dpc/dpu/aoaproc/aoaproc_common.h line 175.

mmwave_sdk_03_05_00_04/packages/ti/datapath/dpc/dpu/aoaproc/aoaproc_common.h
line 175:
* This DPU has the following restrictions regarding its input parameters:\n
* The number of Doppler chirps (numDopplerChirps) must be a multiple of 4 and the number of Doppler bins (numDopplerBins)
* must be a power of 2 greater or equal than numDopplerChirps. Also, due to restrictions on the FFT implementation by DSPLIB,
* numDopplerBins must be at least 16.
*
* Parameter | Restriction
* :------------------|:--------------
* numDopplerChirps | Must be a multiple of 4.
* numDopplerBins | Must be at least 16. Must be a power of two, greater or equal than numDopplerChirps.

Below are the questions.

Q1. Is it appropriate to change the code in mss_main.c above to run with numDopplerChips=4?

Q2. Why is the minimum value for numDopplerBins 16?

Q3. Why is the minimum value of numDopplerBins limited to 8 in mss_main.c in SDK 3.5.0.4 Demo?

***Configuration: 3Tx, numDopplerChirps=4

sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 7 0
adcCfg 2 1
adcbufCfg -1 0 1 1 1
profileCfg 0 77.1 10 7 89 0 0 42.5 1 256 3190 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 2
chirpCfg 2 2 0 0 0 0 0 4
frameCfg 0 2 4 0 100 2 0
lowPower 0 0
guiMonitor -1 1 1 1 0 0 1
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 1 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 11.0
cfarFovCfg -1 1 -4.0 4.0
calibData 0 0 0
sensorStart

***DPM Module Error:

Error: DPM Report 4 received with error:-30301 arg0:0x64 arg1:0x800c328
{module#9}: "../mss_main.c", line 2347: error {id:0x10000, args:[0x1a7fc, 0x1a7fc]}
xdc.runtime.Error.raise: terminating execution
[C674X_0] Error: DPM Report 4 received with error:-30301 arg0:0x64 arg1:0x815a7c
xdc.runtime.Main: "../dss_main.c", line 256: assertion failure
xdc.runtime.Error.raise: terminating execution

Best Regards,
Hiroyuki Taguchi

  • Hello Hiroyuki,

    Error: DPM Report 4 received with error:-30301 arg0:0x64 arg1:0x800c328
    {module#9}: "../mss_main.c", line 2347: error {id:0x10000, args:[0x1a7fc, 0x1a7fc]}
    xdc.runtime.Error.raise: terminating execution
    [C674X_0] Error: DPM Report 4 received with error:-30301 arg0:0x64 arg1:0x815a7c
    xdc.runtime.Main: "../dss_main.c", line 256: assertion failure
    xdc.runtime.Error.raise: terminating execution

    Can you please clarify if this error is seen before or after making the modifications to the demo code? 

    Why is the minimum value for numDopplerBins 16?

    The AoA Proc DPU uses DSP_fft32x32() to perform the FFT which has a restriction on the minimum FFT size being 16. You can find more information in the DSPLIB doxygen located at: C:\ti\dsplib_c64Px_3_4_0_0\packages\ti\dsplib\docs\doxygen

    Please allow me some time to investigate the additional questions and get back to you. You can expect a response early next week.

    Best Regards,

    Josh

  • Hi Josh,

    Thank you for your reply.

    Yes, this error occurs before code modification.

    And this error does not occur after code modification.

    Best regards,

    Hiroyuki

  • Hi Hiroyuki,

    Thank you for clarifying when the error occurs. Please allow me an additional day to get the answers you are looking for. 

    Best Regards,

    Josh

  • Hi Josh,

    Any progress on this thread?

    Please update.

    Best,

    Hiroyuki

  • Hello Hiroyuki,

    I'm very sorry about the delayed response here. 

    Q3. Why is the minimum value of numDopplerBins limited to 8 in mss_main.c in SDK 3.5.0.4 Demo?

    When the number of doppler bins is less than this, it becomes difficult to distinguish direction of motion.  

    Is it appropriate to change the code in mss_main.c above to run with numDopplerChips=4?

    I do not believe these changes should be required here. 

    I made this code change with reference to the comment in datapath/dpc/dpu/aoaproc/aoaproc_common.h line 175.

    mmwave_sdk_03_05_00_04/packages/ti/datapath/dpc/dpu/aoaproc/aoaproc_common.h
    line 175:
    * This DPU has the following restrictions regarding its input parameters:\n
    * The number of Doppler chirps (numDopplerChirps) must be a multiple of 4 and the number of Doppler bins (numDopplerBins)
    * must be a power of 2 greater or equal than numDopplerChirps. Also, due to restrictions on the FFT implementation by DSPLIB,
    * numDopplerBins must be at least 16.
    *
    * Parameter | Restriction
    * :------------------|:--------------
    * numDopplerChirps | Must be a multiple of 4.
    * numDopplerBins | Must be at least 16. Must be a power of two, greater or equal than numDopplerChirps.

    I apologize for any confusion caused by the comment here. This comment is true for the DSP implementation of the aoaproc DPU (aoaprocdsp) due to FFT size limitation in DSPLIB. However; the xwr18xx Out of Box demo uses the HWA implementation of the aoaproc DPU (aoaprochwa) thus it is not limited to numDopplerBins >= 16. 

    That being said, I am unsure as to why the error you see is resolved by the changes you show. Further investigation would be required to pinpoint the specific cause of the error. By decoding the error given (-30301), I can see the error is caused by an invalid argument in the cfar proc DPU. 

    Best Regards,

    Josh