Приветствую! Мучаю LPC2364. Проблема с уходом в power-down mode. Ситуация такая, если усыплять чип с помощью кнопки с отключенным пробуждением от CAN, то все ок, просыпается от внешних прерываний нормально. Но если врубить пробуждение от CAN, то все работает замечательно пока не пришла посылка по CANу, уход в сон больше невозможен. Такое ощущение что где-то что-то сбросить нужно, но непойму где, а пробуждение по CANу все же требуется реализовать. Может кто подскажет куда копать?
В power-down ухожу по таймеру таким образом(пробовал разные комбинации):
Код
if(CAN_WAKEUP)
{
CAN1IER/* = CAN2IER*/ = 0x10; // Wake-Up Interrupt Enable
PCONP_SAVE = PCONP;
PCONP = (1 << 13); //Enable only CAN1
CAN1MOD |= (1 << 4); //CAN1 Sleep mode
//CAN2MOD |= (1 << 4); //CAN2 Sleep mode
}
PCON = 2;
if(CAN_WAKEUP)
PCONP = PCONP_SAVE;
ConfigurePLL();
//CAN1MOD = CAN2MOD = 1; //CAN1-2 Reset
//CAN1MOD = CAN2MOD = 0; //CAN1-2 Normal mode
if(CAN_WAKEUP)
CAN1IER/* = CAN2IER*/ = 0x01; // Enable receive interrupts