Захист від збоїв живлення

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Захист від збоїв живлення в програмуванні - призупинення роботи мікроконтролера при зникненні напруги живлення (англ. Black-Out) або при напрузі живлення нижче допустимого рівня (англ. Brown-Out).

Для того щоб CPU мікроконтролера міг успішно декодувати і виконувати інструкції програми, напруга живлення повинна завжди бути більше мінімально допустимого рівня, що залежить від робочої частоти. Коли напруга живлення опускається нижче цього рівня, процесор може почати виконувати деякі інструкції неправильно. В результаті можуть відбуватися не заплановані процеси у внутрішній пам'яті і на лініях управління. Це може привести до пошкодження інформації в регістрах процесора, I/O регістрах і в пам'яті даних.

Для того щоб уникнути цього, необхідно не допустити виконання коду CPU, при провалах напруги живлення. Для цього найкраще використовувати зовнішній детектор зниженої напруги живлення. При зменшенні напруги нижче фіксованого порога, детектор формує низький (активний) рівень на виведення RESET. Це негайно зупиняє CPU, не дозволяючи йому виконувати програму. Поки напруга живлення нижче порогового, мікроконтролер зупинений, і система перебувати у відомому стані. Коли напруга живлення знову піднімається до встановленого значення, вивід RESET звільняється і мікроконтролер починає виконувати програму з адреси вектора перезапуску (0x0000)[1].

Примітки

[ред. | ред. код]
  1. AVR 180: Внешняя защита от провалов напряжения. Архів оригіналу за 30 грудня 2013. Процитовано 30 грудня 2013.

Див. також

[ред. | ред. код]

Посилання

[ред. | ред. код]