AWRL6432: How to switch modes without entering LPDS?

Part Number: AWRL6432

Tool/software:

Hi expert,

The customer has two modes, referred to as Mode A and Mode B.

Mode A and Mode B are somewhat similar to "motion/presence detection mode" and "track detection mode".

But Mode A requiring operation in low-power mode and mode B requiring operation outside of non-low-power mode.(Mode A which gMmwMssMCB.lowPowerMode is set to LOW_PWR_MODE_ENABLE , Mode B which gMmwMssMCB.lowPowerMode is set to LOW_PWR_MODE_DISABLE)

However, one of the customer's requirements is that upon receiving a certain event, Mode A immediately switches to Mode B. This means that Mode A cannot enter LPDS first in powerManagementTask() and then resume.

How can I switch between the two modes without entering LPDS mode?

Thank you.

Rick

  • Hi Rick,

    Have you taken a look at the LPDS example in the SDK? It shows how the device can be put into LPDS or IDLE3 and woken up from different sources.

    https://dev.ti.com/tirex/content/MMWAVE_L_SDK_05_05_02_00/docs/api_guide_xwrL64xx/EXAMPLES_DRIVERS_POWER.html 

    Thanks,

    Clinton

  • Hi Clinton,

    Thank you for your response, but my question is not about how to wake up the device from LPDS or IDLE3.

    Instead, I'm asking how to switch modes without entering LPDS mode.(switch mode similar to switching between "motion/presence detection mode" and "tracker detection mode").

    Based on my understanding, entering LPDS mode will shut down many things and reconfigure the device after wake-up, such as reconfiguring DPC, reinitialization, and calling CLI_MMWaveStart(). New parameters will be configured at this time, thereby achieving the mode switch.

    Now I need the program to switch modes without entering idle/idle3/LPDS mode.

    Thank you,

    Rick

  • HI Rick,

    I'm a bit confused. You mention that Mode A requires low power, but that it cannot enter LPDS. Are you saying you want some period of time before it enters LPDS and then it's ok? Or maybe you mean something else?

    Thanks,

    Clinton

  • Hi Clinton,

    Sorry for the confuse. 

    To put it plainly :
    How can we switch modes without going into low-power mode first?(This means the program should not enter LPDS mode and then wake up.)

    Or, could you tell me what prerequisites are needed for mode switching? It is necessary to enter LPDS and then wake up?

    Thank you,

    Rick

  • Hi Rick,

    You mentioned that Mode A requires low power mode, so do you want to disable low power mode when the event occurs while you are still in Mode A before the switch to Mode B?

    Thanks,

    Clinton

  • HIi Clinton,

    Yes, you understand correctly.

    The condition for switching to Mode B is that the parameters are reconfigured, and lowPowerMode is disabled.

    In the current situation, if the lowPowerMode is set to 1, the program will perform mode switching and go into LPDS(sleeping for several hundred milliseconds and then wake up) during powerManagemenTask to achieve the mode switch.

    The customer does not want the device to go into sleep because they want to switch to Mode B immediately upon detecting some objects, rather than sleeping first.

    So there are three conditions for switching to Mode B:

    1. mode switching (reconfiguring parameters)

    2. Not spending time on sleep

    3. Disabling low power mode 

    Can mode switching be performed without entering sleep? And disabled the low-power mode?

    Thank you,

    Rick

  • HIi Clinton,

    After my testing, in the moton_and_presence_detection demo of AWRL6432, it could switch between lowPowerMode 0 and lowPowerMode 1, but couldn't switch between lowPowerMode 0 and lowPowerMode2.

    When attempting to switch from lowPowerMode 2 to lowPowerMode 0, the process get stuck at:

        // in the rangeprochwa.c  DPU_RangeProcHWA_process()
        
        /**********************************************/
        /* WAIT FOR HWA NUMLOOPS INTERRUPT            */
        /**********************************************/
        /* wait for the all paramSets done interrupt */
        SemaphoreP_pend(&rangeProcObj->hwaDoneSemaHandle, SystemP_WAIT_FOREVER);

    Why is this happening? Is there any way to enable switching between lowPowerMode 0 and lowPowerMode 2 ?

    Thank you,

    Rick