реклама на сайте
подробности

 
 
> power-down и CAN, не засыпает
jekler
сообщение Jun 15 2010, 06:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 30-08-05
Пользователь №: 8 094



Приветствую! Мучаю 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


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jekler
сообщение Jun 18 2010, 11:29
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 30-08-05
Пользователь №: 8 094



Прбовал так, не получается sad.gif
Код
if(CAN_WAKEUP)
     {
      PCONP_SAVE = PCONP;
      PCONP = (1 << 13);
      CAN1MOD = 1;    // Reset CAN
      CAN1GSR = 0;    // Reset error counter when CANxMOD is in reset
      CAN1IER = 0x10;        // Wake-Up Interrupt Enable
      CAN1MOD |= (1 << 4); //CAN1 Sleep mode
     }
    PCON = 2; //Power-down mode

    if(CAN_WAKEUP)
    PCONP = PCONP_SAVE;

    ConfigurePLL();

    if(CAN_WAKEUP)
    {
     CAN1MOD = 1;    // Reset CAN
     CAN1MOD = 0;   //Normal mode
     CAN1IER = 0x01;// Enable receive interrupts
    }


Сообщение отредактировал jekler - Jun 18 2010, 11:29


--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 05:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016