четверг, 21 марта 2013 г.

Система BOD

Для контроля за корректной работой микроконтроллера существует система BOD (Brown-out detection), которая позволяет обнаружить снижение напряжение питания ниже заданного уровня и сбросить микроконтроллер во избежание ошибок. Когда напряжение питания восстанавливается, сигнал сброса снимается и микроконтроллер приступает к нормальной работе.
Для установки напряжения питания, при котором будет генерироваться сигнал сброса микроконтроллера используется Extended fuse byte:

7
6
5
4
3
2
1
0
-
-
-
-
-
BODLEVEL2
BODLEVEL1
BODLEVEL0

Биты BODLEVEL2 - BODLEVEL0 (2 - 0) как раз и устанавливают необходимое напряжение:
  • 111 - система BOD выключена
  • 110 - сброс при напряжении питания 1.7 - 2 В
  • 101 - сброс при напряжении питания 2.5 - 2.9 В
  • 100 - сброс при напряжении питания 4.1 - 4.5 В
  • 011 - 000 - резерв
Для отключения системы BOD во время спящего режима микроконтроллера в регистре MCUCR есть два специальных бита:

7
6
5
4
3
2
1
0
-
BODS
BODSE
PUD
-
-
IVSEL
IVCE

Бит BODS (6) отключает систему BOD во время перехода микроконтроллера в режим пониженного электропитания при записи в него 1.
Бит BODSE (5) разрешает отключение системы BOD (необходимо установить 1, затем в течении 4 машинных циклов изменить бит BODS).