如何讓CC3200正確進入LPDS模式:
In Non-OS mode, the call to cc_idle_task_pm should be made directly to get into the LPDS mode (after initialization
and setting wake up source).
In OS mode, the idle hook of the OS would invoke cc_idle_task_pm, to enter into LPDS.
至於在代碼裏如何實現LPDS,你可以參考如下鏈接,但是是基於TI-RTOS的。
https://e2e.ti.com/support/embedded/tirtos/f/355/p/574775/2119936#pi317008filter=all&pi317008scroll=false
idle_profile例程是使用了RTOS的,如果你要改爲nonos模式,可以參考如下步驟:
1. You will be able to reuse the PM framework files (cc3200-sdk\middleware\framework\pm) and also the supporting reference implementation for the platform (cc3200-sdk\middleware\soc).
2. The drivers use the OS services but not the HAL. So you will need to make a choice here. Anyways you will need to do a reinitialzation of the hardware in the lp3p0_restore_soc_data function.
3. You may be able to reuse the cc3200-sdk\example\idle_profile\lp3p0_plat_ops.c.
4. The file cc3200-sdk\example\idle_profile\lp3p0_board.c will need modifications to not register the drivers.
This is just a direction. Please try to follow the idle_profile working to make more informed changes.
With this as reference, you may also try to rewrite the LPDS entry-exit sequence.
對於CC3200,其包括兩種LPDS模式,即MCU LPDS+NWP Idle Connected以及MCU LPDS + NWP LPDS模式;
1.MCU LPDS+NWP Idle Connected
這種模式下,電流消耗爲0.695mA,該模式下APPs-MCU處於LowPowerDeepSleep模式下,而設備仍然連接着AP。此時喚醒源可以爲waketimer,GPIO和network activity。
2. MCU LPDS + NWP LPDS
這種模式下,電流消耗爲0.25mA,該模式下 APPs MCU enters LPDS and the networking engine is not started (NWP LPDS is the default).
LPDS模式下有6個GPIO可以喚醒:
Low Power Deep Sleep(LPDS)
RAM retention – RAM is retained by default, but the application user can decide whether and which blocks to retain when the MCU enter LPDS.
CPU context retention – No (if required, context need to be saved and restored in SW)
Peripheral context retention – No (Peripherals need to be reconfigured after exiting from LPDS)
Wake source – GPIO (2,4,11,13,17,24 – only one), LPDS Wake timer and Network wakeup