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

 
 
> Xmega и sleep, Что с питанием во время сна?
zombi
сообщение Oct 9 2011, 15:22
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Начинаю "мучать" ATxmega64A1.
Экспериментирую со sleep режимом power-save.
CPU тактируется int. RC2MHz, RTC ext. 1024Hz.
Питание 3.3v на мегу подаётся через диод шоттки (BAT54C) падение порядка 0.3v.
По старту инициализируем портА,RTC и сразу засыпаем (pover-save).
Просыпаемся по переполнению RTC.
В преравании небольшой код и смена состояния ноги портаA.0 на противоположное.

на осцлограмме:
CH2 - пин портаA
CH3 - VCC.
Видно что после засыпания питание на процессоре и на пине (если он в 1-це) плавно поднимается почти до 4-х вольт !
Откуда берутся эти лишние 0.7v? опасно ли это для процессора при максимально допустимом питании 3.6v ?
Если в sleep не уходить то питание на проце стабильно и не превышает 3.0v.
З.Ы. Если закоротить диод шоттки то питание тоже нормальное 3.3V.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 36)
vitalinea
сообщение Oct 9 2011, 19:51
Сообщение #2


Участник
*

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



Возможно регулятору напряжения в вашем устройстве для нормальной работы необходим хоть какой-то минимальный потребитель тока. XMEGA в спящем режиме потребляет очень мало (микроамперы). Проверьте по даташиту есть ли требование минимального выходного тока для работы регулятора.
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 9 2011, 21:33
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(vitalinea @ Oct 9 2011, 22:51) *
Возможно регулятору напряжения в вашем устройстве для нормальной работы необходим хоть какой-то минимальный потребитель тока. XMEGA в спящем режиме потребляет очень мало (микроамперы). Проверьте по даташиту есть ли требование минимального выходного тока для работы регулятора.

В том то и дело что на выходе регулятора напряжение 3.3V !
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2011, 22:09
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zombi @ Oct 10 2011, 01:33) *
В том то и дело что на выходе регулятора напряжение 3.3V !

Тогда вопрос, куда подключен второй диод из состава BAT54C, и нет ли в схеме иных источников напряжения более 3.3V.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 9 2011, 22:21
Сообщение #5





Guests






Цитата
Питание 3.3v на мегу подаётся через диод шоттки (BAT54C) падение порядка 0.3v...
З.Ы. Если закоротить диод шоттки то питание тоже нормальное 3.3V.

Вероятно, виноват все-таки регулятор. Возможно, на его выходе присутствуют очень короткие выбросы напряжения, которые вы не видите.
При нормальном токе потребления они погоды не делают, а при микропотреблении - поднимают напряжение после диода.
Попробуйте поставить керамический конденсатор до диода.
Go to the top of the page
 
+Quote Post
V_G
сообщение Oct 9 2011, 22:36
Сообщение #6


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

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Плюс еще очень многие LDO-регуляторы плохо работают при малой нагрузке (конкретно - повышают напряжение). Вы проверяли свой источник на нулевых токах?
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 10 2011, 06:40
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(aaarrr @ Oct 10 2011, 01:09) *
Тогда вопрос, куда подключен второй диод из состава BAT54C

Второй диод на батарейке CR2032 3v.
При работе от неё превышения напряжения не наблюдается.
Цитата(aaarrr @ Oct 10 2011, 01:09) *
нет ли в схеме иных источников напряжения более 3.3V.

Конечно есть, из 5-ти вольт получаю 3.3v на TS1084.
Цитата(@Ark @ Oct 10 2011, 01:21) *
Вероятно, виноват все-таки регулятор. Возможно, на его выходе присутствуют очень короткие выбросы напряжения, которые вы не видите.
При нормальном токе потребления они погоды не делают, а при микропотреблении - поднимают напряжение после диода.
Попробуйте поставить керамический конденсатор до диода.

Конечно присутствуют и я их вижу. В схеме несколько потребителей основного 3.3v и пульсации довольно большие.
Т.е. происходит накопление напряжения (суммирование положительных пульсаций) на конденсаторах стоящих по питанию проца после диода?
Как же с этим бороться?
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 10 2011, 10:25
Сообщение #8





Guests






Цитата
Как же с этим бороться?

Как обычно. sm.gif Фильтровать питание.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Oct 10 2011, 13:33
Сообщение #9


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Очень похоже на подъем питания через защитные диоды проца с одной из его ног.
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 10 2011, 15:10
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ArtemKAD @ Oct 10 2011, 16:33) *
Очень похоже на подъем питания через защитные диоды проца с одной из его ног.

Все порты (кроме Q и R) настроил на вывод с подтяжкой к GND и вывел в них ноль.
Кроме того на портах A-F еще и отключил входные буферы.

А как это может быть "подъем питания через защитные диоды проца с одной из его ног" можно подробней?
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 10 2011, 15:27
Сообщение #11





Guests






Цитата
А как это может быть "подъем питания через защитные диоды проца с одной из его ног" можно подробней?

Так совершенно аналогичный механизм. У каждой ноги, где имеются внутренние (встроенные) защитные диоды к питанию и/или к земле
возможен такой же эффект. Кстати, подъем напряжения питания будет при выбросах напряжения на ноге как выше питания, так и ниже земли. Если есть
оба диода. А как правило - есть.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Oct 10 2011, 16:39
Сообщение #12


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
А как это может быть "подъем питания через защитные диоды проца с одной из его ног" можно подробней?

На каждой ноге на входе два диода - на питание и на массу.
Если к ноге подключена через резистор цепь с большим напряжением, то через эти диоды начинает течь ток. Пока потребление по цепи питания высокое, то эта паразитная запитка не заметна - просто стабилизатор слегка призакрывается. Но когда потребление падает до микроампер - вот тут этот ток сперва закрывает стабилизатор, а затем начинает поднимать напряжение питания.
Методы борьбы - или стабилитрон по питанию или увеличивать резистор.
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 10 2011, 19:34
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



ОК спасибо с защитными диодами прнятно.

Вот что выяснил:
На XLAT1 поступает внешняя частота от плис (у меня 16MHz с EPM3128).
Питание растет только если хмега в слипе и частота на XLAT1 присутствует.
Если XLAT1 в воздухе то питание в норме.
И поскольку внешняя частота всётаки необходима склоняюсь к стабилитрону, но как то не нравится мне это решение.
Может чё другое придумать?
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 10 2011, 19:57
Сообщение #14





Guests






Интересно, а зачем Вам слип-режим, если от внешнего источника питания работаете? Электричество в розетке экономите? sm.gif
Мне кажется более логичным подход, что если МК спит, то все остальное вообще должно быть отключено. Разбудили МК, он запустил всю остальную
периферию в работу. Отработал ситуацию, отключил все и снова спать... Впадение в спячку имеет смысл только в таком случае, и только когда
работаем от батареи... Иначе смысла большого нет в этом режиме...


Сообщение отредактировал @Ark - Oct 10 2011, 20:06
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 10 2011, 20:13
Сообщение #15


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (zombi @ Oct 10 2011, 23:34) *
ОК спасибо с защитными диодами прнятно.

Вот что выяснил:
На XLAT1 поступает внешняя частота от плис (у меня 16MHz с EPM3128).
Питание растет только если хмега в слипе и частота на XLAT1 присутствует.
Если XLAT1 в воздухе то питание в норме.
И поскольку внешняя частота всётаки необходима склоняюсь к стабилитрону, но как то не нравится мне это решение.
Может чё другое придумать?

Уходите в анабиоз - переключайтесь на внутреннюю 32 и баиньки.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 10 2011, 22:04
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(@Ark @ Oct 10 2011, 22:57) *
Интересно, а зачем Вам слип-режим, если от внешнего источника питания работаете? Электричество в розетке экономите? sm.gif
Мне кажется более логичным подход, что если МК спит, то все остальное вообще должно быть отключено. Разбудили МК, он запустил всю остальную
периферию в работу. Отработал ситуацию, отключил все и снова спать... Впадение в спячку имеет смысл только в таком случае, и только когда
работаем от батареи... Иначе смысла большого нет в этом режиме...

Электричество в розетке меня меньше всего беспокоит.
Дело в том что проц засыпает по спадающему фронту сигнала внешнего супервизора питания.
А просыпается раз в секудну и анализирует состояние супервизора : если LOW то спим дальше , если HIGH то начинаем работу причем от внешнего CLK.
При включении внешнего питания получается что внешняя частота на пине уже есть а внешний супервизор пока что еще в нуле (~250-300ms). В этот момент питание на проце и растёт.
Когда проц активизируется то питание падает до 3V.
А если не дождавшись активизации выключить питание то получается что питание подросло а проц так и не запустился, на следующей секунде повторяем процедуру.
И поднимаем питание почти до 4-х вольт! прям LADDER какой-то получается biggrin.gif
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 12 2011, 07:37
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Получается что кроме стабилитрона дугих вариантов нет?
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 12 2011, 07:53
Сообщение #18





Guests






Цитата
Получается, что кроме стабилитрона других вариантов нет?

По моему, выход из слип-режима нужно переделать. Просыпаться - непосредственно по сигналу появления внешнего питания.
Тогда лишние проблемы сами отпадут...
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 12 2011, 11:24
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(@Ark @ Oct 12 2011, 10:53) *
Просыпаться - непосредственно по сигналу появления внешнего питания.

А где такой сигнал взять?
Завести внешнее питание на асинхронный пин и просыпаться по переднему фронту?
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 12 2011, 11:32
Сообщение #20





Guests






Цитата
А где такой сигнал взять?

Почему бы не взять с выхода того же регулятора до диода?
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 12 2011, 11:47
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(@Ark @ Oct 12 2011, 14:32) *
Почему бы не взять с выхода того же регулятора до диода?

ОК буду пробывать.

И еще вопрос: наткнулся вот на такой "Errata 35.1 ATxmega128A1 rev. H"
Цитата
34. Pending asynchronous RTC-interrupts will not wake up device
Asynchronous Interrupts from the Real-Time-Counter that is pending when the sleep
instruction is executed, will be ignored until the device is woken from another source or the
source triggers again.
Problem fix/Workaround
None.

Знание аглицкого подводит и гугловский переводчик не помогает.
А хочется понять о чём речь?
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Oct 12 2011, 14:04
Сообщение #22


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Асинхронное прерывание RTC самостоятельно из sleep-а камень не выдергивает.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 12 2011, 14:08
Сообщение #23





Guests






....

Сообщение отредактировал @Ark - Oct 12 2011, 14:10
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 12 2011, 14:14
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ArtemKAD @ Oct 12 2011, 17:04) *
Асинхронное прерывание RTC самостоятельно из sleep-а камень не выдергивает.

Опять ни чё не понял laughing.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 12 2011, 15:20
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(zombi @ Oct 12 2011, 17:14) *
А хочется понять о чём речь?


Речь о том, что если произойдёт прерывание RTC в момент исполнения команды sleep, то пробуждения не произойдёт, те прерывание будет потеряно. Пробуждение произойдёт при следующем срабатывании RTC или другого источника, способного вызвать wake-up.

Цитата(ArtemKAD @ Oct 12 2011, 17:04)
Асинхронное прерывание RTC самостоятельно из sleep-а камень не выдергивает.


Выводит из режимов Idle. Power save и Extended Standby. Из остальных не выводит.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 12 2011, 15:39
Сообщение #26


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (zombi @ Oct 12 2011, 18:14) *
Опять ни чё не понял laughing.gif

QUOTE
Асинхронное прерывание RTC самостоятельно из sleep-а камень не выдергивает

Пока , кто нить , его не разбудит или что-то переключится снова (... or the
source triggers again. - китайцы , что ли это писали)
Проблема извесна / Решения - нет


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 12 2011, 16:22
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(_Артём_ @ Oct 12 2011, 18:20) *
Речь о том, что если произойдёт прерывание RTC в момент исполнения команды sleep, то пробуждения не произойдёт, те прерывание будет потеряно. Пробуждение произойдёт при следующем срабатывании RTC или другого источника, способного вызвать wake-up.

Агаааа, теперь всё понятно! Спасибо! beer.gif


Цитата(_Артём_ @ Oct 12 2011, 18:20) *
Выводит из режимов Idle. Power save и Extended Standby. Из остальных не выводит.

Может после Idle нужна запятая а не точка?
Но причём здесь это? я вроде не спрашивал laughing.gif
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 12 2011, 17:23
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(zombi @ Oct 12 2011, 19:22) *
Может после Idle нужна запятая а не точка?


Да, нужна запятая...

Цитата(zombi @ Oct 12 2011, 19:22) *
Но причём здесь это? я вроде не спрашивал laughing.gif


Эта в ответ на пост ArtemKAD:
Цитата(ArtemKAD @ Oct 12 2011, 17:04)
Асинхронное прерывание RTC самостоятельно из sleep-а камень не выдергивает.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Oct 12 2011, 18:20
Сообщение #29


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Вообще-то
Цитата
Выводит из режимов Idle, Power save и Extended Standby. Из остальных не выводит.

и это:
Цитата
если произойдёт прерывание RTC в момент исполнения команды sleep

взаимосвязано т.к. в режимах Idle, Power save и Extended Standby МК находится исключительно в момент исполнения команды sleep...
Т.е. если там так, как написано в эррате, то из Idle, Power save и Extended Standby не выводит.
Go to the top of the page
 
+Quote Post
zombi
сообщение Oct 12 2011, 19:01
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(ArtemKAD @ Oct 12 2011, 21:20) *
в режимах Idle, Power save и Extended Standby МК находится исключительно в момент исполнения команды sleep...

Шото запутали Вы меня окончательно.
Если верить DS то время выполнения команды sleep = 1 такту CLK CPU.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Oct 12 2011, 19:05
Сообщение #31


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Если верить DS то время выполнения команды sleep = 1 такту CLK CPU.

Ну если не настроен спящий режим, то таки 1 такт. Если настроен - до тех пор пока не появится прерывание или сброс выдергивающий МК из этой команды в обработчик, и дальше.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 12 2011, 20:07
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ArtemKAD @ Oct 12 2011, 21:20) *
Вообще-то

и это:

взаимосвязано т.к. в режимах Idle, Power save и Extended Standby МК находится исключительно в момент исполнения команды sleep...
Т.е. если там так, как написано в эррате, то из Idle, Power save и Extended Standby не выводит.


Если считать, что команда sleep выполняется не один такт, а всё время нахождения в режиме пониженного потребления, то получается что RTC не выведет в рабочий режим. Допустим.
Но как тогда понимать продолжение фразы:
Цитата
, will be ignored until the device is woken from another source or the
source triggers again.

Перевод: будет проигнорирован[запрос прерывания от RTC], пока устройство не разбужено из другого источника или
источник сработал снова(запрос прерывания от RTC).

То есть по Вашей логике получается:
1. RTC не выводит из sleep на свой вектор
2. Выход из sleep произойдёт от другого источника wake-up или повторного срабатывания RTC.
Пункты 1 и 2 противоречивы.

Получается, что sleep в любом режиме выполняется 1 такт:
1) Sleep не разрешён: аналогично nop
2) Sleep разрешён: один такт на команду sleep, затем остановка выполнения любых команд до wake-up или reset.

Но проверить надо ...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 13 2011, 06:04
Сообщение #33


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE (_Артём_ @ Oct 13 2011, 00:07) *
или
источник сработал снова(запрос прерывания от RTC).

То есть по Вашей логике получается:
1. RTC не выводит из sleep на свой вектор
2. Выход из sleep произойдёт от другого источника wake-up или повторного срабатывания RTC.
Пункты 1 и 2 противоречивы.

Вот - и я не понял о каком источнике , который или сработал или переключился , снова - они хотели сказать.

QUOTE (_Артём_ @ Oct 13 2011, 00:07) *
Получается, что sleep в любом режиме выполняется 1 такт:
1) Sleep не разрешён: аналогично nop
2) Sleep разрешён: один такт на команду sleep, затем остановка выполнения любых команд до wake-up или reset.

Может это sleep в режиме ADC noise , тогда хоть какая то логика есть. Пока он цифрует , его ничто оттуда не вышибет.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Oct 13 2011, 14:02
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ILYAUL @ Oct 13 2011, 09:04) *
Вот - и я не понял о каком источнике , который или сработал или переключился , снова - они хотели сказать.


Речь по-моему о том, что прерывание от RTC, возникшее в момент исполнения команды sleep будет потеряно и мега проснётся либо при следующем прерывании от RTC, либо после какого-либо другого источника wake-up.

Цитата(ILYAUL @ Oct 13 2011, 09:04) *
Может это sleep в режиме ADC noise , тогда хоть какая то логика есть. Пока он цифрует , его ничто оттуда не вышибет.


Речь о всех режимах пониженного потребления, отдельно про ADC noise ничего не говорилось.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 13 2011, 17:53
Сообщение #35


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Запросил support - пусть разбираются , что они имели ввиду когда ее писали.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 17 2011, 15:19
Сообщение #36


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

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



QUOTE
У меня есть некоторые разъяснения относительно исправления 34. Есть несколько причин
почему прерывание может быть отложена.
1) прерывание происходит в то время как глобальный флаг прерывания в SREG не установлен
2) Если другое прерывание обрабатывается в то время как IRQ срабатывает

После прерывания, XMEGA всегда возвращается и выполняет одну команду кода, даже если есть другое
прерывание на рассмотрении. Это сделано во избежание блокировки процессор из-за высокой
частота прерывания.
Таким образом, надо смотреть на ошибки, связанные с асинхронными RTC-прерывание.

Если другое прерывание обрабатывается, когда происходит асинхронное RTC-
IRQ , то RTC-IRQ еще не принято.

Не переводимый полёт мысли:
QUOTE
If the one instruction which gets processed after the previous interrupt is the sleep instruction, the async
RTC-irq will only be processed after something else wakes up the processor.

Я понял так
Если обрабатывается комманда , после предыдущего режима сна , RTC - будут обрабатываться , только после того как проц "придёт в себя" (похмелиться значить)
QUOTE
Тип установленного режима сна не является актуальным.

И вообще пофиг в каком режиме будет пропуск RTC - на одну комманду см. пункт 2
QUOTE
Асинхронный-RTC IRQ разбудит процессор, если это происходит в то время как процессор
спит. Так что только очень редко, что вышесказанное будет вызывать проблемы.

Этот исправленый (№ 34) очень тесно связан с ошибками 23: Pending full
asynchronous pin change interrupts will not wake the device.


С наилучшими пожеланиями,
Глен Нильсен
Atmel технической поддержки команды


ИСХОДНИК
I have got some clarification on errata 34. There are a couple of reasons
why an interrupt could be pending.
1) Interrupt happens while global flag IRQ enable in Sreg is not set
2) If another interrupt is being processed while the IRQ is triggered

After an interrupt service routine, the XMEGA always jumps back to where it was in the code and executes one instruction, even if there is another
interrupt pending. This is to avoid locking up the processor with high
frequency interrupts.
So to look at the errata relating to the asynchronous RTC-interrupt.

If another interrupt routine is being processed when the asynchronous RTC-
irq occurs, then the RTC-irq is pending. If the one instruction which gets
processed after the previous interrupt is the sleep instruction, the async
RTC-irq will only be processed after something else wakes up the processor.

The type of sleep mode set is not relevant.

An async-RTC irq will wake the processor if this occurs while the processor
is asleep. So there is only a very rare that the above condition will cause
problems.

This errata (no 34) is very closely linked to errata 23: Pending full
asynchronous pin change interrupts will not wake the device.


Best Regards,
Glen Nilsen
Atmel Technical Support Team


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Oct 17 2011, 17:19
Сообщение #37





Guests






Цитата
ИСХОДНИК

Очень вольный, смысловой перевод основной части:

... Есть несколько причин, по которым прерывание может быть отложено:

1) прерывание происходит в то время, когда глобальный флаг разрешения прерываний в SREG не установлен ;

2) если обрабатывается другое прерывание, в то время как IRQ срабатывает (приходит сигнал прерывания) ;

После обработки текущего прерывания, XMEGA всегда возвращается в то место программы (кода), откуда произошло прерывание и всегда выполняет хотя бы одну команду, даже если в этот момент необходимо сразу выполнить обработку следующего прерывания. Это сделано во избежание полной блокировки работы (фоновой) программы, при слишком большом количестве прерываний.

С этих позиций нужно смотреть на ошибки, связанные с асинхронными RTC-прерываниями.

Когда асинхронное RTC-прерывание происходит в процессе обработки другого прерывания - его обработка будет отложена. Если команда, на которую выполняется возврат из текущего прерывания, является командой sleep - команда будет выполнена, и произойдет переход в слип-режим. Обработка же отложенного RTC-прерывания произойдет только после того, как процессор будет выведен из спящего режима другим прерыванием или следующим RTC-прерыванием. Тип установленного слип-режима не имеет значения.

Асинхронное-RTC прерывание выводит процессор из слип режима, если это происходит непосредственно в режиме сна, но не в процессе возврата из другого прерывания на команду sleep. Предполагается, что попадание RTC-прерывания в такую ситуацию является очень редким и не должно доставлять проблем...



Сообщение отредактировал @Ark - Oct 17 2011, 17:23
Go to the top of the page
 
+Quote Post

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

 


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


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