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.

IWR6843ISK-ODS: [ITB4.2.0 - 3D people counting] How to access to ADC buffer and L3 memory to see the data just before and after 1D fft?

Part Number: IWR6843ISK-ODS


Hi,

Now I am reading the source code of 3D people counting demo in ITB 4.2.0, and want to see the input and output of 1D fft executed by HWA.

I suppose that this 1D fft is executed in DPU_RangeProcHWA_process function in rangeprochwa.c file, but have no idea how to access to ADC buffer and L3 memory that contain input and output of the 1D fft respectively.

How can I get the data stored in ADC buffer and L3 memory to see the data before and after 1D fft?

Best regards,

Fields

  • Hi Fields,

    The easiest buffer to access is the 1D FFT data immediately after all the chirping is complete. This is called the radar data cube. It is actually easier to put the breakpoint in the DSS.  The DPM calls the DSS DPC after the active chirping time has finished. The 1D FFTs are completed in the MSS during the active frame time, so when the DSS DPC is called, all of the data in the radar data cube is 1D FFT data. 

    In toolbox/labs/common/src/dpc/capon3d/src/objectdetection.c, you can find the DPC_ObjectDetection_execute function at line 517. At line 546, the subFrameObj pointer is assigned a value. You can then use this pointer to view the 1D FFT data. subFrameObj->dataIn is the complex 16 bit data.

    Regards,

    Justin

  • Hi Justin,

    Thanks to your explanation, I managed to access to the radar cube data.

    However, I want to get ADC buffer data and radar cube data at the same time so that I can compare the input and output of 1D FFT.

    I put the breakpoint at line 2287 in DPU_RangeProcHWA_process function to retrieve ADC buffer data from rangeProcObj->ADCdataBuf at the timing of 1D FFT completion for every chirps. But due to this breakpoint, it will terminate the program before it reaches DSP DPC by spitting out the log below.

    ({module#9}: "C:/ti/mmwave_industrial_toolbox_4_2_0/labs/common/src/dpc/objdetrangehwa/src/objdetrangehwa.c", line 644: error {id:0x10000, args:[0x1c99c, 0x1c99c]}

    xdc.runtime.Error.raise: terminating execution)

    Is there any good way to achieve what I want?

    Best regards,

    Fields

     

  • Hi Fields,

    The device is throwing the error because it keeps receiving data from the front end, which generates an interrupt - it wants to run, but can't because it is in debug mode. I will get back with a definite answer next week.

    Regards,

    Justin

  • Hi Fields,

    First, why do you want to compare the 1D FFT on device vs off device? Is there an artifact you are seeing? We may have seen this before.

    Second, potential solution:

    1. Comment line 644 in the range hwa dpc and recompile the lab.
      1. This is just an assert to check if the device has overrun the allotted time to process the data, just remember to re-enable this after you are done with this
    2. There is another assert in the DSS firmware - when you run again, it should get called if the MSS assert is disabled. You can also comment out this assert.

    With the above two completed, you should be able to step through the code and compare. the outputs.

    Regards,

    Justin

  • Hi Justin,

    It was just I wanted to see the 1D FFT process with my own eyes.

    Thank you for your advice. I will try.

    Best regards,

    Fields