Тактовый генератор

Стек

Стек – память данных, организованная по принципу: последний зашел – первый вышел (LIFO – Last In First Out). Такая память предназначается, обычно, для оперативного сохранения содержимого отдельных регистров при переходах к подпрограммам. Одним из таких регистров является программный счетчик. Извлечение из стека не требует знания адреса ячеек памяти, в которые записываются данные.

Стек может быть организован либо в специально созданных в ядре ячейках памяти, либо в области SRAM. В последнем случае в ядре предусматривается специальный регистр – указатель стека (Stack Pointer). Указатель стека хранит адрес последний записанной ячейки памяти в области стека. Поскольку при последовательной записи адреса ячеек всегда изменяются последовательно в сторону уменьшения, а при изображении памяти SRAM ячейки с меньшими номерами рисуются сверху, то говорят, что стек при записи растет вверх.

Количество ячеек памяти (количество уровней стека), которые используются в стеке для хранения данных, именуется глубиной стека. Глубина стека в различных архитектурах может быть различна: от 2-х ячеек до размера SRAM. Указатель стека (SP) указывает на область в статической памяти данных, в которой размещается стек. Начальное значение указателя стека должно задаваться в программе до первого вызова подпрограмм. Содержимое указателя стека уменьшается на единицу, при каждом занесении данных в стек, и на две единицы при занесении в стек содержимого программного счетчика. Указатель стека увеличивается на единицу, при извлечении данных из стека, и на две единицы при извлечении из стека содержимого программного счетчика. Для работы со стеком в системе команд микроконтроллера предусматриваются специальные инструкции PUSH и POP.

Синхронизация микроконтроллеров 8051 осуществляется с использовани­ем внутреннего инвертирующего усилителя, который может быть превра­щен в синхрогенератор посредством подключения к выводам XTAL1 и XTAL2 внешнего кварцевого резонатора. Вывод XTAL1 является входом, а вывод XTAL2 выходом внутреннего усилителя. Для синхронизации может быть использован и внешний синхрогенератор.

Простейшим и наиболее дешевым считается внутренний (реализованный на кристалле) RC-генератор. Он строится без внешних компонентов, но на частоту колебаний такого генератора влияет напряжение питания и температура. Для повышения стабильности к схеме внутреннего тактового генератора подсоединяются внешние высокостабильные времязадающие компоненты: кварцевые или керамические резонаторы. В ряде случаев микроконтроллеры используются с внешними схемами тактовых генераторов. Это также обеспечивает высокую точность отсчета времени и, при необходимости, позволяет синхронизировать работу сразу нескольких устройств. Некоторые схемы, могут работать с различными генераторами.

Внешний RC-генератор является простым решением, позволяющим изменять тактовую частоту. Но частота такого RC-генератора, как и генератора внутреннего, зависит от напряжения питания и температуры. Кроме того, частота может быть различной у различных изделий. Внешняя времязадающая RC-цепь генератора подключается к выводам микроконтроллера по схеме рис. 1.2 (а).

Рисунок 1.2 Подключение RC-цепей, резонаторов и внешних генераторов.

 

Сопротивление резистора R допускается варьировать в диапазоне от 3 до 100 кОм, а емкость С не должна быть менее 20 пФ. Типовые значения параметров приведены в таблице 5.1.

Таблица 1.5 Типовые параметры внешнего RC-генератора

R [кОм] С [пФ] Р[кГц]
31.5
6.5

 

Кварцевый или керамический резонатор подключается к микроконтроллеру по схеме рис. 1.2 (б). Частота колебаний в этом случае определяется резонансной частотой кристалла. Емкость конденсаторов С1, С2 подбирается в диапазоне 13.. .40 пФ.

Внешний генератор просто подключается к выводу XTAL1 микроконтроллера (рис 1.2 в). В качестве внешнего генератора можно использовать любую схему генератора с ТТЛ-выходом. Внешние генераторы, как правило, обладают высокой стабильностью и предсказуемостью параметров.

Кварцевый резонатор, подключаемый к внешним выводам микроконтроллера, управляет работой внутреннего генератора, который в свою очередь формирует сигналы синхронизации. Устройство управления (CU) на основе сигналов синхронизации формирует машинный цикл фиксированной длительности, равной 12 периодам резонатора. Большинство команд микроконтроллера выполняется за один машинный цикл. Некоторые команды, оперирующие с 2-байтными словами или связанные с обращением к внешней памяти, выполняются за два машинных цикла. Только команды деления и умножения требуют четырех машинных циклов. На основе этих особенностей работы устройства управления производится расчёт времени исполнения прикладных программ.

Входные и выходные сигналы устройства управления и синхронизации:

Ø PSEN – разрешение программной памяти,

Ø ALE – выходной сигнал разрешения фиксации адреса,

Ø PROG – сигнал программирования,

Ø EA – блокировка работы с внутренней памятью,

Ø VPP – напряжение программирования,

Ø RST – сигнал общего сброса,

Ø VPD – вывод резервного питания памяти от внешнего источника,

Ø XTAL – входы подключения кварцевого резонатора.