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

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

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

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

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

Reply to
Oleg Dolgov
Loading thread data ...

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

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

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

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

Reply to
Yuriy K

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.
Reply to
Andy Chernyshenko

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

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

Reply to
Vladimir Vassilevsky

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.
Reply to
Andy Chernyshenko

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о лучше не здесь, все же техническая эха...

Reply to
Yuriy K

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.

Reply to
Andy Chernyshenko

Привет 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] Алексей М. ... Программисты и программистки! Выше флаг промежуточного переноса!

Reply to
Alex Mogilnikov

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еплывший Ганг

Reply to
Yurij Sysoev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.