Микроконтроллеры подгруппы РIС16F8Х имеют набор специальных функций, предназначенных для расширения возможностей системы, минимизации стоимости, исключения навесных компонентов, обеспечения минимального энергопотребления и защиты кода от считывания. В РIС16F8Х реализованы следующие специальные функции:
• сброс;
• сторожевой таймер (WDT);
• режим пониженного энергопотребления (SLЕЕР);
• выбор типа генератора;
• защита кода от считывания;
• биты идентификации;
• последовательное программирование в составе схемы.
В РIС16F8Х существуют различия между вариантами сбросов:
• сброс по включению питания;
• сброс по внешнему сигналу /МСLR при нормальной работе;
• сброс по внешнему сигналу /МСLR в режиме SLЕЕР;
• сброс по окончании задержки таймера WDТ при нормальной работе;
• сброс по окончании задержки таймера WDТ в режиме SLЕЕР. Для реализации сброса по включению питания в МК подгруппы
РIС16F8Х предусмотрен встроенный детектор включения питания. Таймер установления питания (PWRТ) начинает отсчет времени после того, как напряжение питания пересекает уровень около 1,2... 1,8 Вольт. По истечении выдержки около 72мс считается, что напряжение достигло номинала и запускается другой таймер - таймер запуска генератора (OSТ), формирующий выдержку на стабилизацию кварцевого генератора.
Если сигнал /МCLR удерживается в низком состоянии достаточно долго (дольше времени всех задержек), тогда после перехода /МСLR в высокое состояние программа начнет выполняться немедленно. Это необходимо в тех случаях, когда требуется синхронно запустить в работу несколько PIC-контроллеров через общий для всех сигнал /МСLR.
Микроконтроллеры подгруппы РIС16F8Х имеют встроенный сторожевой таймер WDТ. Для большей надежности он работает от собственного внутреннего RС-генератора и продолжает функционировать, даже если основной генератор остановлен. Таймер вырабатывает сигнал сброса. Выработка таких сбросов может быть запрещена путем записи нуля в специальный бит конфигурации WDТЕ. Эту операцию производят на этапе прожига микросхем.
Номинальная выдержка WDТ составляет 18 мс (без использования делителя). Если требуются большие задержки, то к WDТ может быть подключен встроенный пределитель с коэффициентом деления до 1:128, который программируется битами РS2:РS0 в регистре ОРТIОN.
Команды “CLRWDТ» и «SLЕЕР» обнуляют WDТ и пределитель.
Состояние регистров МК после сброса представлено в таблице на рис 41
Режим пониженного энергопотребления SLЕЕР предназначен для обеспечения очень малого тока потребления в ожидании
выключенном сторожевом таймере). Выход из режима SLЕЕР возможен по внешнему сигналу сброса или по окончании выдержки сторожевого таймера.
Кристаллы РIС16F8Х могут работать с четырьмя типами встроенных генераторов. Пользователь может запрограммировать два конфигурационных бита (FOSС1 и FOSC0) для выбора одного из четырех режимов: RС, LР, ХТ, НS
. Здесь ХТ - стандартный кварцевый генератор,
НS -высокочастотный кварцевый генератор,
LР-низкочастотный генератор для экономичных приложений. Микроконтроллеры РIС16F8Х могут тактироваться и от внешних источников.
Генератор, построенный на кварцевых или керамических резонаторах, требует периода стабилизации после включения питания. Для этого встроенный таймер запуска генератора держит устройство в состоянии сброса примерно 18 мс после того, как сигнал на /МСLR ножке кристалла достигнет уровня логической единицы.
Возможность выбора типа генератора позволяет эффективно использовать микроконтроллеры семейства в различных приложениях. Применение RС генератора позволяет уменьшить стоимость системы, а низкочастотный LР-генератор сокращает энергопотребление.
Программный код, который записан в кристалл, может быть защищен от считывания при помощи установки бита защиты (СР) в слове конфигурации в ноль. Содержимое программы не может быть прочитано так, чтобы с ним можно было работать. Кроме того, при установленном бите защиты невозможно изменять программу. То же относится и к содержимому памяти данных ЕЕРRОМ.
Если установлена защита, то бит СР можно стереть только вместе с содержимым кристалла. Сначала будет стерта ЕЕРRОМ программная память и память данных, и в последнюю очередь — бит защиты кода СР. При считывании защищенного кристалла чтение любого адреса памяти даст результат вида 0000000ХХХХХХХ(двоичный код), где X - это 0 или 1.
Память данных ЕЕРRОМ невозможно проверить после установки бита защиты.
Для выбора различных режимов работы используются биты конфигурации. Микроконтроллеры подгруппы РIС16F8Х имеют 5 или 6 бит конфигурации, которые хранятся в ЕЕРRОМ и устанавливаются на этапе программирования кристалла. Эти биты могут быть запрограммированы (читается как «0») или оставлены незапрограммированными (читается «1«) для выбора подходящего варианта конфигурации устройства. Они расположены в ЕЕРRОМ - памяти по адресу 2007h. Пользователю следует помнить, что этот адрес находится ниже области кодов и недоступен программе. Назначение бит конфигурации МК РIС16F84 приведено в таблице:
СР
/РWRTE
WDТЕ
FОSС1
FОSСО
Бит 13:8
Бит 3
Бит 2
Бит 1
Бит 0
Биты 13:4 CP: бит защиты памяти программ
0 = память программ защищена
1 = защита отсутствует
Бит 3: / РWRTE: бит использования таймера по включению питания
0 = таймер используется (есть задержка)
1 = таймер не используется
Бит 2: WDТЕ : бит использования сторожевого таймера
0 = WDТ не используется
1 = WDТ используется
Биты 1:0 FOSС1:FOSСО: бит выбора типа генератора
11= генератор RС
10 = генератор НS
01 = генератор ХТ
00 = генератор LР
Четыре слова памяти, расположенные по адресам 2000h-2003h, предназначены для хранения идентификационного кода (ID) пользователя, контрольной суммы или другой информации. Как и слово конфигурации, они могут быть прочитаны или записаны только с помощью программатора. Доступа из программы к ним нет.