Hi all, I am having problem with hibernation module. I am using my custom board and compiler is IAR. I want to enable hibernation module and wake by using external wake pin. When I debug I see code is stuck at while(!(HWREG(HIB_CTL) & HIB_CTL_WRC)) in HibernateWriteComplete(void) function. I think that means it never complates write operation. The code is below. Thanks in advance.
Edit: I have cr1220 3.3v battery connected to Vbat pin of mcu. Also 32khz crystal is connected to mcu as connected in launch pad
void AppHibernateEnter(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);
// HibernateEnableExpClk(SysCtlClockGet());
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_HIBERNATE))
{
}
//HibernateGPIORetentionEnable();
HibernateClockConfig(HIBERNATE_OSC_LOWDRIVE);
SysCtlDelay(SysCtlClockGet() / (1000 * 3));
HibernateWakeSet(HIBERNATE_WAKE_PIN);
HibernateIntEnable(HIBERNATE_INT_PIN_WAKE);
HibernateIntClear(HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_LOW_BAT | HIBERNATE_INT_RTC_MATCH_0);
HibernateRequest();
SysCtlDelay(100);
UARTprintf("The controller did not enter hibernate.\n");
//
// Wait here.
//
while(1)
{
UARTprintf("IN HIBERNATE WHILE\n");
SysCtlDelay(10000000);
}
}
void HibernateIntHandler(void){
uint32_t ui32Status;
//
// Get the interrupt status and clear any pending interrupts.
//
ui32Status = HibernateIntStatus(1);
HibernateIntClear(ui32Status);
UARTprintf("IN HIBERNATE INTERRUPT\n");
}