В какой ситуации мне следует отключить функцию обнаружения отключения на микроконтроллере?

33

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

Мне было интересно, есть ли ситуации, в которых не рекомендуется включать функцию сброса при отключении?

m.Alin
источник
4
Выключающие детекторы также могут потреблять ток, который следует учитывать для применения в микроэнергетике.
HL-SDK
Принимая во внимание различные недостатки обнаружения BO, указанные в ответах, подумайте также и о следующем: Можете ли вы доказать какую-либо определенность в вашем конкретном случае? В некоторых случаях вы можете гарантировать то есть достаточный запас или полное затемнение => сохранить RESSOURCES для БПК
Mark

Ответы:

11

Как уже отмечалось, включение цепи отключения часто увеличивает потребление тока. Кроме того, поскольку производители, как правило, хотят, чтобы отключающая схема сработала при любом напряжении, которое может быть достаточно низким, чтобы заставить другие части чипа функционировать, многие части смогут работать при более низком напряжении с отключенным отключением. , Например, контроллер может работать большую часть времени до 1,5 В при комнатной температуре, но при определенных стрессовых условиях (таких как повышенная температура) может работать со сбоями при 1,99 В. Чтобы гарантировать, что устройство будет перезагружено при любых условиях, в которых может произойти неисправность, схема отключения может быть рассчитана на срабатывание при 2,1 вольт +/- 100 мВ.

Если устройство с таким контроллером питается от двух щелочных батарей типа АА, включение цепи отключения может привести к тому, что устройство станет непригодным для использования с напряжением батареи 1,1 В на элемент, и, вероятно, приведет к прекращению его работы к моменту достижения напряжения 1,05 вольт на ячейку. Отключение отключающей цепи, вероятно, расширит работу до минимум 0,9 вольт на ячейку и, возможно, даже 0,75 вольт на ячейку. Если никакая вероятная неисправность, которая может возникнуть при низком напряжении, не может причинить какой-либо вред, помимо увеличения разрядки ненужных батарей, отключение цепи отключения будет простым способом продления срока службы батарей, даже если это не уменьшит потребление тока от используемых батарей.

Supercat
источник
22

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

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

  • позволить чипу работать и надеяться на лучшее (это может сработать!), или
  • чтобы позволить чипу быть сброшенным (и сохраненным в сбросе) цепью отключения.

Если стоимость неисправности не намного выше стоимости полной неработоспособности, предпочтительнее первый вариант. Подумайте о функции пинга на «черном ящике» самолета. Во что бы то ни стало, позвольте этому продолжаться, если есть хоть малейший шанс, что он даст пинг!

С другой стороны, рассмотрим срабатывание бомбы или автомобильной подушки безопасности. Если есть малейшая вероятность того, что он случайно сработает из-за низкого напряжения питания, лучше отключить его. Это, конечно, предполагает, что закрытие означает не воспламенение!

Есть ситуации, когда нет хорошего выбора. Рассмотрим печально известный первый запуск ракеты Ariane V. Компьютер (и) управления направлением неисправен (в этом случае не из-за низкой мощности). Что это должно сделать? Скорее всего, движение означает рулевое движение в неправильном направлении, но выход означает совсем не рулевое управление, что дает тот же результат. Для тех, кто находится в контрольном бункере, нет ничего хорошего в том, что ракета может попасть в нее :(


Как комментирует Росс, резервное копирование, конечно, хорошая идея для миссионерской системы. Но это переносит проблему дизайна в эту резервную копию. Что если это не удастся? (На практике часто 3 активны все время, используя большинство голосов.) В случае Ariane 5 произошел сбой как основного, так и резервного компьютера (хотя не по своей вине, но это уже другая история.) Что произошло дальше было то, что какая-то другая система (возможно, это был даже человек в диспетчерской) обнаружила, что все вышло из-под контроля, и спровоцировала самоуничтожение. Лучше, чтобы ракета взорвалась в воздухе и упала на мелкие кусочки в море, чтобы она продолжала полет одним куском в каком-то случайном направлении.

Воутер ван Оойен
источник
Для ситуации с ракетой лучшее решение - иметь резервный компьютер, который будет работать в случае сбоя первого, а первый отключить, верно?
Росс Айкен
некоторый текст добавлен
Wouter van Ooijen
На самом деле история Ariane 5 намного сложнее, и обработка ошибок была одной из причин сбоя. esamultimedia.esa.int/docs/esa-x-1819eng.pdf
звездный синий
1
Нет, обработка ошибок не была причиной. Это было использование проверенной системы (она работала на Ariane 4) с данными вне ее первоначальных спецификаций без тестирования ее с новыми данными . (Такие тесты изначально планировались, но позже были отменены в программе снижения затрат;)
Wouter van Ooijen
10

Если вы не заботитесь о сбросе (например, пользователю можно доверять, чтобы он выключался и включался снова, если что-то не работает идеально, и никакой ущерб не возможен) и потребление энергии важно, отключение может сэкономить некоторые микроампер. (или, если вам все равно, вы можете использовать лучшую внешнюю цепь, чем встроенная встроенная).

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

Интересным требованием для некоторых целей является то, что вам необходимо знать максимальное напряжение, ниже которого такие вещи, как EEPROM, гарантированно не будут работать, чтобы BOR мог блокировать работу и гарантировать отсутствие повреждений. Это может быть немного незаметно для некоторых встроенных схем BOR.

Спехро Пефхани
источник
10

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

Модуль: регулятор напряжения

Устройство не может выйти из состояния BOR, если происходит событие BOR.

См. Вопрос 15 в документе PIC32MX534 / 564/664/764 Семейные исправления ошибок в кремнии и пояснения к спецификации .

mjcopple
источник
8
Уч. К какой части относится эта прекрасная ошибка?
Спехро Пефхани
1
Как нечто подобное превращается в производство?
Мэтт Янг
1
Это весело. И под смешным я подразумеваю почти преступника.
Игнасио Васкес-Абрамс
1
Конкретным устройством был PIC32MX664F и только некоторые силиконовые версии. В большинстве случаев он обычно выходил из BOR только один раз из каждых 20 или около того раз, когда не выходил.
mjcopple
@Matt Young: Поскольку в большинстве случаев используются эти микроконтроллеры PIC, BOR существует только для его отключения, прежде чем силикон начнет выполнять случайные инструкции, когда вы тянете за вилку. Если у вас есть подпрограмма перепрошивки в ПЗУ, она может попытаться перепрошить себя с мусором, если BOR не существует.
Джошуа
5

Если вы хотите уменьшить потребление тока в спящем режиме. Например, для ATmega328P вы можете уменьшить его на 17 мкА, отключив БПК. Выключите все остальное во время сна, и чип потребляет крошечное 1.8uA!

(Источник: http://www.rocketscream.com/blog/2011/07/04/lightweight-low-power-arduino-library/ )

geometrikal
источник
2

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

Существуют микроконтроллеры, где разрешение уровней коричневого цвета довольно мало.

Предположим, вы работаете с микроконтроллером, в котором два самых высоких уровня затемнения составляют 4,3 В и 2,7 В (обычно в случае AVR). Вы определили, что на используемых вами частотах 2,7 В небезопасно. Тем не менее, 4,3 В будет слишком высоким, так как это ограничит продолжительность работы после сбоя питания.

Мне часто приходится работать с устройствами, которые часто теряют связь с внешним источником питания, а затем вынуждены работать на конденсаторах или батареях. Уровень отключения 4,3 В приведет к слишком быстрому отключению устройства. 2.7 приведет к повреждению данных. Однако, если, например, 3,5 В будет безопасным уровнем отключения, вы можете создать внешнюю схему отключения, которая работает, потянув линию сброса вашего микроконтроллера. В этом случае внутренняя схема отключения не имеет смысла и может быть отключена.

Если у вас в одной системе больше процессоров, имеет смысл использовать один внешний контроллер сброса для всех них. В этом случае отключение отдельных отключающих детекторов в процессорах не только полезно для незначительного преимущества экономии некоторой мощности, но и необходимо, чтобы избежать ситуации, когда некоторые процессоры сбрасываются, а другие все еще работают.

ВСЗ
источник
1
Я знаю, что вы не выбираете AVR, но я вынужден упомянуть, что 1) разные линии AVR имеют разные пороги BOR, и 2) AVR делают сигнал сброса внешне видимым на nRESET, поэтому, если вы очень осторожны, вы можете использовать один в качестве контроллера сброса.
Игнасио Васкес-Абрамс
1

Нам пришлось включать и выключать VBOR во время одной части запуска из-за ошибки в кремнии на микроконтроллерах, которые мы использовали. Зарядка крышек на насосе напряжения на мгновение опустошит устройство до уровня чуть выше минимума, и VBOR продолжит работать. Поэтому мы выключили VBOR во время включения и включили его примерно через 10 мс.

Джошуа
источник