Форум myROBOT.ru » Роботы и робототехника » Делимся опытом » Выход из режима сна по внешнему сигналу

Страниц (1): [1]
 

1. vasus - 25 Марта, 2010 - 13:00:46 - перейти к сообщению
Здравствуйте, разрабатываю девайс на микроконтроллере мега16. Устройство будет работать автономно и очень важно низкое энергопотребление.
Каждый раз после опроса ног и совершения неких действий я загоняю контроллер в самый низко потребляемый спящий режим POWER_DOWN (потребление тока почти отсутствует) В этом режиме он просыпается только по внешним прерываниям INT0 1 2.

Как можно сделать регулируемый (желательно программно) для пробуждения через заданное время?
Сейчас у меня схема реализована так:

Нога INT1---C---->земля
\--R--/


Во время работы на ноге INT1 держится высокий уровень и конденсатор заряжается, перед засыпанием нога переключается на вход и порт выключается на 0. Пробуждение происходит по прерыванию - достижению низкого уровня на ноге при разряде конденсатора. Минус в том что время работы может значительно различаться и конденсатор зарядится на разный уровень и соответственно будет разное время разряжаться.
Как выход я вижу - взять маленький конденсатор и очень большое переменное сопротивление.
Только как можно в таком случае рассчитать задержки?

Может ли кто-нибудь предложить еще какие либо варианты с низким потреблением?
2. killgur - 25 Марта, 2010 - 13:13:10 - перейти к сообщению
постоянная времени RC цепочки t=RC секунды
R- омы
С-фарады
правило которое заставляли учить на заводе-за пять постоянных времени кондер зарядится(разрядится в тушку экспериментатора) на 99%.
3. nest - 25 Марта, 2010 - 14:50:43 - перейти к сообщению
vasus, а просыпаться по собаке нельзя ?
4. vasus - 25 Марта, 2010 - 17:09:49 - перейти к сообщению
killgur спасибо.

nest, я ожидал этот вопрос, в этом режиме все таймеры спят, за исключением асинхронных, но для этого нужен еще один кварц, а ноги и так все заняты.
5. nest - 25 Марта, 2010 - 17:55:55 - перейти к сообщению
таймер собаки тоже спит? ему не нужно ноги.
по любому, вариант с RC-цепочкой не очень хороший.
6. killgur - 25 Марта, 2010 - 18:14:12 - перейти к сообщению
nest пишет:
таймер собаки тоже спит? ему не нужно ноги.
по любому, вариант с RC-цепочкой не очень хороший.
мало того странный поскольку непонятно в чем экономия если жрать энергию будет не мк а кондер ... непонимаю
пожертвуйте немного экономичностью но включайте изнутри контроллера чем городить RC огород ненадежный и нестабильный
7. vasus - 26 Марта, 2010 - 00:58:14 - перейти к сообщению
killgur, что значит включать изнутри? В этом режиме сна действуют только внешние прерывания, а в аналогичном режиме Power-Save действуют только асинхронные таймеры...

Кстати конденсатор с емкостью 100нф и регулируемое сопротивление 1 - 5Мом дает регулируемое время сна от 0.1 до почти секундного интервала, при этом потребление ничтожное, как минимум на порядок меньше чем в других режимах сна.

killgur, в чем заключается нестабильность и ненадежность RC цепочки, и почему ее стоит/не стоит применять?

Для задачи важна работоспособность в широком диапазоне температур от глубоких морозов до жары, при этом отклонение постоянной времени на 10-15 процентов не критично.
8. killgur - 26 Марта, 2010 - 09:00:28 - перейти к сообщению
vasus пишет:
killgur, что значит включать изнутри? В этом режиме сна действуют только внешние прерывания, а в аналогичном режиме Power-Save действуют только асинхронные таймеры...

Кстати конденсатор с емкостью 100нф и регулируемое сопротивление 1 - 5Мом дает регулируемое время сна от 0.1 до почти секундного интервала, при этом потребление ничтожное, как минимум на порядок меньше чем в других режимах сна.

killgur, в чем заключается нестабильность и ненадежность RC цепочки, и почему ее стоит/не стоит применять?

Для задачи важна работоспособность в широком диапазоне температур от глубоких морозов до жары, при этом отклонение постоянной времени на 10-15 процентов не критично.


Если отклонение не критично то нет проблем, я имел ввиду именно температурную нестабильность.
По меге я вообще то удивлен что нет никаких способов вывести ее из режима сна без внешних воздействий... но вообще то меня микроконтроллеры никогда не интересовали так что извеняйте.
9. nest - 26 Марта, 2010 - 16:18:34 - перейти к сообщению
vasus, сказано же русским языком:

Mega128 пишет:
Power-down Mode
When the SM2:0 bits are written to 010, the SLEEP instruction makes the MCU enter Powerdown
mode. In this mode, the External Oscillator is stopped, while the External Interrupts, the
Two-wire Serial Interface address watch, and the Watchdog continue operating (if enabled).
Only an External Reset, a Watchdog Reset, a Brown-out Reset, a Two-wire Serial Interface
address match interrupt, an External Level Interrupt on INT7:4, or an External Interrupt on
INT3:0 can wake up the MCU. This sleep mode basically halts all generated clocks, allowing
operation of asynchronous modules only.

вот и натравляйте собаку как её и положено. Не нужно ничего изобретать.
10. vasus - 26 Марта, 2010 - 21:59:39 - перейти к сообщению
Русским=)

Попробую после приезда, если этот вариант будет меньше потреблять оставлю его.
Сейчас я добился что контроллер работает от заряда ионистора на 0,5Ф около часа по моей схеме.

Кстати вотч дог при ресете из спящего режима начнет выполнение программы сначала или с места засыпания?
11. nest - 26 Марта, 2010 - 22:04:52 - перейти к сообщению
vasus, а куда захотите. Поглянте список векторов прерывания.
12. mctim - 27 Марта, 2010 - 04:17:50 - перейти к сообщению
Следует заметить что при пробуждении от сторожевого таймера теряется содержимое энерго зависимой памяти (РОН, РВВ и ПД), а в остальных случаях сохраняется.

Кроме того следует учитывать: если спать надо больше чем 1-2 секунды, которые может обеспечить сторожевой таймер, то надо городить алгоритмы повторного погружения в сон. А выполнение таких алгоритмов занимает время и повышает общее потребление энергии во время сна(имею ввиду "многоразового" сна).

Это насколько я знаю по собственному опыту ;)
13. vasus - 29 Марта, 2010 - 18:47:01 - перейти к сообщению
mctim спасибо за информацию.
Вариант с вотчдогом отпал, буду использовать свой вариант с RC