Настройки пределителя

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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: