Other Parts Discussed in Thread: SYSCONFIG, CC3200, UNIFLASH
Hello,
I am trying to hibernate my CC3235S, and I see the PRCM API where I can Enable the Wakeup source as SlowClock and How I can set the interval. However, in practice this doesn't work.
I say it doesn't work because I only see my LED blink once and never again. This tells me that Hibernation Mode is not being exited (MCU rebooted essentially).
I included Power_init(), but I am actually not using a power policy, because my options do not include Hibernation with Clock Wakeup. All I see are Hibernation GPIO Wakeup.
There seems to be a mismatch between SysConfig Power menu and PRCM Source code.
Power_init(); While(1){ LED_Blink(); PRCMHibernateWakeupSourceEnable(PRCM_HIB_SLOW_CLK_CTR); PRCMHibernateIntervalSet(32768); // should set up the HIB timer for x amount of ticks, 32,768 per second PRCMHibernateEnter(); }
I tried also using Power_Shutdown, but I was unable to get Power_shutdown(0, 1000); to work.
I see in the power_measurement example, Power_shutdown(0, milliseconds); is used and this works to Enter Hibernation mode, but it never Exits Hibernation mode even when I change the time interval to 2000 milliseconds. Therefore, I have used Power_shutdown(0, milliseconds) in two instances with the same result.
I see documentation talking about Hibernation mode being woken by RTC/SlowClock but nothing actually works.
I have viewed CC32xx API docs which is how I came to use the PRCM functions sited above.
I have also viewed CC32xx Power Management documentation, but the functions used in the document don't exist in my library. There is not one app note or document that shows me how to do this.
This example given doesn't exist:
// Setting up timer as a wake source /* Setup the RTC initial value - This can be obtained from NTP too */ init_time.secs = 0; init_time.nsec = 0; cc_rtc_set(&init_time); /* Create a real time timer */ realtime_timer.source = HW_REALTIME_CLK; realtime_timer.timeout_cb = timer_intr_hndlr; realtime_timer.cb_param = NULL; timer_hndl = cc_timer_create(&realtime_timer); /* Configure the timer for a periodic wakeup */ interval_time.secs = LPDS_DUR_SEC; interval_time.nsec = LPDS_DUR_NSEC; cc_timer_start(timer_hndl, &interval_time, OPT_TIMER_PERIODIC);
Is there something I am missing? All I want to do is Wake from Hibernation with SlowClock like documentation states.
Thank you.
Edit: I Should mention that I'm using the Launchpad Development Board which does have an external 32kHz Oscillator for RTC.