|
Контроль разряда батареи, В AVR, при использовании спящего режима |
|
|
|
Mar 4 2010, 16:45
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Имеется устройство на AVR, выполняющее определенные функции, инициируемые внешними прерываниями, после чего следует переход в спящий режим Power Down, для экономии энергопотребления от аккумулятора. Хотелось бы возложить на МК также, контроль разряда батареи, не применяя внешний компаратор. Т. к. период перехода в активный режим весьма случаен - от десятков секунд, до нескольких часов и более, то попутный контроль - при рабочем режиме - отпадает, т. к. в период долгой пассивности, не будет ни контроля, ни информации о текущем состоянии батареи. Первое, что приходит в голову, использовать сброс по сторожевому таймеру, измеряя затем напряжение батареи и выдавая импульс на индикатор, в случае разряда. Затем снова в спящий режим. Прошу опытных проектировщиков подсказать альтернативные варианты.
|
|
|
|
|
Mar 4 2010, 18:04
|

Любитель Кошек
    
Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873

|
Цитата(ValBag @ Mar 4 2010, 19:45)  Первое, что приходит в голову, использовать сброс по сторожевому таймеру, измеряя затем напряжение батареи и выдавая импульс на индикатор, в случае разряда. Если нет других путей по доставке информации до "заинтересованных лиц", и минимизации аппаратных затрат, то как говорится "при всем богатстве выбора альтернативы нет", или почти нет (поскольку к расмотрению предложен только МК и АБ).
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Mar 5 2010, 06:39
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 29-01-09
Пользователь №: 44 106

|
Однажды решил такую проблему с помощью супервизора MCP111, подключенного к одному из PCINT'ов ATTiny2313. Все про все - один корпус SOT23-3 и 100нА потребления.
|
|
|
|
|
Mar 5 2010, 09:51
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Цитата(yarunt @ Mar 5 2010, 02:27)  Можно по таймеру в асинхронном режиме работающем на часовом кварце 32768. Пробуждение можно настроить на каждые 8 секунд.2-х солевых батареек хватало на 8 месяцев . Да, спасибо, я тоже попозже рассмотрел этот вариант. Только тогда придется обойтись, для основного режима, встроенным калиброванным генератором, т. к. в подходящих мне МК, выводы "XTAL" и "TOSC" - совмещенные. Добавка по току от таймера 2, наверное будет небольшая в таком режиме ? В принципе, возможен еще один вариант: Если "отловить", при очередном активном режиме, разряд батареи, то в основной программе, только с этого момента запускать сторожевой таймер, который периодически выводит из спящего режима, с выдачей затем импульса на индикацию о состоянии батареи. Цитата(stells @ Mar 5 2010, 13:51)  а встроенный компаратор не работает случайно в режиме Power Down? он же вроде как является асинхронным модулем? В спящем режиме он, к сожалению, не работает (насколько мне известно).
Сообщение отредактировал ValBag - Mar 5 2010, 09:52
|
|
|
|
|
Mar 5 2010, 10:03
|

внештатный сотрудник
     
Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401

|
Цитата(ValBag @ Mar 5 2010, 12:51)  В спящем режиме он, к сожалению, не работает (насколько мне известно). проверить бы это... в спящем режиме отключаются все модули, работающие в синхронном режиме, т.е. те, которые тактируются. но компаратору такт не нужен, поэтому не исключено, что он может сгенерить прерывание, если только само прерывание не формируется каким-нибудь D-триггером вроде бы не видно на схеме ни клоков, ни триггеров:
|
|
|
|
|
Mar 5 2010, 10:08
|

Частый гость
 
Группа: Свой
Сообщений: 162
Регистрация: 12-01-09
Из: Харьков
Пользователь №: 43 270

|
Код проверить бы это... в спящем режиме отключаются все модули, работающие в синхронном режиме, т.е. те, которые тактируются. но компаратору такт не нужен, поэтому не исключено, что он может сгенерить прерывание, если только само прерывание не формируется каким-нибудь D-триггером С режима Power Down возможен выход только по NT0, INT1 and р in Change USI Start Condition иWDT по крайнер мере для ATtiny2313
|
|
|
|
|
Mar 5 2010, 10:15
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Цитата(stells @ Mar 5 2010, 16:57)  проверить бы это... в спящем режиме отключаются все модули, работающие в синхронном режиме, т.е. те, которые тактируются. но компаратору такт не нужен, поэтому не исключено, что он может сгенерить прерывание, если только само прерывание не формируется каким-нибудь D-триггером Проверить можно, но вот что написано в датшите: Перед входом в режим холостого хода аналоговый компаратор необходимо выключить, если он не используется. Перед входом в режим уменьшения шумов АЦП аналоговый компаратор должен быть отключен. При входе в другие режимы сна аналоговый компаратор отключается автоматически. Однако, если к неинвертирующему входу аналогового компаратора выбрано подключение встроенного источника опорного напряжения, то перед входом в любой режим сна аналоговый компаратор необходимо отключать. В противном случае встроенный источник опорного напряжения останется включенным независимо от режима снаА как он себя дальше поведет - неизвестно. Раз отключаются порты, тем более входные шунтируются на землю, то наверное работа компаратора в этом режиме не состоится. Но вообще, ...можно проверить.
|
|
|
|
|
Mar 5 2010, 11:06
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Цитата(stells @ Mar 5 2010, 17:23)  порты не отключаются, иначе подсистема обработки внешних прерываний не будет работать Не отключаются только внешние: Сигнал SLEEP игнорируется по входам внешних прерываний. Если запросы на внешнее прерывание отключены, то SLEEP действует и на эти выводы.Остальные шунтируются сигналом SLEEP: в режимах (Power-down), экономичный режим, дежурный режим и расширенный дежурный режим.
|
|
|
|
|
Mar 5 2010, 11:45
|
Местный
  
Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410

|
Цитата(stells @ Mar 5 2010, 17:37)  так это тоже самое, что и сторожевой таймер ну не совсем, WD кушает ~8uA ибо внтренняя частота у него ~1МГц, а тут можно значительно меньше сделать наверное, надо посчитать. Цитата кстати, а если на INT0 завести сигнал с делителя напряжения АКБ? если надо нанотоки, то делитель надо делать строго подключаемым на время измерения.
|
|
|
|
|
Mar 5 2010, 13:51
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Цитата(rx3apf @ Mar 5 2010, 20:29)  Цифровой вход вблизи порога переключения сожрет в разы больше. Конечно, это "оригинально" - ловить порог таким способом, но разве вход не обладает триггерной характеристикой ?
|
|
|
|
|
Mar 5 2010, 14:20
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Цитата(rx3apf @ Mar 5 2010, 21:08)  Обсуждается все еще AVR ? Что-то мне там не припоминаются входы с гистерезисом. А вот резко растущее потребление при висящих входах - очень даже припоминается... Полюбопытствуйте в схеме порта в датшите. Там на входе триггер Шмитта. А повышенное энергопотребление, это хаотичное переключение портов в результате воздействия шумового напряжения на неподтянутых входах.
|
|
|
|
|
Mar 5 2010, 14:28
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(ValBag @ Mar 5 2010, 17:20)  Полюбопытствуйте в схеме порта в датшите. Там на входе триггер Шмитта. А повышенное энергопотребление, это хаотичное переключение портов в результате воздействия шумового напряжения на неподтянутых входах. А, вообще-то да, нарисован... Но что-то мне странно, что уровень шума на никуда не подключенном входе столь велик, что устойчиво превышает гистерезис. Или гистерезис все равно не спасает от повышения тока потребления вблизи точки переключения. Никогда не интересовался, что там реально считывается с ноги в такой ситуации, контролировал лишь факт нестабильности потребления (полезно, чтобы удостовериться, что все настроено как надо)...
|
|
|
|
|
Mar 5 2010, 14:32
|

внештатный сотрудник
     
Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401

|
Цитата(rx3apf @ Mar 5 2010, 17:28)  что-то мне странно, что уровень шума на никуда не подключенном входе столь велик, что устойчиво превышает гистерезис гистерезис очень маленький, что-то милливольт 50 (вот у ПИКов он несколько больше), но этого было-бы достаточно, чтобы использовать вход INT0 как компаратор входное сопротивление порта 100МОм, так что делитель, скажем, 10+10МОм съест как-раз наноамперы
Сообщение отредактировал stells - Mar 5 2010, 14:34
|
|
|
|
|
Mar 5 2010, 14:51
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(ValBag @ Mar 5 2010, 17:34)  хотелось бы услышать, как от практически применявшего асинхронный таймер с кварцем 32768, каков добавочный ток при его использовании в спящем режиме ? Вот по моим записям, таймер у mega8 (@3.6V) жрет 8 uA, без обработки прерываний. Обработка (16 Hz) забирала еще 4..5 uA (там есть тонкость, из обработчика нельзя выходить раньше одного такта генератора), при RC-тактировании 3.6 MHz. Новые камни (скажем, mega88) - помнится, потребляют заметно меньше.
|
|
|
|
|
Mar 5 2010, 15:00
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Цитата(rx3apf @ Mar 5 2010, 21:51)  Вот по моим записям, таймер у mega8 (@3.6V) жрет 8 uA, без обработки прерываний. Обработка (16 Hz) забирала еще 4..5 uA (там есть тонкость, из обработчика нельзя выходить раньше одного такта генератора), при RC-тактировании 3.6 MHz. Новые камни (скажем, mega88) - помнится, потребляют заметно меньше. Не совсем понял. 16 Hz - это внешнее тактирование асинхронника? На такой частоте? Впрочем вы имеете в виду очевидно период прерывания. А частота таймера какая ?
Сообщение отредактировал ValBag - Mar 5 2010, 15:04
|
|
|
|
|
Mar 5 2010, 15:12
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
Цитата(rx3apf @ Mar 5 2010, 22:04)  Нет, это кварц 32768 Hz, прескалер 8, прерывание по переполнению 16 раз в секунду (используется у меня для опроса датчиков). Понятно, спасибо. Величины приемлимы. Только при 5 В, возрастет наверное вдвое. Но всё равно, допустимо.
Сообщение отредактировал ValBag - Mar 5 2010, 15:12
|
|
|
|
|
Mar 7 2010, 13:53
|

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

|
Цитата(ValBag @ Mar 4 2010, 19:45)  ..... для экономии энергопотребления от аккумулятора. .....Т. к. период перехода в активный режим весьма случаен - от десятков секунд, до нескольких часов и более, то попутный контроль - при рабочем режиме - отпадает, т. к. в период долгой пассивности, не будет ни контроля, ни информации о текущем состоянии батареи. То , что контроля нет это и понятно , не понятно , раз уж проц проснулся , почему не проверить батарею и спать дальше Цитата Первое, что приходит в голову, использовать сброс по сторожевому таймеру, измеряя затем напряжение батареи и выдавая импульс на индикатор, в случае разряда. Затем снова в спящий режим. Зачем экономя батарею дёргать проц проверить эту батарею , не важно каким методом Вы это будите делать , чтобы Вы не оставили вкл. WD или таймер Вы всё равно повышаете расход той же батарейки , которую и хотите сэкономить. Может проще чуть повысить порог предупреждения о заряде батареи и выдавать импульс. И уж в этом случае сигнализировать , кому это надо , используя методы предложенные Вам в топике т.е постоянно напоминать.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Mar 7 2010, 18:50
|

Местный
  
Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836

|
Цитата(ILYAUL @ Mar 7 2010, 16:53)  Зачем экономя батарею дёргать проц проверить эту батарею , не важно каким методом Вы это будите делать , чтобы Вы не оставили вкл. WD или таймер Вы всё равно повышаете расход той же батарейки , которую и хотите сэкономить. Повышаем, но насколько?! Автор говорит: Цитата Имеется устройство на AVR, выполняющее определенные функции, инициируемые внешними прерываниями, после чего следует переход в спящий режим Power Down, для экономии энергопотребления от аккумулятора. Экономия будет и в том и другом случае.. А вот насколько разница в 20мкА принципиальна топикпастеру можно спросить у него.
|
|
|
|
|
Mar 8 2010, 01:25
|
Частый гость
 
Группа: Участник
Сообщений: 91
Регистрация: 15-03-07
Пользователь №: 26 183

|
При стремлении к максимальной экономии аккумулятора, может получиться обратный эффект, вследствие частых проверок, как отмечено в замечаниях многих. Поэтому, напрашивается промежуточный логический вариант: не "дергать" потребление на проверку в спящем режиме, когда это еще и не нужно, т. е., когда акумулятор еще более-менее "здоров", а измерять в рабочем цикле (который всегда "нужен"  ). При очередной проверке, обнаружив, что подошел порог разряда, включать периодически индикацию, а для того, чтобы она была доступна и в спящем режиме, с этого момента задействовать сторожевой таймер для пробуждения с информацией о критическом пороге разряда. Т. к. периоды активного и пассивного режимов различаются многократно, такой подход, наверное, будет разумным? Можем только потерять информацию о состоянии АКБ, когда "уйдем в спячку" перед самым порогом разряда и до момента пробуждения. Ну, это уже, как говорят - "издержки производства". А для того, чтобы не оказаться "у разбитого корыта" - с неработоспособным АКБ, порог разряда можно выбрать упреждающим.
Сообщение отредактировал ValBag - Mar 8 2010, 01:35
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|