PS2-PS0 | Коэффициенты деления RTTC | Коэффициенты деления WDT |
000 | 1:2 | 1:1 |
001 | 1:4 | 1:2 |
010 | 1:8 | 1:4 |
011 | 1:16 | 1:8 |
100 | 1:32 | 1:16 |
101 | 1:64 | 1:32 |
110 | 1:128 | 1:64 |
111 | 1:256 | 1:128 |
PSA - бит, подключающий делитель к
RTTC (0),
WDT (1).
RTE- фронт переднего сигнала RTTC
0- инкремент по нарастающему фронту на ножке RTCC,
1- инкремент по спадающему фронту на ножке RTCC.
RTS - источник сигнала для RTCC
0- сигнал от внутреннего генератора,
1- внешний сигнал на ножке RTCC.
INTEDG - фронт сигнала INT
0- прерывание по спадающему фронту на ножке INT,
1- прерывание по нарастающему фронту на ножке INT.
/RBPU - инверсный бит подключения активной нагрузки к порту B
0- нагрузки подключены по алгоритму работы порта B,
1- нагрузки отключены.
Подключения делителя частоты
Один и тот же восьмибитный счетчик может быть включен либо перед RTCC либо после Watchdog таймера. Отметим, что делитель работает только с одним из этих устройств. Повторяем, если делитель работает с RTCC, это значит, что в данный момент он не работает с Watchdog таймером и наоборот. Схему включения счетчика (см. в разделе RTCC:RTCC}.
|
|
Биты PSA и PS0-PS2 в регистре OPTION определяют, с каким устройством работает делитель и настройку коэффициента деления. Когда делитель подключен к RTCC, все команды, которые записывают в RTCC (напр., CLRF 16 MOVWF 1, BSF 1,x... и т.д.) будут обнулять делитель. Когда он подключен к Watchdog таймеру, то пределитель вместе с Watchdog таймером будет обнулять команда CLRWDT. Содержимое пределителя программе недоступно.
Подключение пределителя- программно управляемое. Ниже представлен фрагмент программы переключения с RTCC на WDT
1. MOVLW B`xx0x0xxx` ;выбрать внутреннюю синхронизацию и новое
;значение для делителя. Если новое значение
;делителя равно
2. OPTION ;`000` или `001`, то надо временно выбрать
;другое значение делителя.
3. CLRF 1 ;обнулить RTCC и делитель.
4. MOVLW B`xxxx1xxx` ;выбрать WDT, не изменяя значения делителя.
5. OPTION
6. CLRWDT ;обнулить WDT и делитель.
7. MOVLW B`xxxx1xxx` ;выбрать новое значение для делителя.
8. OPTION
Пункты 1 и 2 требуются только тогда, когда к RTCC был подключен внешний источник импульсов. Пункты 7 и 8 требуются тогда, когда в коэффициент деления надо установить `000` или `001`.
Переключение делителя с WDT на RTCC
1. CLRWDT ;обнулить WDT и делитель.
2. MOVLW B`xxxx0xxx` ;выбрать RTCC, новое значение для делителя
;источник сигнала.
|
|
3. OPTION
Указанными программами следует пользоваться, даже если WDT запрещен.
Конфигурационное слово
Кристалл PIC16C84 имеет пять битов конфигурации, которые хранятся в EEPROM и устанавливаются на этапе программирования кристалла. Эти биты могут быть запрограммированы (читается как `0`) или оставлены незапрограммироваными (читается `1`) для выбора подходящего варианта конфигурации устройства. Эти биты расположены в EEPROM памяти по адресу 2007h. Пользователю следует помнить, что этот адрес находится ниже области кодов и недоступен программе.
Ячейка EEPROM конфигурации.
13 5 | 4 | 3 | 2 | 1 | 0 | бит.адрес |
CP | PWRTE | WDTE | FOSC1 | FOSC0 | 2007h |
FOSC0,FOSC1 - биты выбора типа генератора
00 LP генератор
01 XT генератор
10 HS генератор
11 RS генератор
WDTE - бит разрешения работы WatchDog Timer
1 - разрешен
0 - запрещен
PWRTE - бит разрешения выдержки времени после включения питания
1 - выдержка есть
0 - выдержки нет
Индивидуальная метка
Кристалл PIC16C84 имеет четыре слова, расположенные по адресу (2000h-2003h) Они предназначены для хранения идентификационного кода (ID) пользователя, контрольной суммы или другой информации. Как и слово конфигурации, они могут быть прочитаны или записаны только с помощью программатора. Доступа по программе к ним нет.
Если кристалл защищен, пользователю рекомендуется использовать для идентификации только младшие семь бит каждого ID слова, а в старший бит записывать `0`. Тогда ID слова можно будет прочитать даже в защищенном варианте.
Защита программ от считывания
Программный код, который записан в кристалл, может быть защищен от считывания при помощи установки бита защиты (CP) в слове конфигурации в ноль. Содержимое программы не может быть прочитано так, что с ним можно было бы работать. Кроме того, при установленном бите защиты становится невозможным изменять программу. Тоже относится и к содержимому памяти данных EEPROM.
Если установлена защита, то бит CP можно стереть только вместе с содержимым кристалла. Сначала будет стерта EEPROM программная память и память данных и в последнюю очередь бит защиты кода CP.
Проверка кристалла с установленной защитой.
При считывании защищенного кристалла, чтение любого адреса памяти даст результат, похожий на 0000000XXXXXXX(двоичный код), где X- это 0 или 1. Чтобы проверить сохранность памяти в защищенном кристалле, следуйте правилам:
· запрограммируйте и проверьте работу исправного кристалла.
· установите защиту кода программы и считайте содержимое программной памяти в файл-эталон.
· проверяйте любой защищенный кристалл путем сравнения его программной памяти с содержимым этого эталона.
Память данных EEPROM не может быть проверена после установки бита защиты.
Режим пониженного энергопотребления.
Вход в режим SLEEP осуществляется командой SLEEP. По этой команде, если WDT разрешен, то он сбрасывается и начинает счет времени, бит “PD” в регистре статуса (f3) сбрасывается, бит “TO” устанавливается, а встроенный генератор выключается. Порты ввода/вывода сохраняют состояние, которое они имели до входа в режим SLEEP. Для снижения потребляемого тока в этом режиме, ножки на вывод должны иметь такие значения, чтобы не протекал ток между кристаллом и внешними цепями. Ножки на ввод должны быть соединены внешними резисторами с высоким или низким уровнем, чтобы избежать токов переключения, вызываемых плавающими высокоомными входами. То же и про RTCC. Ножка /MCLR должна быть под напряжением Vihmc.