Микроконтроллеры семейства Z86 фирмы ZILOG




ВВЕДЕНИЕ

Устройства передачи и обработки информации являются теми "кирпичами", из которых строятся сложные информационно-управляющие системы, такие как, например, цифровые сети связи с интеграцией служб -ISDN [1]. Проектирование таких устройств представляет сложную техническую задачу, поскольку к ним предъявляется ряд серьезных технических требований в части:

- сложных протоколов обмена данными;

- высоких скоростей передачи;

- сложных алгоритмов обработки;

- высокой точности;

- аналого-цифровых функций;

- надежности и достоверности;

- устойчивости к воздействию дестабилизирующих факторов;

- конструктивных параметров (габаритные размеры, масса);

- энергопотребления.

Решающую роль на технические характеристики устройств передачи и обработки информации оказывает используемая элементная база. Наиболее подходящая элементная база для построения таких устройств -это однокристальные микроконтроллеры (МК). Такие приборы поставляются на мировой рынок всеми ведущими производителями микропроцессоров: Intel, Motorola, Texas Instruments, Microchip Technology, Zilog и др. Особый интерес для рассматриваемого класса устройств представляют малогабаритные МК с микромощным потреблением. Среди них можно выделить МК PIC 16CXX фирмы Microchip Technology [2] и Z8 фирмы Zilog [3,4]. Если PIC-контроллеры относятся к процессорам с так называемой сокращенной системой команд (Reduced Instruction Set Command -RISC), то Z8 -это процессоры с комплексной системой команд (Complex Instruction Set Command -CISC). Преимуществом последних является более высокий уровень команд, что делает программный код более эффективным в смысле времени выполнения и объема занимаемой памяти и упрощает программирование на языке ассемблера. Это позволяет рекомендовать MK семейства Z8 для использования в практике проектирования устройств передачи и обработки информации.

В настоящем пособии подробно рассмотрены вопросы архитектурного построения и программирования МК семейства Z8, а также примеры проектирования устройств передачи и обработки информации на базе этих МК.

 

1. Однокристальные микроконтроллеры семейства Z8

1.1. Описание семейства Z8

Среди новейших моделей МК семейства Z8 следует выделить ряд малопотребляющих МК, выполненных по КМОП технологии, основные параметры которых приведены в табл.1.1. Обозначение МК состоит из префикса фирмы -Z, номера семейства -86, литеры исполнения и номера модели.

Таблица 1.1

Малопотребляющие микроконтроллеры семейства Z8

Обозначение Микросхемы ПЗУ Байт ОЗУ байт Ввод/Вывод Бит Частота МГц(max) Корпус к-во выв.
Z86x02          
Z86x03          
Z86x04 1K        
Z86x06 1K        
Z86x08 2K        
Z86x31 2K        
Z86x30 4K        
Z86x40* 4K       40/44

Примечание:х - литера исполнения, С, Е или L.

* - имеется возможность подключения внешних ПЗУ и ОЗУ объемом по 60К байт.

МК, в обозначение которых входит литера "C", имеют ПЗУ с масочным программированием. Литера "E" в обозначении указывает на вариант с однократно электрически программируемым ПЗУ. Литера "L" соответствует вариантам с масочным ПЗУ и пониженным напряжением питания. Первые используют для выпуска серийных изделий (5000 и более штук), вторые -для опытных, единичных и мелкосерийных изделий, третьи -для серийных устройств с автономным питанием от пары сухих гальванических элементов или аккумуляторов.

Фирма-изготовитель поставляет специальное недорогое оборудование в виде аппаратно-программных кросс-средств, ориентированных на ПЭВМ IBM PC, для разработки изделий на базе МК, куда входит и программатор для однократно программируемых МК (например, внутрисхемный эмулятор -программатор Z86CCP01ZEM с программным обеспечением).

Все МК [4,5] имеют 5 -6-и уровневый контроллер прерываний, один или два таймера/счетчика и два аналоговых компаратора. Последние позволяют решать вопросы сравнения уровней напряжения, детектирования короткозамкнутого состояния датчиков, аналого-цифрового преобразования без использования дополнительных компонентов. Кроме того, модель 06 имеет встроенный последовательный интерфейс.

Линии ввода/вывода МК обеспечивают совместимость с КМОП -уровнями. Выходные усилители под управлением программного обеспечения могут конфигурироваться как двухтактные или с открытым стоком. Кроме того, для исключения резкого возрастания тока, потребляемого входными КМОП ключами при отсутствии источника входного уровня, все цифровые входы снабжены автофиксаторами уровня (Auto Latch). В последних версиях МК автофиксаторы могут отключаться, что повышает совместимость входов (особенно для аналоговых линий).

Разработчики МК предусмотрели в них целый ряд аппаратных функций, обеспечивающих надежность работы в условиях воздействия помех и дестабилизирующих факторов: автоматический сброс при включении питания (Power-On Reset), сторожевой таймер (Watch-Dog Timer), защита от снижения напряжения питания (Low-Voltage Protection), защита ОЗУ (RAM Protect).

Автоматический сброс при включении питания обеспечивается специальным таймером сброса, синхронизируемым от встроенного RC-генератора. Этот таймер обеспечивает удержание процессора в состоянии сброса, пока питающее напряжение не достигнет номинального уровня, а генератор основной синхронизации не выйдет на стабильный режим.

Сторожевой таймер защищает процессор от "зависания". Управляется он программно специальными командами. При "зависании" программы очередная команда перезапуска сторожевого таймера не выполнится, он досчитает до конца и вызовет функцию сброса МК -тем самым вычислительный процесс будет восстановлен.

Функция защиты от снижения напряжения питания позволяет обеспечить корректное возобновление вычислительного процесса при "провалах" питающего напряжения.

Сущность защиты ОЗУ заключается в возможности программно управлять доступом к определенной области ОЗУ, содержащей управляющую информацию. Запрещение доступа гарантирует сохранение этой информации и правильное ее использование в случае, например, сбоя программного счетчика, в результате которого может произойти некорректное обращение к этой области ОЗУ и искажение управляющей информации.

МК работают в широком диапазоне питающих напряжений:

3 -5,5В -для масочного исполнения; 4,5 -5,5В -для однократно программируемого и 2 -3,9В -для исполнения с пониженным питающим напряжением. Потребляемая мощность в стандартном режиме на максимальной допустимой частоте составляет 30 -60 мВт.

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

Оригинальная схема встроенного генератора синхронизации позволяет использовать в качестве времязадающих элементов кварцевые и керамические резонаторы, LC и RC-цепи. Возможна и синхронизация от внешнего источника. Функционирование МК обеспечивается в широком диапазоне рабочих частот от 10 кГц до максимальной (см. табл.1.1). Причем, чем ниже частота, тем меньше потребляемый ток от источника питания. Например, для версии "C" большинства МК на частоте 32 кГц гарантируется потребляемый ток 8 мкА.

Для применений с высокими требованиями к электромагнитной совместимости МК Z8 могут быть переведены в малошумящий режим (Low Noise). В этом режиме несколько ухудшается нагрузочная способность портов вывода и увеличивается время переходных процессов, однако значительно снижается уровень электромагнитного излучения. Частота внешнего кварцевого резонатора при этом ограничивается величиной 4 МГц.

Изготовитель гарантирует надежную работу МК при температуре окружающей среды от 0 до 70 градусов Цельсия для стандартного исполнения и от -40 до 105 градусов для исполнения с расширенным температурным диапазоном (Extended Temperature). В последнем исполнении поставляются все МК с литерой "C" и модели 02, 04, 08, 30, 31 и 40 с литерой "E".

И, наконец, для исключения возможности копирования программы МК конкурентами предусмотрен, бит защиты ПЗУ (ROM Protect). В более ранних версиях МК установка бита защиты запрещала команды загрузки из ПЗУ (LDC и LDCI), что одновременно заставляло программиста отказываться от использования весьма эффективных алгоритмов, основанных на просмотре таблиц. В последних версиях МК доступ к ПЗУ блокируется установкой бита защиты без запрета указанных команд и каких-либо алгоритмических ограничений.

1.2. Архитектура микроконтроллеров Z8

1.2.1. Структурная схема микроконтроллеров

На рис.1.1 приведена обобщенная структурная схема МК, а в табл. 1.2 указаны наборы вариативных элементов структуры для каждой модели.

Рис. 1.1 Обобщенная структурная схема микроконтроллеров Z8

Согласно структуре МК, рис.1.1, операционное устройство представлено арифметико-логическим узлом (АЛУ) и флаговым регистром. Устройство управления МК содержит счетчик команд PC (Program Counter) и узел синхронизации и управления со сторожевым таймером и схемой автосброса. Система памяти МК представлена постоянным запоминающим устройством (ПЗУ) для хранения программ и оперативной памятью для данных и стека, выполненной в виде регистрового файла. Для сокращения размера поля адреса регистрового файла он поделен на рабочие группы. Номер активной группы задается специальным указателем регистров RP (Register Poitner). Модель 40 имеет возможность расширения объема памяти до 64 Кбайт путем подключения внешней памяти программ и данных.

 

Таблица 1.2

Параметры структуры рис.1.1 для моделей микроконтроллеров Z8

Модель Узлы Выводы
T0 T1 SPI Управление Порт P0 Порт P1 Порт P3
  - * - - *** - ***
  - * - - - - ******
  * * - - *** - ***
  * * * - - - ******
  * * - - *** - ***
  * * - - ******** - ********
  * * - - ******** - ********
  * * - * ******** * ********

Устройство ввода/вывода МК представлено 4 программируемыми портами. Кроме того, на кристалле МК выполнен ряд периферийных устройств: 1- таймера/счетчика, устройство управления прерываниями, 2 аналоговых компаратора и последовательный интерфейс SPI (Serial Peripheral Interface). Назначение выводов микроконтроллера понятно из рис.1 за исключением выводов узла синхронизации и управления, функции которых пояснены ниже:

XTAL -выводы для подключения кварцевого или керамического резонатора, LC- или RC-цепи;

/AS -выход строба адреса (Address Strobe);

/DS -выход строба данных (Data Strobe);

R//W -сигнал "Чтение//Запись"(Read//Write);

/RESET- вход сброса.

Примечание. Здесь и далее для сигналов с низким активным уровнем используются два эквивалентных обозначения, например:

__

AS или /AS.

Физическое наличие определенных узлов и выводов в разных моделях МК отмечено в табл.1.2 знаком "*".

1.2.2. Адресное пространство микроконтроллеров

Адресное пространство МК состоит из адресного пространства регистрового файла и адресного пространства памяти. В адресное пространство регистрового файла включены периферийные регистры, управляющие регистры, порты ввода/вывода и регистры общего назначения (РОН). Последние образуют ОЗУ МК. Адресное пространство памяти образовано ячейками внутренней и внешней памяти программ для хранения программного кода и констант, а также ячейками внешней памяти данных для хранения данных и размещения стека.

1.2.2.1. Адресное пространство регистрового файла

Регистровый файл состоит из стандартного регистрового файла (СРФ), имеющегося во всех моделях МК, и расширенного регистрового файла (РРФ), частично используемого в некоторых моделях МК для управления дополнительными функциями.

Структура регистрового файла показана на рис 1.2.

СРФ состоит из 256 восьмибитных регистров с шестнадцатеричными адресами от 00H до FFH (здесь и далее H -суффикс шестнадцатеричной системы счисления). Адресное пространство СРФ разделено на 16 рабочих групп регистров по 16 регистров в каждой. Рабочая группа 0 содержит регистры с адресами от 00H до 0FH, группа 1 -регистры с адресами от 10H до 1FH и т.д. Следовательно, правомерно считать, что первая шестнадцатеричная цифра адреса соответствует номеру рабочей группы регистров, а вторая -номеру регистра. На рис.1.2 выделены рабочие группы регистров СРФ с указанием адреса нулевого регистра каждой группы в шестнадцатеричной системе счисления.

Рабочая группа регистров 0 -особая, она может замещаться группами регистров из РРФ. РРФ содержит 16 расширенных групп регистров по 16 регистров в каждой. На рис.1.2 указаны номера расширенных регистровых групп. Следует отметить, что рабочая группа 0 СРФ совпадает с расширенной группой 0 РРФ.

Специальный регистр RP (Register Pointer -Указатель регистров), размещенный в СРФ по адресу FDH (253), содержит два четырехбитных указателя, определяющие текущие номера рабочей (старшая тетрада) и расширенной (младшая тетрада) регистровых групп. Перезагрузкой регистра RP можно оперативно изменять выбранные группы регистров. Старшая цифра указанного в команде загрузки шестнадцатеричного числа будет определять номер рабочей группы, а младшая -номер расширенной группы регистров.

Доступ к регистрам может осуществляться как с помощью полного восьмибитного адреса, так и с помощью короткого четырехбитного адреса. В последнем случае адрес определяет номер регистра в текущей рабочей группе. Если текущая рабочая группа -0, то будет выбран соответствующий регистр из текущей расширенной группы. В случае использования восьмибитного адреса 0XH (где X -любая шестнадцатеричная цифра) выбирается регистр X текущей расширенной регистровой группы, а адреса 1XH -FXH соответствуют регистрам СРФ. В последнем случае исключение составляет рабочая группа регистров E (адреса E0H -EFH), к которой нельзя обращаться с помощью восьмибитного адреса, т.к. байтовый формат EXH зарезервирован разработчиками МК для команд с укороченным адресом.

Разные модели МК имеют разные наборы физически доступных регистровых групп. Для СРФ эти наборы показаны на рис.1.2 столбиковой диаграммой. Расширенная группа регистров 0 (она же -рабочая группа регистров 0) имеется во всех моделях МК. Расширенная группа регистров C имеется только в модели 06, а расширенная группа регистров F имеется в моделях 03,06,30,31,40. Незадействованные регистры расширенных групп 1 -F зарезервированы разработчиками МК для дальнейших применений.

 

Рис. 1.2 Структура регистрового файла

Часть регистров СРФ имеет специальное назначение (управляющие и периферийные регистры), остальная часть -регистры общего назначения -РОН (General Purpose Register -GPR). Последние и образуют оперативное запоминающее устройство (ОЗУ) МК. Регистры специального назначения сосредоточены в рабочей группе F и в расширенной/рабочей группе 0. Все задействованные регистры расширенных групп имеют специальное назначение. На рис. 1.2 справа показаны все регистры специального назначения. Для каждого регистра указаны шестнадцатеричный адрес и идентификатор, представляющий аббревиатуру назначения регистра. В табл. 1.3 приведен полный перечень этих регистров с указанием идентификатора, назначения на английском и русском языках и характера операций доступа (R -чтение, W -запись).

 

Таблица 1.3

Регистры специального назначения

Идентификатор Назначение Доступ
Английский Русский
SPL Stack Pointer Low Byte Указатель стека - мл. байт R/W
SPH Stack Pointer High Byte Указатель стека - ст. байт R/W
RP Register Pointer Указатель регистров R/W
FLAGS Program Control Flags Регистр флагов R/W
IMR Interrupt Mask Register Регистр маски прерываний R/W
IRQ Interrupt Request Register Регистр запросов прерываний R/W
IRP Interrupt Priority Register Регистр приоритета прерываний W
P01M Port 0-1 Mode Register Регистр режима портов 0-1 W
P3M Port 3 Mode Register Регистр режима порта 3 W
P2M Port 2 Mode Register Регистр режима порта 2 W
PRE0 TO Prescaler Предделитель ТО W
TO Timer/Counter TO Таймер/Счетчик ТО R/W
PRE1 T1 Prescaler Предделитель Т1 W
T1 Timer/Counter T1 Таймер/Счетчик Т1 R/W
TMR Timer Mode Register Регистр режимов таймеров R/W
WDTMR Watch Dog Timer Mode Register Регистр режима сторожевого таймера W
SMR Stop-Mode Recovery Register Регистр управления восстановлением из режима STOP W*
PCON Port Control Register Регистр управления портами W
SCON SPI Control Register Регистр управления последовательным интерфейсом R/W
RxBUF SPI Receive Buffer Приемный буфер последовательного интерфейса R/W
SCOMP SPI Compare Register Регистр сравнения последовательного интерфейса R/W
P3 Port 3 Порт 3 R/W
P2 Port 2 Порт 2 R/W
P1 Port 1 Порт 1 R/W
P0 Port 0 Порт 0 R/W

* Бит 7 регистра SMR - только для чтения.

Наборы регистров специального назначения для разных моделей МК приведены в табл.1.4.

Таблица 1.4

Наборы регистров специального назначения

Имя Регистра Модель МК
               
SPL + + + + + + + +
SPH * * * * * * * +
RP + + + + + + + +
FLAGS + + + + + + + +
IMR + + + + + + + +
IRQ + + + + + + + +
IPR + + + + + + + +
P01M + + + + + + + +
P3M + + + + + + + +
P2M + + + + + + + +
PRE0 - - + + + + + +
T0 - - + + + + + +
PRE1 + + + + + + + +
T1 + + + + + + + +
TMR + + + + + + + +
WDTMR - + - + - + + +
SMR - + - + - + + +
PCON - + - + - + + +
SCON - - - + - - - -
RxBUF - - - + - - - -
SCOMP - - - + - - - -
P3 + + + + + + + +
P2 + + + + + + + +
P1 - - - - - - - +
P0 + - + - + + + +

Примечания:1.Наличие регистра отмечено знаком "+".

2.Регистр SPH во всех моделях, кроме 40, используется как

регистр общего назначения GPR (отмечено знаком "*").

При программировании МК следует учитывать способ доступа к регистрам. Чтение регистров, предназначенных только для записи, будет давать результат FFH. Поэтому использование этих регистров в командах, где они считываются (например, в логических командах OR и AND), будет давать неправильный результат. Когда линии портов 0 и 1 определены как выходы адреса, они приобретают статус регистров только для записи. И, наконец, регистр WDTMR должен быть записан в течение первых 64 тактов синхронизации после сброса.

РОНы, с точки зрения системы команд, могут рассматриваться не только как отдельные восьмибитные регистры, но и как шестнадцатибитные пары регистров. При этом должно соблюдаться четное выравнивание, т.е. адрес регистровой пары должен быть четный. При этом старший байт регистровой пары размещается по четному адресу, а младший -по нечетному. В рабочей регистровой группе регистровых пар будет 8, и им соответствуют только четные номера: 0,2,...,14.

Доступ к отдельным битам регистров осуществляется логическими командами с масками.

Функция защиты ОЗУ заключается в том, что старшая часть адресного пространства от 80H до EFH (исключая управляющую группу регистров) может быть защищена от чтения и записи. Бит защиты ОЗУ программируется одновременно с ПЗУ (масочно или электрически). Если этот бит запрограммирован, то функция защиты управляется программно битом D6 регистра IMR. Логическая 1 включает функцию защиты, логический 0 -отключает. Эту функцию имеют только модели МК 30 и 40.

1.2.2.2. Адресное пространство памяти

Адресное пространство памяти состоит из адресного пространства памяти программ и адресного пространства памяти данных. Память программ состоит из внутреннего ПЗУ и внешней памяти. Память данных также является внешней. Структура адресного пространства памяти МК показана на рис.1.3. Доступность фрагментов адресного пространства для различных моделей МК показана на рисунке столбиковой диаграммой.

Рис. 1.3 Структура памяти

Внутреннее ПЗУ имеют все рассматриваемые модели МК. Модели с литерами C и L имеют масочное ПЗУ, а модели с литерой E -однократно -программируемое (One Time Programmable -OTP) ПЗУ. Размер внутреннего ПЗУ составляет для разных моделей МК от 512 байт до 4 Кбайт. Первые 12 байт зарезервированы для векторов прерываний (см. рис.1.3). Эти ячейки содержат 6 шестнадцатибитных векторов прерываний, которые соответствуют 6 возможным запросам прерывания: IRQ0 -IRQ5 (Interrupt Request). Начиная с ячейки 12 (0CH) размещается программа.

Модель 40 имеет возможность подключения внешней памяти программ объемом до 60 Кбайт. Такое подключение возможно с использованием мультиплексных линий адреса/данных (AD7 -AD0) порта 1 и адресных линий (A15 -A8) порта 0. Максимальный адрес внешней памяти программ -65535 (FFFFH). Этот интерфейс внешней памяти поддерживается управляющими линиями /AS, /DS и R//W. Доступ к памяти программ (в том числе и к внешней) осуществляется с помощью программного счетчика для считывания команд, а также командами загрузки констант LDC и LDCI.

Модель 40 также имеет возможность дополнительно адресовать до 60 Кбайт внешней памяти данных с адресами от 4096 (1000H) до 65535 (FFFFH) путем программирования выхода порта 3 P34 на выдачу сигнала /DM (Data Memory), позволяющего аппаратно разделить адресные пространства внешней памяти программ и внешней памяти данных. Обращение к внешней памяти данных осуществляется специальными командами загрузки LDE и LDEI, при исполнении которых сигнал /DM будет иметь активный низкий уровень.

В МК предусмотрен специальный бит защиты ПЗУ (ROM Protect), который программируется одновременно с внутренней памятью программ. Сущность защиты ПЗУ заключается в предотвращении "дампинга" содержимого ПЗУ. Эта функция в более ранних версиях МК реализована путем запрета команд LDC, LDCI, LDE и LDEI. При таком подходе защищенная программа не могла использовать эти команды, что не разрешало программисту реализовывать эффективные алгоритмы с просмотром таблиц. В последних версиях МК использование функции защиты ПЗУ никаких ограничений на программирование не накладывает.

1.2.2.3. Стек

Стек МК Z8 может располагаться во внутреннем ОЗУ или во внешней памяти данных. Размещение стека программируется путем записи бита D2 в регистр режима портов 0 и 1 -P01M. Запись 0 в этот бит задает внешний стек, 1 -внутренний. Такой выбор возможен только для модели 40, имеющей интерфейс внешней памяти, для остальных моделей бит D2 должен быть установлен в 1.

Расположение верхушки стека задается шестнадцатибитным указателем стека, размещенным в регистрах SPH и SPL стандартного регистрового файла. Для всех моделей, кроме модели 40, достаточно восьмибитного указателя стека (т.к. объем внутреннего ОЗУ не превышает 256 байт), и он размещается в регистре SPL. Регистр SPH с адресом FEH используется при этом как регистр общего назначения GPR. Указатель стека декрементируется перед операцией загрузки и инкрементируется после операции извлечения. Его содержимое -это всегда адрес верхушки стека.

Стек МК Z8 -это стек возврата из подпрограмм и прерываний, а также стек данных. При работе МК возможно переполнение стека вниз и вверх. Ответственность за недопустимость переполнения лежит на разработчике программы, иначе результат будет непредсказуем.

1.2.3. Синхронизация

Обобщенная структурная схема синхронизации МК показана на рис 1.4.

Рис. 1.4 Структурная схема синхронизации

Схема состоит из задающего генератора, рассчитанного на подключение внешней времязадающей цепи или внешнего источника синхронизации, делителя частоты на 2 и делителя частоты на 16 (последний в моделях 02, 03, 04, 08 отсутствует). К входным контактам XTAL1 и XTAL2 (eXternal crysTAL) подключается времязадающая цепь, заставляющая генератор формировать синхроимпульсы с частотой XTAL. С выхода синхронизирующей схемы снимаются импульсы внутренней системной синхронизации SCLK (System CLocK) и синхронизации таймеров TCLK (Timer CLocK). Назначение делителя на 2 -формирование сигнала, а делитель на 16 предназначен для уменьшения рабочей частоты синхронизации и, соответственно, потребляемого тока, особенно в резервных режимах HALT и STOP.

Управление частотой в разных моделях МК осуществляется двумя способами. В моделях 02, 04, 08 управление сводится только к переводу схемы в малошумящий режим путем программирования (масочно или электрически) бита малошумящего режима Noise"(см. верхнюю часть рис.1.4.). При этом задающий генератор переводится в малошумящий режим и отключается делитель на 2. Максимальная частота работы генератора в этом режиме ограничивается 4 МГц и несколько снижается нагрузочная способность.

В моделях 03, 06, 30, 31 и 40 управление схемой синхронизации осуществляется путем записи управляющей информации в регистры PCON и SMR в процессе выполнения прикладной программы МК (см. нижнюю часть рис 1.4). Бит D7 регистра PCON управляет режимом задающего генератора, а биты D1 и D0 регистра SMR -делителями на 2 и на 16 соответственно. Логика управления показана на схеме.

 

 

Схема задающего генератора показана на рис 1.5. Генератор построен на основе инвертирующего усилителя постоянного тока A с выполненной внутри кристалла резистивной обратной связью R. Схема генератора рассчитана на подключение внешней времязадающей цепи, являющейся гибкой обратной связью усилителя.

Рис. 1.5 Схема задающего генератора

Для устойчивого самовозбуждения генератора необходимо соблюдение условий баланса амплитуд и баланса фаз на частоте генерации. Условие баланса амплитуд заключается в равенстве 1 произведения коэффициента усиления усилителя на коэффициент передачи цепи обратной связи. Условие баланса фаз требует, чтобы суммарный сдвиг фаз в схеме был равен 0 (360о). Поскольку инвертирующий усилитель дает сдвиг фазы 180о, то цепь обратной связи должна обеспечивать фазовый сдвиг также на 180о.

Этим условиям удовлетворяют схемы времязадающих цепей, показанные на рис.1.6. Генератор может работать с кварцевым или керамическим резонатором, LC -цепью, RC -цепью и внешним генератором. Работа генератора с RC -цепью требует определенной реконфигурации внутренней схемы, что достигается программированием (масочно или электрически) специального бита RC. Такую возможность имеют модели 03, 06, 30, 31, 40. Что касается моделей 02, 04, 08, то возможность запуска от RC - цепи имеют только самые последние версии этих моделей. Устойчивое возбуждение генератора возможно на частотах от 10 КГц до максимальной (см. табл.1.1.).

Рис. 1.6 Времязадающие цепи генератора

1.2.4. Сброс и сторожевой таймер

Функция сброса (Reset) необходима для инициализации важнейших элементов МК: схемы управления и синхронизации, программного счетчика (он устанавливается в состояние 000СН), управляющих регистров и портов (для определения их состояния после сброса для разных моделей МК, см. приложение 1).

Функция сброса активируется в следующих случаях:

- при подаче низкого уровня на вход /RESET (только для модели 40);

- при включении питания VСС;

- при переполнении сторожевого таймера WDT;

- при восстановлении из режима STOP.

В последнем случае (так называемый "теплый" старт) и в случае переполнения сторожевого таймера в режиме STOP порты и управляющие регистры не реинициализируются.

Функция сброса используется также для защиты памяти МК от падения напряжения питания. Это обеспечивается включением функции сброса при падении питающего напряжения VСС ниже порога защиты VLV (Low Voltage) -2-.6 В. Если уровень напряжения не снизится ниже уровня работоспособности КМОП-логики VCMOS (1.2 В), то возможно сохранение содержимого памяти МК и продолжение нормальной работы после восстановления VСС и автосброса. Это позволяет защитить МК от кратковременных "провалов" питающего напряжения.

Пока сброс активен, на выход /AS подаются импульсы внутренней синхронизации, выход /DS имеет низкий потенциал, R//W -высокий.

Обобщенная структурная схема сброса и сторожевого таймера показана на рис. 1.7.

Рис. 1.7. Схема сброса/сторожевого таймера

Схема содержит генератор сигнала внутреннего сброса, синхронизируемого импульсами основного генератора XTAL. Этот генератор обеспечивает минимальную длительность сигнала сброса 18 периодов TpC частоты XTAL. Запуск генератора осуществляется через фильтр длительности в 4 TpC. Иначе говоря, если длительность запускающего сигнала будет меньше 4 TpC, то сброса не произойдет. Если запускающий сигнал длиннее 18 TpC, то сброс будет удерживаться на время этого сигнала плюс 18 TpC.

Объединение сигналов запуска сброса осуществляется по схеме "монтажное ИЛИ", поэтому к внешнему выводу МК /RESET (только для модели 40) можно подключать схемы с выходными каскадами с открытым стоком. Для сброса МК с помощью кнопки SB "Сброс" следует применять внешнюю RC-цепь, показанную на том же рисунке. Для возможности использования RC-цепи вход запуска дополнен триггером Шмитта.

Таймер автосброса POR (Power-On Reset) и сторожевой таймер WDT (Watch-Dog Timer) выполнены в виде пересчетной цепи, которая, в общем случае, синхронизируется от дополнительного RC-генератора GRC или от основного генератора XTAL. Таймер POR имеет для всех моделей постоянное время, а таймер WDT -программируемое (за исключением моделей 02, 03, 04 и 08).

Запуск таймера автосброса POR осуществляется в следующих случаях:

- если уровень VСС поднимается выше уровня VLV;

- если становится активным сигнал восстановления из режима STOP;

- если имеет место окончание счета сторожевого таймера WDT.

В первом случае сигнал запуска вырабатывается специальным компаратором А. Во втором случае паразитные всплески сигнала источника подавляются фильтром 12 нс.

Во всех этих случаях происходит запуск таймера автосброса POR, время задержки которого гарантирует окончание переходных процессов в цепи питания VСС и выход на нормальный режим основного генератора синхронизации XTAL, после чего корректно выполняется внутренний сброс МК.

При восстановлении из режима STOP в случае применения LCили RC-времязадающих цепей основного генератора (см. п.1.2.3) нет необходимости выдерживать задержку автосброса, т.к. эти конфигурации генератора имеют малое время установления. Для сокращения задержки восстановления из режима STOP в этом случае сигнал от источника может быть подан непосредственно на вход запуска генератора сигнала сброса. При этом необходимо, чтобы сигнал от источника восстановления имел длительность не менее 4 TpC.

В МК, имеющих расширенную группу регистров F (модели 03, 06, 30, 31, 40), управление схемой сброса / сторожевого таймера осуществляется с помощью регистров режима сторожевого таймера WDTMR (Watch-Dog Timer Mode Register) и режима восстановления из режима STOP-SMR (STOP-Mode Recovery Register). Логика управления понятна из рисунка. Следует отметить, что поскольку генератор основной синхронизации выключается в режиме STOP, прежде чем перейти в этот режим необходимо, чтобы бит D4 WDTMR был установлен в состояние 0. Необходимо помнить, что регистр WDTMR доступен для записи только в течение первых 64 тактов (128 TpC) процессора после сброса, вызванного любым источником. Назначение разрядов регистра WDTMR полностью показано на рис. 1.8.

Рис. 1.8. Регистр WDTMR

Запуск и обновление сторожевого таймера осуществляется специальной командой WDT в рабочем режиме выполнения программы RUN. После однократного выполнения этой команды сторожевой таймер постоянно разрешен. Поэтому программа МК должна предусматривать периодическое повторение (с периодом, меньшим установленного времени сторожевого таймера) команды WDT. Это должно быть обеспечено программистом. В этом случае, при нормальной работе процессора сторожевой таймер будет периодически перезапускаться и не достигнет состояния окончания счета. При "зависании" процессора сторожевой таймер достигает состояния окончания счета, что вызывает запуск автосброса МК и выполнение программы с начала. Работа WDT в режимах HALT и STOP разрешается путем программирования соответствующих битов D2 и D3 регистра WDTMR. В этом случае, при переходе в соответствующий режим, WDT продолжает свою работу.

В модели 03 сторожевой таймер имеет фиксированную задержку 15 мс (при синхронизации от GRC) или 512TpC (при синхронизации от XTAL), а состояние битов D1 и D0 регистра WDTMR должно быть 01.

В моделях 02, 04



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-07-23 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: