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.

CC3120: DTIM and LSI influence on power consumption

Part Number: CC3120

I need help to understand the result of an experiment with LSI and DTIM versus power consumption. .  In idle connected mode with an LSI of 300 we see ~1 mA of current consumption with a DTIM of 1 on the AP and ~400 uA with a DTIM of 3. Why the different DTIM affects power consumption in this case?

Thank you!

  • Hi Lenio,

    I found an article that explains the effect on power consumption with different DTIM intervals.  Please take a look at the link below:

  • Austin,

    I understand how the DTIM works. My question is DTIM + LSI. As I originally posted, with an LSI of 300, I expect the CC3120 to wake up every 300ms. If I change DTIM from 1 to 3, I would assume no difference in current consumption, but that is not the case according to the current measurement. That is where I need an explanation.

    Thanks.
  • Hi Lenio,

    A few questions about the measurement:

    • Which tool is used for the current measurement?
    • What is the length of time for the measurement?
    • What is the beacon interval with the AP used in this test?  This translates into the DTIM period.
    • Also, I'm assuming you have verified LSI is properly configured?
    • Have you tried any other DTIM values?

  • Austin,

    I can obtain those details later today after my visit to the customer.

    Here is a snapshot of the current consumption. The yellow signal is with a DTIM of 3 and the blue is with a DTIM of 1.  The average current is between the large spikes. 

    Can I infer from your questions that this is an unexpected result? In other words, as I would expect, the different DTIM should not affect power consumption? If so, we will dig deeper in the methodology of testing. However if we have a plausible explanation for that difference beyond the test procedure, we will concentrate resources in a different direction. 

    Thank you!

  • Hi Lenio,

    Yes, we would expect the power consumption to be about the same between the two trials above. It would be great to dig into the questions asked above for more information.
  • After visiting the customer, I suspect we have an issue with the LSI configuration. I will try to reproduce it in my setup. Here is the function setting up the LSI:

    /******************************************************************************
    * Function Name : wifiPlatformSetPowerPolicy
    * Description   : sets the power policy
    * Arguments     : None
    * Return        : wifiPlatformStatus_t
    * Pre-requiste  : wifiStart()
    * Function type : Global /WiFi platform API
    ******************************************************************************/
    wifiPlatformStatus_t wifiPlatformSetPowerPolicy(void)
    {
        int32_t              status = -1;
        wifiPlatformStatus_t returnStatus = WIFI_PLATFORM_STATUS_SUCCESS;
        SlWlanPmPolicyParams_t PmPolicyParams;
    
        memset(&PmPolicyParams,0,sizeof(SlWlanPmPolicyParams_t));
        PmPolicyParams.MaxSleepTimeMs = WIFI_PLATFORM_WLAN_SLEEP_INTERVAL;
        status = sl_WlanPolicySet(SL_WLAN_POLICY_PM , SL_WLAN_LONG_SLEEP_INTERVAL_POLICY,
                                 (_u8*)&PmPolicyParams,sizeof(PmPolicyParams));
        if(status < 0)
        {
            returnStatus = WIFI_PLATFORM_STATUS_SET_MODE_FAILURE;
        }
    
        return returnStatus;
    }
    
    

  • I believe we narrowed the issue down to the inability to make the LSI setting work. I have tried in my setup using the MSP432P401R + CC3120BOOST. I was careful to update CCS to version 7.4, the Wi-Fi plugin to version 1.55.00.42, and the MSP432 SDK to version 1.60.00.12. The example I used is the power_measurement_MSP_EXP432P401R_tirtos_ccs, the TI-RTOS version. I have played with the LSI setting in power_measure.c, line 107:

    #define LSI_DURATION_IN_MSEC        (300)

    Regardless of the number with which I compile the code, the result is always the same:This is a snapshot of my data acquisition system, which shows an interval of 200ms:

    Can you please try the same exercise and let me know if it works?

    Thank you!

  • Since this issue is being resolved outside the context of this forum, closing this thread.