Специальные функции и система команд микроконтроллеров серии PIC

В этой лекции рассказывается о специальных функциях, предназначенных для расширения возможностей системы на основе PIC-микроконтроллеров и повышения ее надежности, а также рассматриваются особенности системы команд микроконтроллеров подгруппы PIC16F8X.

Специальные функции

Микроконтроллеры подгруппы PIC16F8X имеют набор специальных функций, предназначенных для расширения возможностей системы, минимизации стоимости, исключения навесных компонентов, обеспечения минимального энергопотребления и защиты кода от считывания. В PIC16F8X реализованы следующие специальные функции:

• сброс;

® сторожевой таймер (WDT);

® режим пониженного энергопотребления ( SLEEP);

® выбор типа генератора ;

® защита кода от считывания;

® биты идентификации;

® последовательное программирование в составе схемы.

В PIC16F8X существуют различия между вариантами сбросов:

® сброс по включению питания;

® сброс по внешнему сигналу /MCLR при нормальной работе;

® сброс по внешнему сигналу /MCLR в режиме SLEEP;

® сброс по окончании задержки таймера WDT при нормальной работе;

® сброс по окончании задержки таймера WDT в режиме SLEEP.

Для реализации сброса по включению питания в MK подгруппы

PIC16F8X предусмотрен встроенный детектор включения питания. Таймер установления питания ( PWRT ) начинает отсчет времени после того, как напряжение питания пересекает уровень около 1,2... 1,8 Вольт. По истечении выдержки около 72мс считается, что напряжение достигло номинала и запускается другой таймер - таймер запуска генератора ( OST ), формирующий выдержку на стабилизацию кварцевого генератора. Программируемый бит конфигурации позволяет разрешать или запрещать выдержку от встроенного таймера установления питания. Выдержка запуска меняется в зависимости от экземпляров кристалла, от питания и температуры. Таймер на стабилизацию генератора отсчитывает 1024 импульса от начавшего работу генератора. Считается, что кварцевый генератор за это время выходит на режим. При использовании RC генераторов выдержка на стабилизацию не производится.

Если сигнал /MCLR удерживается в низком состоянии достаточно долго (дольше времени всех задержек), тогда после перехода /MCLR в высокое состояние программа начнет выполняться немедленно. Это необходимо в тех случаях, когда требуется синхронно запустить в работу несколько PIC-контроллеров через общий для всех сигнал /MCLR.

Микроконтроллеры подгруппы PIC16F8X имеют встроенный сторожевой таймер WDT. Для большей надежности он работает от собственного внутреннего RC - генератора и продолжает функционировать, даже если основной генератор остановлен, как это бывает при исполнении команды SLEEP. Таймер вырабатывает сигнал сброса. Выработка таких сбросов может быть запрещена путем записи нуля в специальный бит юн фигурации WDTE. Эту операцию производят на этапе прожига микросхем.

Номинальная выдержка WDT составляет 18 мс (без использования делителя). Она зависит от температуры, напряжения питания, особенностей типов микросхем. Если требуются большие задержки, то к WDT может быть подключен встроенный пределитель с коэффициентом деления до 1:128, который программируется битами PS2:PS0 в регистре OPTION. В результате могут быть реализованы выдержки до 2,3 секунд.

Команды " CLRWDT " и " SLEEP " обнуляют WDT и пределитель, если он подключен к WDT. Это запускает выдержку времени сначала и предотвращает на некоторое время выработку сигнала сброса. Если сигнал сброса от WDT все же произошел, то одновременно обнуляется бит /ТО в регистре статуса. В приложениях с высоким уровнем помех содержимое регистра OPTION подвержено сбою. Поэтому регистр OPTION должен обновляться через равные промежутки времени.

Состояние регистров МК после сброса представлено в табл. 5.7.

Некоторые из специальных регистров при сбросе не инициализируются. Они имеют случайное состояние при включении питания и не изменяются при иных видах сброса. Другая часть специальных регистров инициализируется в "состояние сброса " при всех видах сброса, кроме сброса по окончанию задержки таймера WDT в режиме SLEEP. Просто этот сброс рассматривается как временная задержка в нормальной работе. Есть еще несколько исключений. Счетчик команд всегда сбрасывается в ноль ( OOOOh ). Биты регистра статуса /ТО и /PD устанавливаются или сбрасываются в зависимости от варианта сброса. Эти биты используются программой для определения природы сброса (см. табл. 5.31

Таблица 5.7. Состояние регистров МК после сброса.

Регистр

Адрес

Сброс по включению

Другие виды питания сброса

W

-

xxxxxxxx

шш uuuu

INDF

0 Oh

TMR0

Olh

xxxxxxxx

uuuu uuuu

PCL

02h

0000 0000

0000 0000

STATUS

03h

0001 lxxx

OOOq quuu

FSR

04h

xxxxxxxx

uuuu uuuu

PORT А

05h

—xxxxx

—u uuuu

PORT В

0 6h

xxxxxxxx

uuuu uuuu

TRIS А

85h

—1 1111

—1 nil

TRIS В

8 6h

1111 1111

11111111

OPTION

8 lh

1111 1111

11111111

EEDATA

0 8h

xxxxxxxx

uuuu uuuu

EEADR

0 9h

xxxxxxxx

uuuu uuuu

EECON1

8 8h

—0 0000

—0 qOOO

EECON2

8 9h

PCLATH

OAh

—0 0000

—0 0000

INTCON

OBh

0000 OOOx

0000 OOOu

Здесь: х— неизвестное значение; и — неизменяемый бит; — неиспользуемый бит (читается как "0''); q — значение бита зависит от условий сброса.

Режим пониженного энергопотребления SLEEP предназначен для обеспечения очень малого тока потребления в ожидании (менее 1 мкА при выключенном сторожевом таймере ). Выход из режима SLEEP возможен по внешнему сигналу сброса или по окончании выдержки сторожевого таймера.

Кристаллы PIC16F8X могут работать с четырьмя типами встроенных генераторов. Пользователь может запрограммировать два

юнфигурационных бита ( FOSC1 и FOSCO ) для выбора одного из четырех режимов: RC, LP, XT, HS. Здесь XT - стандартный кварцевый генератор, HS - высокочастотный кварцевый генератор, LP - низкочастотный генератор для экономичных приложений.

Микроконтроллеры PIC16F8X могут тактироваться и от внешних источников.

Генератор, построенный на кварцевых или керамических резонаторах, требует периода стабилизации после включения питания. Для этого встроенный таймер запуска генератора держит устройство в состоянии сброса примерно 18 мс после того, как сигнал на /MCLR ножке кристалла достигает уровня логической единицы.

Возможность выбора типа генератора позволяет эффективно использовать микроконтроллеры семейства в различных приложениях. Применение RC генератора позволяет уменьшить стоимость системы, а низкочастотный L Р - генератор сокращает энергопотребление.

Программный код, который записан в кристалл, может быть защищен от считывания при помощи установки бита защиты ( СР ) в слове

Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной техники

конфигурации в ноль. Содержимое программы не может быть прочитано так, чтобы с ним можно было работать. Кроме того, при установленном бите защиты невозможно изменять программу. То же относится и к содержимому памяти данных ЕЕ PROM.

Если установлена защита, то бит СР можно стереть только вместе с содержимым кристалла. Сначала будет стерта EEPROM программная память и память данных, и в последнюю очередь - бит защиты кода СР. При считывании защищенного кристалла чтение любого адреса памяти даст результат вида 0000000ХХХХХХХ(двоичный код), где X - это О или 1.

Память данных EEPROM невозможно проверить после установки бита защиты.

Для выбора различных режимов работы используются биты конфигурации. Микроконтроллеры подгруппы PIC16F8X имеют 5 или 6 бит конфигурации, которые хранятся в EEPROM и устанавливаются на этапе программирования кристалла. Эти биты могут быть запрограммированы (читается как "О") или оставлены ^запрограммированными (читается "1") для выбора подходящего варианта конфигурации устройства. Они расположены в EEPROM - памяти по адресу 2 007h. Пользователю следует помнить, что этот адрес находится ниже области кодов и недоступен программе.

Назначение бит конфигурации МК PIC16CR83 и PIC16CR84 приведено в табл. 5.8.

Таблица 5.8. Назначение бит конфигурации МК PIC16CR83 и PIC16CR84.

Назначение бит конфигурации МК PIC16F83 и PIC16F84 приведено в табл. 5.9.

Таблица 5.9. Назначение бит конфигурации МК PIC15F83 и PIC16F84.

Четыре слова памяти, расположенные по адресам 2000h-2003h, предназначены для хранения идентификационного кода (ID) пользователя, контрольной суммы или другой информации. Как и слово конфигурации, они могут быть прочитаны или записаны только с помощью программатора. Доступа из программы к ним нет.

Микроконтроллеры подгруппы PIC16F8X могут быть запрограммированы последовательным способом в составе устройства. Для этого используется всего пять линий: две для данных и тактового сигнала и три для земли, напряжения питания и программирующего напряжения. Разработчик может создать и смакетировать устройство с ^запрограммированным прибором, а перед использованием ввести в него программу.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >