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

 
 
 
Reply to this topicStart new topic
> LPC Idle mode, перспективы выхода из него
Alechek
сообщение May 13 2008, 05:54
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



LPC214x.
Ни в UM, ни в Datasheet, ни в "AN10421 Power management for LPC2138" не нашел, какой же сигнал заводится на контроллер спячки..
Везде написано, что в работу ядро вступает по прерыванию. Время выхода на нормальный режим не нашел...
И самое главное, проснется ли он, если прерывания глобально запрещены? В частности, если в дрему ушли из IRQ?
Go to the top of the page
 
+Quote Post
Alechek
сообщение May 14 2008, 11:23
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Скоро с ума сойду с этим IDLE mode wacko.gif
Задача - заставить не работать (мало потреблять) процессор N миллисекунд.

Не могу понять, что запускает триггер выхода из этого режима...
Если запретить глобально прерывания - выходит.
Если запретить все вектора VICIntEnable = 0 - выходит
Если запускать сразу из прерывания - остается навсегда
Если запускать из прерывания после VICVectAddr = 0 - выходит.

Пока не вырубил всю ненужную периферию PCONP, выходил всегда _сразу_, хотя прериодических прерываний у меня более нет.
Причем выходит по нужному мне прерыванию от таймера только один раз (при запрещенных прерываниях).
help.gif Как его победить? Где взять диаграмму подключений этого чертового контроллера питания?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 14 2008, 12:20
Сообщение #3


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Alechek)
Если запретить глобально прерывания - выходит.
Если запретить все вектора VICIntEnable = 0 - выходит
Если запускать сразу из прерывания - остается навсегда
Если запускать из прерывания после VICVectAddr = 0 - выходит.
Судя по этому - выход из спячки по запросу IRQ или FIQ, пропущенному через VIC, вне зависимости от глобального разрешения прерываний. Однако, если VIC запрещает все (запущенные) прерывания, то процессор уже не проснётся. В частности так происходит внутри единственного активного обработчика до записи в VICVectAddr, когда VIC запрещает текущее прерывание полностью.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:04
Рейтинг@Mail.ru


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