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.

CC3200: cc3200 long sleep interval in sdk 1.3.0

Part Number: CC3200

Hi, 

With SDK 1.3.0  and servicepack_1.0.1.11-2.9.0.0, using the example idle_profile with the following code change. The purpose is to set long sleep interval as 800ms.


But it seems get 100ms beacon interval as the oscilloscope showed as below:

  

Since API for long sleep interval has been changed in SDK 1.3.0, please let us know whether the above API call is correct.

If we use NORMAL PM policy and read PmParamSet.MaxSleepTimeMs with API sl_WlanPolicyGet, it returns 1.

Suppose it should be 100, Please comment, thanks.

Regards,

Yonghua

  • Hi Yonghua,

    I think the API was not changed but the documentation is wrong.
    You should use SL_LONG_SLEEP_INTERVAL_POLICY:
    _u16 PolicyBuff[4] = {0,0,800,0}; // PolicyBuff[2] is max sleep time in mSec
    sl_WlanPolicySet(SL_POLICY_PM , SL_LONG_SLEEP_INTERVAL_POLICY, (_u8*)PolicyBuff,sizeof(PolicyBuff));

    Br,
    Kobi
  • Hi, Kobi,

    Thanks, and I still have the following questions from customer, could you comment? 

     1. After invoked sl_WlanPolicySet(SL_POLICY_PM, SL_NORMAL_POLICY, NULL, 0); , then call  sl_WlanPolicyGet(SL_POLICY_PM, 0, (_u8 *)&PmParamGet, (_u8  *)&length); to fetch PmParamGet.MaxSleepTimeMs, it returns 1;but current wifi beacon interval is actually 100ms;

         2. With the following code   PmParamSet.MaxSleepTimeMs = 400; //value is is max sleep time in mSec
        length = sizeof(PmParamSet);
        iRetVal = sl_WlanPolicySet(SL_POLICY_PM,SL_LONG_SLEEP_INTERVAL_POLICY, &PmParamSet, length); then invoke sl_WlanPolicyGet(SL_POLICY_PM, 0, (_u8 *)&PmParamGet, (_u8  *)&length);  获取PmParamGet.MaxSleepTimeMs == 400;current wifi beacon interval is 400ms

    What's the relationship between PmParamGet.MaxSleepTimeMs and beacon interval? We got different values from the above two scenarios.

    Regards,

    Yonghua

  • Hi Yonghua,

    In Normal mode the device (once it is connected to an AP) will wake up for every beacon. The Beacon will notify the device on packets pending for him.
    In Low Power it will wake on every DTIM (each AP defined the DTIM period, it is usually 1, i.e. every beacon is a DTIM, or 2 - every 2nd beacon is a DTIM). In a DTIM, the AP notifies on broadcast messages (in addition to the unicast messages).
    In Long Sleep Interval, the user defines the period of a sleep in which the device will only wake up for one DTIM. If this time is longer than the AP's configured DTIM interval, the device may lose broadcast data. This is the only case that the MaxSleepTimeMS is configured by the user and is retrieved by the Get command.

    Br,
    Kobi
  • Hi Kobi,

    Is that Long Sleep Interval 100ms equals to Normal mode inside NWP?

    I've tested a router which the device drops more frequently in LSI mode than in Normal mode.
  • Hi Chris,

    They are quite similar but not exactly. For once, in the LSI mode the device will use lower entry threshold for entering 802.11 Power Save.
    Saying that, it shouldn't affect the packet dropping.
    Typically I would use LSI only for longer periods.

    Br,
    Kobi