Чтобы проиллюстрировать работу схемы сброса по включению питания, рассмотрим некоторую идеализированную ситуацию (см. Рис. 10.10). В момент времени
1. С помощью 10-битного счетчика, тактируемого встроенным генератором, формируется задержка ТРWRT фиксированной длительностью 72 мс. Формирование этой задержки может быть отключено установкой бита
Рис. 10.10.
2. Если используется один из режимов с резонатором, то после задержки ТРWRT формируется еще одна задержка TOST длительностью 1024 такта системного тактового сигнала. Эта задержка формируется с помощью 10-битного счетчика, тактируемого системным генератором. Таким образом, гарантируется, что к моменту старта программы основной генератор уже запущен и работает в нормальном режиме. Понятно, что длительность задержки TOST зависит от частоты резонатора. Например, при частоте резонатора 32 кГц длительность задержки будет не менее 32 мс, тогда как при резонаторе частотой 10 МГц длительность задержки будет равна 102 мкс. Если по окончании этой задержки генератор все еще не запустится[138], то будет сформирована дополнительная задержка неопределенной длительности. При использовании RС-генератора эта задержка не формируется. Также задержка TOST формируется при выходе микроконтроллера из «спящего» режима и опять с той же целью — чтобы обеспечить выход тактового генератора на нормальный режим к моменту запуска программы.
3. Как и в случае внешнего сброса, исполнение кода начинается с адреса вектора сброса (h’000’). Однако в отличие от внешнего сброса, который не влияет на биты
Все задержки, формируемые в том или ином случае, указаны в Табл. 10.3.
Если в конечном устройстве ручной сброс не требуется, вывод
Возможна такая ситуация, когда напряжение на выходе источника питания микроконтроллера возрастает настолько медленно, что внутренний импульс сброса по питанию не генерируется, или же напряжение не достигает требуемого значения даже по истечении задержек ТPWRT и TOST. Как правило, это значение составляет 4.5 В для 5-В моделей с генератором, работающим в режиме HS, и 4 В — в других режимах. В этом случае микроконтроллер может начать выполнять программу некорректно или вообще не запуститься. Когда надежность встроенной схемы сброса по включению питания вызывает сомнение, можно использовать дополнительные узлы, предназначенные для удерживания НИЗКОГО уровня на выводе
Нормально работающий микроконтроллер может начать работать неправильно, если напряжение питания упадет ниже рабочего значения. Это может произойти из-за кратковременной просадки напряжения на линии VDD при переключении мощной нагрузки или из-за разряда батареи. В обоих случаях микроконтроллер PIC может начать работать неправильно из-за этого
Из Рис. 10.11 видно, что при включенном таймере BOR (т. е. при установленном бите BODEN в слове конфигурации) внутренний сигнал сброса будет сформирован при снижении напряжения питания VDD ниже порогового значения BVDD[140]. В устройствах, работающих при номинальном напряжении питания 5 В, этот порог составляет 4 ±0.3 В. Для устройств, способных работать в более широком диапазоне питающих напряжений, таких как PIC 12F629/675, это пороговое значение может быть снижено вплоть до 2 В.