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.

CC1312R: How to put CC1312R used in sensor project in standby mode between beacon period. I want to put for manual standby mode for longer period as well

Part Number: CC1312R


Dear Sir,

We are using CC1312R in our project. what i found is below.

When it goes to ideal task, it checks if power policy is enabled. If power policy is enabled then it will go to idle mode. When i checked the power constraints, they are set to 6 which means that the standby mode and shutdown modes are not allowed. So i manually allowed the standby mode. When it goes to PowerCC26XX_standbyPolicy(), it loads the ticks with next schedule wakeup. when print the tick value, it is 7 and time will be 70uS. Which is very less. 

How can i make the chip to stay in standby mode for longer period of time? 

Later, i need to implement it to stay in standby mode between beacon periods. Can you please guide me what are the steps to implement that?

Thank you.

Satyakam.

  • Hi Satyakam,

    The example as such as well as the TI-RTOS power driver already handles your standby situation to the best possible extent. If it does not go into standby due to power constraints that means that your software (stacks, drivers etc.) NEEDS the device to be active. You should not try to by-pass this even if you can as the behavior is unexpected and we will not be able to support it.

    In order to optimize your standby periods, you simply have to evaluate your own code to see what could be keeping you out of standby. For example, are you using drivers that is currently active and setting constraints? If that is the case, can you stop them until you actually need them in order to allow the device to go into standby?

  • Hi M-W,

    Thank you so much for your response. i will take a look in the fw if any constraints are being set during standby mode. 

    is there any way that we can change the mode  using syscfg?

    I use Power_releaseConstraint(PowerCC26XX_DISALLOW_STANDBY);  to enable the standby mode but need to make sure if that is the right way. Default is Idle mode.

    Thanks,

    satyakam.

  • Hi Satyakam,

    That is the way constraints are released BUT you are not expected to release constraints yourself. You should only ever release constraints that you set, not that drivers set. Consider it a "trust" situation. If any part of the application seta a constraints then it is assumed that no one else release that constraint. In short, you must ONLY release your own constraints, not others. 

    The correct way to go into standby is to allow the device to decide when it is possible. This means that you for example can try to guide your code in such a way where you for example say "Stop this UART receive now because we want to go into standby". You do not force it by just brutally removing the constraints. 

    There is no alternatives to the policy other then "No policy at all". The power driver already is as aggressive as it can be in terms of optimizing for power consumption.

  • Hello M-W,

    Thank you for your response.

    As per your suggestions, i will make changes in the fw.

    I have one last question.

    When device is in standby mode, how peripheral module would set the state of the Pin? e.g. If SPI is being handled by power driver for standby mode, what would be the state of the pins that SPI would set in standby mode? i mean PD and low OR PU and high etc.

    Thank you for your support.

    Thank you.

    Satyakam.

  • Hi Satyakam, 

    When going into standby, the I/O latches is frozen which include the SPI pins. This means the state should be the SPI idle state (which is frame dependent).