Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Аналог модуля HLVD в AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Arxi
Приветствую! В мк PIC есть модуль HLVD, который программируется на некоторый порог напряжения и при снижении/повышении питания ниже/выше этого порога вызывается прерывание. В своем проекте использовал его для детектирования снижения питания и перевода мк в режим sleep. Перешел на AVR и обнаружил что такого модуля тут нет. Может быть кто нибудь решал подобную задачу? Пока что единственный вариант вижу такой: заводить на АЦП питания и с некоторым периодом его проверять. Но это время...при пропаже питания мк еще некоторое время будет работать на рабочей частоте питаясь от батарейки, что снижает время ее работы...
ILYAUL
Цитата(Arxi @ Jul 25 2011, 07:32) *
Приветствую! В мк PIC есть модуль HLVD, который программируется на некоторый порог напряжения и при снижении/повышении питания ниже/выше этого порога вызывается прерывание. В своем проекте использовал его для детектирования снижения питания и перевода мк в режим sleep. Перешел на AVR и обнаружил что такого модуля тут нет. Может быть кто нибудь решал подобную задачу? Пока что единственный вариант вижу такой: заводить на АЦП питания и с некоторым периодом его проверять. Но это время...при пропаже питания мк еще некоторое время будет работать на рабочей частоте питаясь от батарейки, что снижает время ее работы...

В AVR есть встроенный компаратор. Читайте классику , там всё написано - data sheet.
Arxi
Про аналоговый компаратор я знаю. Вопрос вот в чем. Для него надо делать опорный сигнал, который тоже будет зависеть от питания. И каким же образом будет происходить сравнение? Понижается питания - понижается опорный сигнал. Хотя...если в качестве опорного сигнала использовать батарейку...
haker_fox
QUOTE (Arxi @ Jul 25 2011, 12:32) *
Приветствую! В мк PIC есть модуль HLVD, который программируется на некоторый порог напряжения и при снижении/повышении питания ниже/выше этого порога вызывается прерывание.

Можно запитать МК через диод Шоттки + параллельно конденсатор для удержания запитки МК при исчезновении напряжения. Контролировать питание до диода. АЦП или компаратором. В sleep МК уводить программно.
Аналога HLVD не встречал, однако я не все AVR знаю.
Arxi
Цитата(haker_fox @ Jul 25 2011, 11:11) *
Можно запитать МК через диод Шоттки + параллельно конденсатор для удержания запитки МК при исчезновении напряжения. Контролировать питание до диода. АЦП или компаратором. В sleep МК уводить программно.
Аналога HLVD не встречал, однако я не все AVR знаю.


Ну вот так в принципе и планировал. Питания двойное, от +5В и от батарейки, развязанное диодами. На входе стоит электролит 220 мкф. На положительный вход компаратора буду заводить +5В до развязывающего диода, на отрицательный +3,7В (от батарейки) так же до диода. Только так...
zhevak
Цитата(Arxi @ Jul 25 2011, 10:07) *
Про аналоговый компаратор я знаю. Вопрос вот в чем. Для него надо делать опорный сигнал, который тоже будет зависеть от питания. И каким же образом будет происходить сравнение? Понижается питания - понижается опорный сигнал. Хотя...если в качестве опорного сигнала использовать батарейку...

А по каким критериям Вы откидываете использование внутреннего ИОН-а (Источник Опорного Напряжения) ?
Используйте бит ACBG регистра ACSR, а тип перепада входного напряжения (1 -> 0 или 0 -> 1) задавайте в том же регистре битами ACIS0 и ACIS1.

Прикиньте, сколько времени будет разряжаться конденсатор 220 мкФ с номинального напряжения до напряжения, при котором уже проц перестанет работать. Т.е. до напряжения, когда переключаться на батарею будет уже поздно. Посчитайте, сколько команд успеет выполнить проц за это время. Оцените ситуацию, сможет ли проц, получив прерывание от компаратора, успеть переключить питание? (Мне кажется, успеет и не одну сотню раз.) Это я говорю к тому, что при таком конденсаторе (220 мкФ) будут очень медленное нарастание питающего напряжения при включении, и у Вас могут возникать сложности с запуском проца. Нужно будет задействовать BOD. В курсе?
Arxi
Цитата(zhevak @ Jul 25 2011, 11:43) *
А по каким критериям Вы откидываете использование внутреннего ИОН-а (Источник Опорного Напряжения) ?


Потому что хотелось бы как можно раньше ловить момент пропадания напряжения. ИОН, как я помню, 2,56В. Маловато. Хотя может я и не прав.
ILYAUL
Цитата(zhevak @ Jul 25 2011, 08:43) *
Оцените ситуацию, сможет ли проц, получив прерывание от компаратора, успеть переключить питание? (Мне кажется, успеет и не одну сотню раз.)

Стоп, стоп, стоп.
Питание +5В пропадёт сразу , что даст возможность тут же питать проц от батарейки - диод он и в Африке - диод . Емкость сможет разрядится только до 3,7 вольта, а вот компаратор даст инфу о том , что основное питание ( +5В ) - ёк. А уже по прерыванию компаратора , проц что-то там делает - может сирену ,например , включить в 3 часа ночи. biggrin.gif Ну так , чтоб жизнь мёдом не казалась.
Да и ИОН не нужен - на одну ножку +3,7 , на другую с анода диода основного питания +5В - там 0 - переброс компаратора - прерывание ......
Arxi
Цитата(zhevak @ Jul 25 2011, 11:43) *
А по каким критериям Вы откидываете использование внутреннего ИОН-а (Источник Опорного Напряжения) ?
Используйте бит ACBG регистра ACSR, а тип перепада входного напряжения (1 -> 0 или 0 -> 1) задавайте в том же регистре битами ACIS0 и ACIS1.

Прикиньте, сколько времени будет разряжаться конденсатор 220 мкФ с номинального напряжения до напряжения, при котором уже проц перестанет работать. Т.е. до напряжения, когда переключаться на батарею будет уже поздно. Посчитайте, сколько команд успеет выполнить проц за это время. Оцените ситуацию, сможет ли проц, получив прерывание от компаратора, успеть переключить питание? (Мне кажется, успеет и не одну сотню раз.) Это я говорю к тому, что при таком конденсаторе (220 мкФ) будут очень медленное нарастание питающего напряжения при включении, и у Вас могут возникать сложности с запуском проца. Нужно будет задействовать BOD. В курсе?


Проблем с запуском в предыдущей системе (на мк PIC) не возникало. Просто хотелось бы как можно меньше тратить заряд батарейки. Но вообще вы правы. Можно использовать ИОН. Ведь напряжение питания для проверки будет браться до диода. Соответственно питания пропадает, но конденсатор 220 мкФ заряжен, и пока его заряд опускает до 3,7 в (напряжение батарейки) диод перед батарейкой не откроется. За это время мк должен успеть обработать прерывание и уйти в sleep со снижением тактовой частоты.

P.s. может быть кому то мои вопросы покажутся банальными, но просто хотелось бы обсудить этот момент со знающими людьми.


Цитата(ILYAUL @ Jul 25 2011, 12:09) *
Да и ИОН не нужен - на одну ножку +3,7 , на другую с анода диода основного питания b]+5В [/b] - там 0 - переброс компаратора - прерывание ......


Эту идею я уже озвучивал..она мне кажется наиболее удобной.
zhevak
Цитата(Arxi @ Jul 25 2011, 10:47) *
Потому что хотелось бы как можно раньше ловить момент пропадания напряжения. ИОН, как я помню, 2,56В. Маловато. Хотя может я и не прав.

Нет-нет! Напряжение опоры либо 1.23 В, либо 1.10 В -- в зависимости от процессора. Смотрите документацию.
Подавать все питающее напряжение, которое Вы будете оценивать, на вход компаратора -- это не разумно. Напряжение следует уменьшить с помощью делителя -- пары резисторов.
ILYAUL
Цитата(Arxi @ Jul 25 2011, 07:32) *
В мк PIC есть модуль HLVD....

Посмотрел , шо это такое
Красиво назвали , ATMEL учится надо. Но компаратор , как его не называй , компаратором и останется.
Arxi
Ну да, в принципе получается у PIC тот же компаратор, только в другой обертке)))
zhevak
Цитата(Arxi @ Jul 25 2011, 11:17) *
Проблем с запуском в предыдущей системе (на мк PIC) не возникало.

У Вас совершенно другой МК! Нельзя проводить эту аналогию!

Цитата(Arxi @ Jul 25 2011, 11:17) *
Просто хотелось бы как можно меньше тратить заряд батарейки.

Переключение на батарейное питание займет несколько микросекунд. Это вообще капля в море!
Вас поджидает еще одна проблема. Как Вы планируете узнавать, что питание восстановилось?
Для этого МК у Вас должен периодически просыпаться. Если Вы его загоните в PowerDown (самый экономичный режим), то способов разбудить его у будет очень немного.

Цитата(Arxi @ Jul 25 2011, 11:17) *
Ведь напряжение питания для проверки будет браться до диода.

А еще лучше взять напряжение до стабилизатора. И выбрать его уровень равный значению, когда напряжение питающей сети минимально, а потребление схемы максимально. Тогда, у Вас будет еще дополнительное время, после того, как пропадет сеть -- пока конденсаторы на входе стабилизатора разрядятся до напряжения, когда стабилизатор уже не сможет выдавать нужные 5В на своем выходе!
Arxi
Цитата(zhevak @ Jul 25 2011, 12:51) *
...
А еще лучше взять напряжение до стабилизатора. И выбрать его уровень равный значению, когда напряжение питающей сети минимально, а потребление схемы максимально. Тогда, у Вас будет еще дополнительное время, после того, как пропадет сеть -- пока конденсаторы на входе стабилизатора разрядятся до напряжения, когда стабилизатор уже не сможет выдавать нужные 5В на своем выходе!


Хорошая идея! так и сделаю.
Кратко опишу систему. Когда питание в норме, то мк выполняет свои многочисленные функции (сбор данных, их обработка, вывод на tft дисплей, управление различными устройствами, общение по CAN шине). но вот питание пропадает, мк ощущает это и переходит в режим энергосбережения со снижением тактовой частоты. Всю периферию отключаем кроме таймера, который продолжает тикать часиками. По прерыванию от этого таймера обслуживаем часы. Так вот в PICе можно было запускать модуль HLVD и проверять вернулось ли напряжение. А тут...если только обслужить прерывание от таймера (по которому мк и будет просыпаться) а потом, перед тем как уснуть опросить флаг прерывания от компаратора?...
zhevak
Цитата(ILYAUL @ Jul 25 2011, 11:46) *
Посмотрел , шо это такое
Красиво назвали , ATMEL учится надо. Но компаратор , как его не называй , компаратором и останется.

Да, уж...
Схема хороша, когда нужно динамически в процессе работы изменять порог. А если порог задается в процессе разработки схемы (как это обычно бывает -- раз и навсегда), а во время работы девайса не меняется, то есть же пара внешних резисторов! Их все равно что так, что так устанавливать. Задали этими резисторами порог, и успокоились. Зачем "дергать" переключатель встроенной в МК колбасы из резисторов? Такое ощущение, что проблема, ради которой такое чудо-компараьор изобрели, надумана, высосана из пальца. Может быть она и встречается где-то в жизни, но крайне редко. Во всяком случае, это не наш случай.

Коллеги, поправьте, если я ошибаюсь.
ILYAUL
Цитата(zhevak @ Jul 25 2011, 09:35) *
Нет-нет! Напряжение опоры либо 1.23 В, либо 1.10 В -- в зависимости от процессора. Смотрите документацию.
Подавать все питающее напряжение, которое Вы будете оценивать, на вход компаратора -- это не разумно. Напряжение следует уменьшить с помощью делителя -- пары резисторов.

У него одна задача , обнаружить снижение питания и уйти в sleep. Т.е обнаружить, что проц питается от резервного питания, сделать необходимые действия , что-то там сохранить ( например) и заснуть. Соответсвенно расход от батарейки минимальный.
В зависимости от выбранного режима сна сразу "выскочить" в рабочий режим , при появлении основного питания , или снова поспатать. Зачем ещё элементы - это же микропроцессор.

Цитата
Переключение на батарейное питание займет несколько микросекунд...

Ну какие микросекуды, как только напряжение на катоде диода ( батареи) станет меньше 3,6 вольта - ток потечёт через этот диод, проц этого вообще не заметит. И емкость можно выбросить - на финг не нужна у него ёмкости в блоке питания есть
Arxi
Цитата(zhevak @ Jul 25 2011, 13:03) *
Да, уж...
Схема хороша, когда нужно динамически в процессе работы изменять порог. А если порог задается в процессе разработки схемы (как это обычно бывает -- раз и навсегда), а во время работы девайса не меняется, то есть же пара внешних резисторов! Их все равно что так, что так устанавливать. Задали этими резисторами порог, и успокоились. Зачем "дергать" переключатель встроенной в МК колбасы из резисторов? Такое ощущение, что проблема, ради которой такое чудо-компараьор изобрели, надумана, высосана из пальца. Может быть она и встречается где-то в жизни, но крайне редко. Во всяком случае, это не наш случай.

Коллеги, поправьте, если я ошибаюсь.


Немного ошибаетесь. На рисунке два резистора, которые делят питающее напряжение показаны для случая, когда порог нужен отличный от того, который можно выбрать программно. То есть мы сами задаем порог с помощью резисторов. А если нас устраивает пороги которые можно выбрать программно, то резисторы не нужны.

Цитата(ILYAUL @ Jul 25 2011, 13:05) *
И емкость можно выбросить - на финг не нужна у него ёмкости в блоке питания есть


Ну емкость я все же бы оставил, так как от 5 В есть еще потребители, импульсные, и не хотелось бы чтобы напряжение колебалось из-за них.

А насчет модуля HLVD у PICа: довольно удобная штука. Запустил, произошло прерывание, ушли в sleep. ПОтом время от времени запускаем его уже с другим порогом для детектирования возвращения питания и опрашиваем флаг.
ILYAUL
Цитата(Arxi @ Jul 25 2011, 10:26) *
А насчет модуля HLVD у PICа: довольно удобная штука. Запустил, произошло прерывание, ушли в sleep. ПОтом время от времени запускаем его уже с другим порогом для детектирования возвращения питания и опрашиваем флаг.

Почитайте про режимы энергосбережения AVR, наверняка найдёте аналог. Только вот зачем ещё и пороги менять - задача проста , есть основное питание - работаем , нет - спим

Цитата
Ну емкость я все же бы оставил, так как от 5 В есть еще потребители, импульсные, и не хотелось бы чтобы напряжение колебалось из-за них.


Это как раз задача блока питания - минимизировать "колебания" питания для потребителей
Arxi
Цитата(ILYAUL @ Jul 25 2011, 13:46) *
Почитайте про режимы энергосбережения AVR, наверняка найдёте аналог. Только вот зачем ещё и пороги менять - задача проста , есть основное питание - работаем , нет - спим


Да почитал уже. Все есть)) Единственное отличие будет не модуль HLVD, а аналоговый компаратор))
zhevak
Цитата(ILYAUL @ Jul 25 2011, 12:05) *
Ну какие микросекуды, как только напряжение на катоде диода ( батареи) станет меньше 3,6 вольта - ток потечёт через этот диод, проц этого вообще не заметит.

Я имел ввиду не диодное переключение, а то, что процессор программно переключит свои режимы.
ILYAUL
Цитата(zhevak @ Jul 25 2011, 14:49) *
Я имел ввиду не диодное переключение, а то, что процессор программно переключит свои режимы.

А зачем програмно? Ножку порта задействовать , полевик ставить , прогу писать. Вот оно надо laughing.gif
Два диодика Шотки - катодиками вместе , на анодики +3,7 и +5 В С них же на компаратор. Нет +5 - прерывание и баюшки.
Да чего я рассказываю , сами всё знаете.
Единственное , что можно добавить - тест на "вшивость" батарейки. Вот тут уже да , можно развернуться , но это на форуме уже "обсасывали" неоднократно.
zhevak
Цитата(ILYAUL @ Jul 25 2011, 18:25) *
А зачем програмно? Ножку порта задействовать , полевик ставить , прогу писать. Вот оно надо laughing.gif
Два диодика Шотки - катодиками вместе , на анодики +3,7 и +5 В С них же на компаратор. Нет +5 - прерывание и баюшки.

Ага, можно много чего сделать не так у ТС. Только это ТС определяет сам, что и как ему делать. Что непонятно, он задает вопросы. Нам-то какой резон делать все за ТС? Лезть к нему без спроса в огород и тыкать его носом, что у него грядки не перпендикулярны. Попросит помощь -- поможем. Нет, значит сам справляется. Получает свой личный ценный опыт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.