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.

AWR1843: Use Idle Time on MSS while chirping to perform non critical operations

Part Number: AWR1843

Hello,

We are using MRR Lab and want to do some additional processing on the MSS while chirping. 

What's the safest way to do so in MRR Lab?

I read that range-azimuth static heatmap was being sent on UART while chirping but couldn't find any references for the same.

  • Hi,

    Please look at the SDK 2.1 1642 oob demo. TheSW architecture is similar.

    There is a global flag "interFrameProcToken" that is set when the UART transmission is completed. When the new frame starts, in the Frame Start Interrupt Handler (MmwDemo_dssFrameStartIntHandler) this flag is checked. If the UART transmission for previous frame has not completed the code will abort.

    C:\ti\mmwave_sdk_02_01_00_04\packages\ti\demo\xwr16xx\mmw\dss\dss_main.c

        /* Check if previous chirp processing has completed */
        if (gMmwDssMCB.dataPathContext.interFrameProcToken != 0)
        {
            MmwDemo_triggerDss2MssISR(MMWDEMO_DSS2MSS_FRAME_PROC_DEADLINE_MISS_EXCEPTION);
            DebugP_assert(0);
        }

    Now, if we look at the MRR code, you will notice that the Frame Start Interrupt Handler (MRR_DSS_frameStartIntCallback) does not have such a flag that checks for the end of the UART Transmission. This means that the Frame will start even if the UART Transmission may not have completed.

    static void MRR_DSS_frameStartIntCallback(uintptr_t arg)
    {
        gMrrDSSMCB.frameStartIntToken = 1;
        gMrrDSSMCB.stats.frameStartIntCounter++;
        return;
    }

    So, if you want to add some processing on the MSS, you would need first to benchmark the time it takes for the UART Transmission. Please check the "dataPathObj->cycleLog", this information may already be there.

    After you have that information, you will need to compare with the frame duration and understand how much potential time you would have to perform additional processing on the MSS.

    If you decide you have sufficient time, than create a new MSS task. If needed use global flags to manage the processing inside this task.

    Thank you
    Cesar

    I hope this helps

    thank you

    Cesar