Небольшая статья обзор способов сброса pic микроконтроллеров, которая будет служить в качестве предыстории к будущей статье о сохранении/загрузке настроек в мой будущий усилок. Здесь приведена теория и немного практики, показывающей пример реальной работы.
Сначала немного про сброс: по сбросу микроконтроллер немедленно прекращает работу и очищает все свои регистры. Сброс может генерироваться как с помощью внешней обвязки, так и с помощью внутренней логики чипа. Ну и немного теории разбавленной практикой.
POR.
Power On Reset – сброс при подаче питания на чип, происходит всегда. Так как для корректной работы необходимо выдержать правильную временную задержку в чип встроено два таймера: Power-Up timer и OST. Первый отключаемый и как правило может формировать задержку в 72 мс, а второй работает всегда и период его равен 1024 периодам частоты кварца. Срабатывают они при напряжении питания от 1.2 до 1.7. Чтобы проверить его работу достаточно вдолбить следующий код в любую программу:
if (!POR) { printf("\r\nPOR!"); }
Конечно круто и наглядно было бы привести еще рост напряжения питания, но я пока без осцилка, но думаю что скоро решу эту проблему 🙂
BOR.
Эта штука может возникать в двух случаях и в обоих она призвана для того, чтобы уберечь вашу программу от непредсказуемых действий.
1 случай: плавное снижение напряжения питания (например разряд батареи), вот как это будет выглядеть на графике:
made with ChartBoot
Минимальное и максимальное напряжение здесь указано произвольно, на самом деле при тестах в pic16f877a мк уходил в сброс где то на 3 вольтах.
2 случай – шум, бывает, что на линии питания происходят скачки напряжения:
made with ChartBoot
Собственно и все. Для проверки BOR нужно в конфигурации врубить BOREN и искусственно устанавливать биты POR и BOR в 1.
{ if (!POR) { POR = 1; BOR = 1; printf("\r\nPOR!"); }
Совсем корявое видео, но другого не получилось у меня.
Вот и все, по этому поводу с теорией покончено, буду заказывать микросхемку для создания референс уровня и заводить ее на компаратор с целью сохранения настроек усилка при вариациях напряжения питания, а вот когда эти вариации будут происходить тут мне и понадобиться BOR.
Уведомление: Pic Lab, PIC16, Experiment #22: POR, BOR, etc | diymicro.org