детектирование сбоев питания

Aug 03, 2003 8 Replies

Здравствуй, All!



Подкажите как наиболее корректно и с минимумом деталей отследить пропажу питающего напряжения. У меня есть устройство которое при пропаже питания сваливает все в свою епром и зависает ожидая пока с питанием все проясниться. Сделал я все достаточно пока достаточно криво: вся схема питается от +5В а микроконтроллер питается от них же но через диод и большую емкость. При пропаже питания все кроме процика махом обесточивается а процик 2 раза в секунду проверяет напряжение на одной из ножек порта PB0. Как напруга пропала он все сваливает в епром и засыпает. Супервизор питания я поставил после диода с конденсаторм, он при просадке емкости процик RESETит чтоб епром не попортил. Это все работает но терзают меня смутные сомнения что это несколько криво. Ставить второй супервизор на +5В достаточно дорогое удовольствие (отечественные дешевые мне пока не приехали) по этому прошу прокомментировать это решение. Устройства будут ставить в очень ответственные места и просили предусмотреть все ньюансы типа завис, прозевал пропажу питания и т.д. Меня больше интересует а какие нибудь другие схемотехнические решения в природе существуют ? ~4.6В +5В ──┬────────────|>|──────┬──────────┬─────────┐ │ │ │ ┌─────┴────┐ ┌───┘ │ ─┴─ │Супервизор│ │ │ ─┬─ │питания │ │ │ │ │4.2В │ │ 90S8515 │ │ │ │ │ ┌────────────────┐ │ │ │ │ └─┤PB0 Vdd├──────┘ │ │ │ │ │ │ │ │ │ │ │ └─────┬────┘ │ │ ─┴─ │ │ │ │ │ RESET├───────────────────────────┘


С уважением, Олег.



... В чем заключается мультизадачнось WINDOWS? Работает и глючит одновременно!


Sun Aug 03 2003 16:50, Oleg Dolgov wrote to All:

OD> Подкажите как наиболее корректно и с минимумом деталей отследить пропажу OD> питающего напряжения. У меня есть устройство которое при пропаже питания OD> сваливает все в свою епром и зависает ожидая пока с питанием все OD> проясниться.

Вариант - все параметры сразу хранить в EEPROM, но производить реальную запись

только при изменении параметра. Если мало циклов записи - поставить FRAM.

Hello Oleg!

03 Aug 03 16:50, Oleg Dolgov wrote to All: [...]

Определять провал напряжения проще всего по INTx. Там же можно и определять появление. Если проинвертировать транзистором, то получишь автоматическое просыпание из sleep power down. В качестве датчика вполне проходит стабилитрон на 3.6 В (например, BZX55C3V6) последовательно с резистором 100 Ом на землю, с точки их подключения резистор 1 к на базу ОЭ того самого инвертора, коллектор которого питается от подтяжки INTx. Порог около 4 В. Вместо записи в EEPROM (это долго) можно использовать резервное питание от подходящей батарейки, переключая питание ключом на p-канальном полевичке (недавно здесь обсуждалось).

Так было сделано в одном устройстве на как раз 8515, только на low версии. Отсюда и литиевая батарейка на 3 В, и порог на 4 В. Батарейка практически не нагружается даже в переходном процессе, хотя факт провала напряжения определяется не в прерывании, а периодическим опросом. Hо честно предупреждаю, что один "суперспец" заочно классифицировал устройство как "хакерское поделие" ;-)

73 & Cheerio! Andy.

Sun Aug 03 2003 16:50, Oleg Dolgov wrote to All:

OD> Подкажите как наиболее корректно и с минимумом деталей отследить пропажу OD> питающего напряжения. У меня есть устройство которое при пропаже питания OD> сваливает все в свою епром и зависает ожидая пока с питанием все OD> проясниться.

Поставить ADM705 или нечто аналогичное, которое имеет в одном корпусе watchdog, супервизор и компаратор для отслеживания питания. Вход компаратора завести до стабилизатора. Выход компаратора завести на INTх, по срабатыванию которого сохраняться. Все, что не модифицируется при работе - просто хранить в EEPROM. Если что-то изменяется слишком часто, что может не хватить ресурса EEPROM - кешировать запись (апдейтить раз в ~10 секунд, например). По инту выдавливать кеш в EEPROM. При записи сперва считать байт из EEPROM, сравнить с тем, что собираешься писать, и писать только в случае, если они не совпадают. Это, как правило, получается в среднем быстрее, и экономит ресурс EEPROM.

VLV

"Точность попадания компенсируется диаметром изделия"

Hello Yuriy!

04 Aug 03 02:26, Yuriy K wrote to Andy Chernyshenko:

YK> Ужас какой. Так мучаться вместо того, чтобы поставить нормальный YK> супервизор за полбакса - MCP120/130, V630x от EM Mаrin. Hу или хотя бы YK> TL431 за 15 центов.

Ужас какой. Платить лишние деньги за то, что вполне решается ширпотребовским стабилитроном. Сразу видно, что ты работаешь _только_ за зарплату...

73 & Cheerio! Andy.

Mon Aug 04 2003 03:13, Andy Chernyshenko wrote to Yuriy K:

YK>> Ужас какой. Так мучаться вместо того, чтобы поставить нормальный YK>> супервизор за полбакса - MCP120/130, V630x от EM Mаrin. Hу или хотя бы YK>> TL431 за 15 центов.

AC> Ужас какой. Платить лишние деньги за то, что вполне решается AC> ширпотребовским стабилитроном.

Это не лишние деньги, это решение, которое гарантированно будет работать без подстройки при любых паспортных разбросах номиналов и во всем диапазоне температур.

Я еще и резисторы только 1% использую. :-Р Все равно их монтаж стоит в разы дороже собственно резистора.

AC> Сразу видно, что ты работаешь _только_ за зарплату...

Можем и это обсудить. Hо лучше не здесь, все же техническая эха...

Hello Yuriy!

04 Aug 03 17:41, Yuriy K wrote to Andy Chernyshenko:

YK>>> Ужас какой. Так мучаться вместо того, чтобы поставить нормальный YK>>> супервизор за полбакса - MCP120/130, V630x от EM Mаrin. Hу или YK>>> хотя бы TL431 за 15 центов.

AC>> Ужас какой. Платить лишние деньги за то, что вполне решается AC>> ширпотребовским стабилитроном.

YK> Это не лишние деньги, это решение, которое гарантированно будет YK> работать без подстройки при любых паспортных разбросах номиналов и во YK> всем диапазоне температур.

Пока что не углядел _реальных_ аргументов, почему именно датчик на стабилитроне не будет гарантированно работать. И чем именно данное решение _принципиально_ хуже использования дополнительного супервизора.

BTW, в пылу дискуссии вы упускаете очень важный момент: использование только супервизора вовсе неоднозначно. Обычно гарантируют активный уровень reset при питании до 1 В "вниз". Этого достаточно для контроллера, но не для датчика... Использование же стабилитрон + инвертор на транзисторе сразу решает как минимум

2 задачи: практическое отсутствие тока потребления при питании от резервной батареи (аккумулятора) - утечки коллектора чисто символические, и "пробуждение" контроллера из sleep power down при появлении штатного питания. Таки когда появилась подобная задача, то я достаточно долго "обкатывал" разные варианты реализации. И по деньгам, и по функциональности. Остановился на таком вот. Впрочем, ведь никого и не агитирую за :-)

73 & Cheerio! Andy.

Привет Oleg!

03 Aug 03 16:50, Oleg Dolgov писал All:

OD> Сделал я все достаточно пока достаточно OD> криво: вся схема питается от +5В а микроконтроллер питается от них же OD> но через диод и большую емкость.

OD> Ставить второй супервизор на +5В достаточно дорогое удовольствие OD> (отечественные дешевые мне пока не приехали) по этому прошу OD> прокомментировать это решение.

Согласен с тобой - решение кривое и не обеспечивает гарантированно правильное выключение.

OD> Устройства будут ставить в очень OD> ответственные места

Тем более если места - очень ответственные. Лучше все-таки на питание поставить два супервизора - один на 4.5 В, второй - на 3.3 В (если процессор на

3.3 еще гарантированно работает). Выход первого супервизора подается на вход запроса прерывания (лучше немаскируемого, но у AVR такого нет) процессора, выход второго - на сброс. Емкость на питании рассчитать исходя из требуемого времени разрада от 4.5 до 3.3.

Рассмотри еще другой вариант: если нет необходимости стартовать именно из того состояния (набора данных), который был в момент пропадания питания, можно в процессе работы периодически сохранять данные в EEPROM, где обеспечить транзакционность записи (варианты тут неоднократно обсуждались). Тогда один сепервизор можно выкинуть. При включении данные будут гарантированно валидны, но, возможно, N-секундной давности.

Всего наилучшего, [Team PCAD 2000] Алексей М. ... Программисты и программистки! Выше флаг промежуточного переноса!

Hello, Yuriy!

YK> Это не лишние деньги, это pешение, котоpое гаpантиpованно будет pаботать YK> без подстpойки пpи любых паспоpтных pазбpосах номиналов и во всем YK> диапазоне темпеpатуp.

Видишь ли - он pазный бывает, это диапазон... Дофига всякой пpомэлектpоники специфициpуется на +5-+40 - потому что эксплуатиpуется пpи HУ, в опеpатоpных. Ипонцы в последнее вpемя так даже в опеpатоpских станциях ставят теpмодатчики, и консоли кpичат кpиком в условиях, котоpые в бывшем совке пpинято считать вполне ноpмальными для пеpсонала. Деваться некуда - ставят кондеи... Так-то :-)

Hикто не возpажает, что твое pешение - пpавильное. И его - тоже пpавильное. для его условий. Hу никуда нах поpог не уйдет на +- 5 оС.

Best regards, Yurij. // Пеpеплывший Ганг

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required