Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR + батарейное питание
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
otrog
Доброго времени суток.

Собственно интересует реальный опыт применения AVR с батарейками. Имеется ввиду ~99% времени в PowerDown режиме с просыпанием по сторожевому таймеру, выполнении каких-нибудь действий и опять сон. Поделитесь информацией кто делал.
Например "Mega8 1MHz" + "3 алкалиновых батарейки AA" = "X часов"

Спасибо.
GetSmart
У меня плохой опыт (плохой результат) в этом вопросе. Как-то делал схемку на tiny28 и датчиком движения (собственного изготовления). Расчитывал что проц будет просыпаться несколько раз в секунду и анализировать изменения на датчике. Проц работал на внутреннем RC-генераторе 1МГц. Так вот, хотя в полном PowerDown'е проц потребляет пару-тройку микроампер, но в моём режиме потребление поднималось до сотни микроампер. Иногда до пары сотен. Это связано с медленным выходом из спячки и запуском генератора. Вобщем даже на максимуме вачдога (2 секунды) потребление не опускалось ниже 50-70 мка. Для проверки сделал то же самое на 90S1200. Почти аналогичный результат. Вобщем я разочаровался и сделал схему по-другому.

Хотя с тремя алкалиновыми батарейками (у которых средняя ёмкость 3500 ма/ч) при потреблении тока в 100 мка вам их хватит на 4 года работы.
add
Собирал на tyny2313 подобное устройство. т.е. ~99% времени в PowerDown режиме с просыпанием по сторожевому таймеру. просыпалась девайсина ненадолго (буквально выполнить команд 30), и потом спокойненько засыпала. Работало(еще работает) это счастье от 3-х пальчиковых батареек(алкалайновых). Нижний порог напряжений по мойму до 1.8В (впрочем щас непомню может2,7). Контроллер в рабочем режиме работает от внутреннего кварца 8МГц.
Что удобного оказалось в tiny, то что time WDR можно устанавливать до 8сек! (в s2313 до2сек.) За месяц питание просело примерно на 10%.Потребление буквально единицы микроампер. В даташите на контроллер почитайте на счет оптимизации по питанию в power down режиме (отключить компаратор и т.д.).
Удачи.
Rst7
Суть такого результата в том, что забыли сделать минимальное время старта - т.е. запрограммировать фузы соответствующим образом. Например, для М8 надо:
CKSEL=1;
SUT=0;
GetSmart
Цитата
Rst7

Если это вы мне, то довожу до вашего сведения, что этих фьюзов нет ни у tiny28, ни у 90s1200, ни у многих других АВРов. А на меге8 я не хотел делать (хотя корпуса одинаковые - TQFP-32) потому, что она от 2.7 вольт, а тини - от 1.8 вольт, то есть от двух батареек даже полностью разряженных работала.

-----------------
Забыл указать. В PowerDown проц потреблял 2-3 мка при выключенном вачдоге. При включенном же ~10 мка.
Rst7
Цитата(GetSmart @ May 29 2006, 15:33) *
Цитата
Rst7

Если это вы мне, то довожу до вашего сведения, что этих фьюзов нет ни у tiny28, ни у 90s1200, ни у многих других АВРов. А на меге8 я не хотел делать (хотя корпуса одинаковые - TQFP-32) потому, что она от 2.7 вольт, а тини - от 1.8 вольт, то есть от двух батареек даже полностью разряженных работала.

-----------------
Забыл указать. В PowerDown проц потреблял 2-3 мка при выключенном вачдоге. При включенном же ~10 мка.


Мда, у меня пост малость некорректным вышел. Пардон.

Я хотел обрисовать корни проблемы и метод решения на М8. Я знаю, что 90S и старые Tiny не имели таких фузов, однако, человек, который спрашивает, как сделать, может и не догадаться, что такие фузы есть на новых процах. Собственно, такую ситуацию и хотел предупредить.
defunct
Цитата(otrog @ May 29 2006, 14:14) *
Например "Mega8 1MHz" + "3 алкалиновых батарейки AA" = "X часов"

Обратите особое внимание на раздел ДШ Typical Characteristics, где можно отследить, что в пульсирующем режиме (SLEEP - WORK - SLEEP - WORK ...) чем выше тактовая частота тем выше КПД, потому что производная роста потребления с ростом тактовой частоты относится приблизительно как 1/2 к производной роста производительности МК.

немного на эту тему говорили здесь:
http://electronix.ru/forum/index.php?showtopic=16105
uu9jag
Собирал на tyny2313 сервисные ПДУ для TV , два элемента по 1,5 вольта. Даже не ставил тумблер по питанию.Просто припаял батарейки .Потребляет в Power Down меньше 1 мка.Пошел второй год.
GetSmart
Цитата
Собирал на tyny2313 сервисные ПДУ для TV , два элемента по 1,5 вольта. Даже не ставил тумблер по питанию.Просто припаял батарейки .Потребляет в Power Down меньше 1 мка.Пошел второй год.

Угу.
1. У Вас не задействован вачдог. Поэтому проц всё время спит (до нажатия кнопки) и сам вачдог не потребляет.
2. Потребляет 1 мка пока спит. А среднее потребление тока (с учётом рабочего режима проца) Вы не привели. Хотя для устройства как ПДУ это определить сложно.

В данном же примере ситуация всё-таки другая. И потребление будет нааамного выше.
________________________
У меня кстати тоже схема работала от двух АА-батареек. В окончательном варианте я тоже отказался от вачдога. А схема была забавная. На тини28, на котором же был сделан импульсный повышающий стабилизатор. Схема управляла 8-мью синими светодиодами. То есть, после просыпания она раскачивала своё питание с 1,8..3 вольт до стабильных 3,6 вольт. В итоге светодиоды всегда горели со стабильным током. А батарея "высасывалась" на 110%. Схема работала даже когда под нагрузкой (горящих светиках) на обоих батареях в сумме было меньше вольта.
ivstech
Поправьте, если я не прав. Время выхода из power-down/power-save если процессор работает от внутренней RC-цепочки, всегда равно 6 тактам. Дополнительная задержка (фьюз SUT) влияет только на время старта после сброса
otrog
Спасибо большое всем конструктивно ответившим!

Из всего вышесказанного делаю вывод, что для продления жизни устройства с AVR и батарейкой необходимо выполнить условия:
- Минимальное время пробуждения из выключенного режима (копать CKSEL-ы и SUT-ы если они есть).
- Максимально возможная частота генератора (RC или кварц) для работы в активном режиме (для повышения КПД).
- По возможности отказаться о ВочДога в пользу часового кварца 32768Гц (если есть возможность).
- Выключать все что можно и в данный момент не нужно, а включать только по мере надобности.

Если где-то ошибся или что-то пропустил поправьте пожалуйста.

Спасибо.
Rst7
Цитата(otrog @ May 30 2006, 07:54) *
Спасибо большое всем конструктивно ответившим!

Из всего вышесказанного делаю вывод, что для продления жизни устройства с AVR и батарейкой необходимо выполнить условия:
- Минимальное время пробуждения из выключенного режима (копать CKSEL-ы и SUT-ы если они есть).


Это да.

Цитата
- Максимально возможная частота генератора (RC или кварц) для работы в активном режиме (для повышения КПД).


Никаких кварцей - слишком долго раскачиваются.

Цитата
- По возможности отказаться о ВочДога в пользу часового кварца 32768Гц (если есть возможность).


В принципе - почти одинаково, что WDT, что таймер в асинхронном режиме (с часовым кварцем), а вот лишние 10-15 мкА BOD имеет смысл убрать - заменить его например на внешний Microchip'овский, там есть дешевые и жрут ~1мкА.

Цитата
- Выключать все что можно и в данный момент не нужно, а включать только по мере надобности.


И не забывать, что при сбросе (от WDT в том числе), аналоговый компаратор ВКЛЮЧАЕТСЯ АВТОМАТИЧЕСКИ!

Цитата
Если где-то ошибся или что-то пропустил поправьте пожалуйста.

Спасибо.


Пожалуйста wink.gif
BVU
По всей видимости энергопотребление самой схемы очень маленькое, то имеет смысл задуматься о сроке службы самих батарей (источников энергии), т.к. в большинстве случаев годность их с момента изготовления около 5-и лет (алкалаин).
otrog
Еще раз спасибо за комментарии и замечания cheers.gif.
Итак резюмирую. Для наиболее продолжительной работы AVR в пульсирующем режиме (~99% спим - просыпаемся, работаем - опать спим) с батарейным питанием необходимо соблюсти следующие условия.

Обязательные условия:
- Минимальное время пробуждения из выключенного режима (копать CKSEL-ы и SUT-ы если они есть).
- Отказ от использования внешнего кварца в пользу внутреннего RC генератора для работы в активном режиме (из-за долгого запуска кварца).
- Максимально возможная частота внутреннего RC генератора для работы в активном режиме (для повышения КПД).
- WDT или часовой кварц(32768Гц) для генерации пробуждающего прерывания.
- Выключать все что можно и в данный момент не нужно, а включать только по мере надобности(ОЧЕНЬ внимательно рыть DataSheet).

Очень желательные условия:
- Вместо внутреннего BOD(10-15 мкА) использовать внешний супервизор(например от Microchip(~1мкА)).
- Использовать по возможности недавно изготовленные элементы питания(не старше одного года).

Опять же замечаниям и исправлениям буду рад.

А теперь задача усложняется blink.gif:
В редкие моменты бодрствования необходимо использовать внутренний АЦП(для замера напряжения батарей и сигнала с внешнего датчика температуры).
С датчиком температуры проблем нет - при пробуждении на него подается питание, перед засыпанием питание снимается. А вот для АЦП нужно время на преобразование. Я вижу использование АЦП так:
Проснулись - запустили АЦП на преобразование с генерацией прерывания по завершению(в прерывании сохранили результат) - считаем предыдущее значение результата - засыпаем.

Правильно ли я мыслю?
defunct
Цитата(otrog @ May 30 2006, 13:43) *
Правильно ли я мыслю?

Да вроде бы все верно мыслите ;>
можно правда внести еще одно небольшое изменение:
вместо внутреннего RC использовать внешний (RC цепочка на XT1) настроенный на максимально возможную для чипа частоту.
GetSmart
Цитата
Проснулись - запустили АЦП на преобразование с генерацией прерывания по завершению(в прерывании сохранили результат) - считаем предыдущее значение результата - засыпаем.

Когда запустили АЦП, можно немножко вздремнуть (Idle), а проснуться по прерыванию готовности. Считываем, сохраняем.
(Не понял что там с предыдущим значением...)

А если Вам нужно измерять что-то очень редко, то можно поступить хитро. Во время спячки всё содержимое памяти и регистров сохраняется. Можно ввести счётчик в памяти или регистре и после очередного просыпания его увеличивать. Если меньше нужного, то опять быстро засыпать ничего не делая. Как он дойдёт до нужного значения то начинать измерение температуры и др. Так можно мерить например один раз в час и записывать данные в EEPROM. Этот алгоритм ещё в несколько раз уменьшит потребление.
mse
м48, РТС, 1.8В. Раз в секунду просыпается, тарахтит 1000циклов на нутряном генераторе 8МГц и баиньки. Всё ненужное отключено, ессно. БОД и ВД в том числе. 7мка. 80% жрёт РТС. До 3.5В потребление растёт несильно. Примерно до 8-9мка. При просыпе от вачдога должен жрать меньше.
И ещё...голый повердовн - 70нА.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.