- •3. Особенности элементов структуры 80c51 gb Расположение выводов микроконтроллеров группы 8xc51gb
- •3.1 Функциональные особенности кристаллов 8xc51gb
- •3.2 Порты I/o p0-p5
- •Альтернативные функции выводов портов 0-5
- •3.3 Система прерываний 8xc51gb
- •Вектора прерываний
- •Регистр iе
- •Регистр iеа
- •Регистр ip
- •Регистр iрн кристаллов 8xc51gb
- •Регистр ipа кристалла 8xc51gb
- •Регистр iрна кристаллов 8xc51gb
- •Регистр exicon
- •3.4 Узел ацп Функциональная схема ацп
- •Регистр результата сравнения асмр
- •Регистр управления ацп acon
- •3.5 Аппаратный сторожевой таймер
- •3.6 Обнаружение сбоя тактового генератора
- •3.7 Матрица программируемых счётчиков рса
- •Регистр управления рса - ccon
- •Режимы работы модулей сравнения/фиксации
- •16-Битный режим фиксации.
- •16-Битный режим фиксации рса
- •16-Битный режим сравнения: программный таймер и высокоскоростной выход
- •Режим сторожевого таймера
- •Режим широтно-импульсного модулятора
- •Соответствие имён регистров и битов узлов рса и рса1
- •3.8 Расширенный последовательный порт
- •Режимы работы порта sep
- •Регистр управления sepcon
- •Регистр состояния sepstat
- •3.9 Таймеры/счетчики
3.6 Обнаружение сбоя тактового генератора
Цепь обнаружения сбоя тактового генератора - OFD - предназначена для осуществления сброса микроконтроллера, если частота тактового генератора становится ниже предела, отражённого в разделе "Технические характеристики". В случае невосстановления тактовой частоты при сбросе микросхема остаётся в этом состоянии. Превышение частоты сверх установленных границ не приводит к сбросу микроконтроллера.
Цепь OFD включается по умолчанию при аппаратном сбросе микросхемы или её выходе из режима микропотребления по сбросу или внешнему прерыванию. OFD предназначена для обнаружения серьёзных сбоев тактового генератора, как, например, повреждение кварцевого резонатора и не может определить скачкообразное изменение частоты в пределах нормального диапазона.
В режиме микропотребления тактовый генератор остановлен. Поэтому для предупреждения самопроизвольного перезапуска микросхемы необходимо запретить работу цепи OFD перед установкой бита PD. Запись последовательности 0E1h,01Eh в регистр OSCR (физический адрес - A5h) приведёт к отключению обнаружения сбоев тактового генератора. Разрешить работу цепи заново можно лишь общим сбросом, либо выходом из режима микропотребления по внешнему прерыванию.
Состояние OFD может быть определено путём чтения регистра OSCR. При OSCR=0FFh -обнаружение сбоев разрешено, при OSCR=0FEh - запрещено.
3.7 Матрица программируемых счётчиков рса
В составе микросхемы 8XC51GB, имеется матрица программируемых счётчиков. Основной отличительной чертой микроконтроллеров типа 8XC51FX, 8XL51FX и более поздних от базового кристалла 8Х51 является наличие матрицы программируемых счётчиков или РСА. Данная многофункциональная структура предназначена для выполнения целого спектра операций с применением таймеров/счётчиков и позволяет увеличить производительность CPU за счёт минимизации числа обращений к нему по сравнению с такими кристаллами, как 8Х51, 8Х52 и т.п. По этому же удается уменьшить объём и сложность необходимого программного обеспечения.

Матрица программируемых счётчиков
РСА состоит из 1-го таймера/счётчика и 5-ти 16-битных модулей фиксации/сравнения, изображённых на Таймер/счётчик является общим для всех модулей, а также единственным, который может ими использоваться. Входной синап может подаваться на него с одного от следующих источников:
• Fclc/12;
• Fclc/4;
• Сигнал переполнения Т/СО;
• * Внешний вывод ECI (Р1.2).
Каждый модуль фиксации/сравнения может быть запрограммирован на один из следующих режимов:
• фиксация увеличения и/или уменьшения кромки;
• программный таймер;
• высокоскоростной выход;
• сторожевой таймер (только для модуля 4);
• широтно-импульсный модулятор.
Когда модуль сравнения/фиксации запрограммирован на режим фиксации, программного таймера или высокоскоростного выхода, возможна генерация соответствующего ему прерывания. Все 5 модулей и таймер/счётчик разделяют один и тот же вектор – 0033h, описанный несколько ниже. Для ввода/вывода таймер/счётчик и модули сравнения/фиксации используют выводы порта 1, как показано в таблице. Если соответствующий модуль не задействован, то вывод порта используется по своему прямому назначению.
Использование порта 1 для РСА
-
компонент РСА
вывод порта 1
16-битный счётчик
Р1.2/ЕС1
16-битный модуль 0
Р1.3/СЕХО
16-битный модуль 0
Р1.4/СЕХ1
16-битный модуль 0
Р1.5/СЕХ2
16-битный модуль 0
Р1.6/СЕХЗ
16-битный модуль 0
Р1.7/СЕХ4
16-разрядный таймер/счётчик РСА (рис. 6.3) состоит из регистров СН и CL (соответственно старший и младший байты счётчика). Эти 2 регистра постоянно доступны для чтения и записи. Как говорилось выше, тактовый сигнал может поступать от одного из следующих источников:
• Fclc/12 (Режим 0) - регистр CL инкрементируется в фазе SSP2 каждый машинный цикл (при тактовой частоте 16 Mhz период инкремента составляет 750 ns);
• Fclc/4 (Режим 1) - регистр CL инкрементируется в фазах S1P2, S3P2 и SSP2 каждый машинный цикл (при тактовой частоте 16 Mhz период инкремента составляет 250 ns);
• Сигнал переполнения Т/С0 (Режим 2) - регистр CL инкрементируется в фазе SSP2 при переполнении таймера 0. Этот режим позволяет программировать входную частоту РСА;
• Внешний вывод ЕС1 (Р1.2) (Режим 3) - регистр CL инкрементируется при каждом отрицательном перепаде (из "1" в "0") на выводе ECI (Р1.2). Проверка данного вывода производится в фазах S1P2, S3P2 и SSP2 машинного цикла. Таким образом, максимальная частота по входу ECI может составлять. Fosc/8.
Старший байт счётчика (регистр СН) инкрементируется спустя 2 периода тактового генератора после переполнения младшего бита (CL).
Регистр режима счётчика РСА (CMOD)
Содержит биты выбора источника входного сигнала таймера/счётчика CPS1 и CPS0, бит разрешения прерывания по переполнению счётчика ECF, а также биты CIDL - отключения таймер/счётчика во время режима холостого хода и WDTE (Watchdog Timer Enable) - разрешение сторожевого таймера для модуля 4. На рис.6.4 эти биты описаны более подробно. Байтный адрес данного регистра - 0D9h, значение по сбросу - 00ххх000b.
Регистр режима РСА – CMOD
MSB LSB
-
CIDL
WDTE
-
-
-
CPS1
CPS0
ECF
|
Бит |
Поз. |
Функция присвоения приоритета прерывания |
|
CIDL |
CMOD.7 |
CIDL=0 – продолжение нормального фунгкционирования счётчика РСА во время режима Idle CIDL=1 - счёт во время режима Idle прекращается |
|
WDTE |
CMOD.6 |
WDTE=0 - запрет функции "сторожевой таймер" РСА-модуля 4 WDTE=1 - разрешение функции "сторожевой таймер" |
|
- |
CMOD.5 |
Зарезервировано для дальнейшего использования |
|
- |
CMOD.4 |
Зарезервировано для дальнейшего использования |
|
- |
CMOD.3 |
Зарезервировано для дальнейшего использования |
|
CPS1 |
CMOD.2 |
Выбор источника тактирования РСА, ,бит 1 |
|
CPS0 |
CMOD.1 |
Выбор источника тактирования РСА, .бит 0 |
|
ECF |
CMOD.0 |
Разрешение прерывания по переполнению счётчика РСА: ECF=1 - установка бита CF регистра CCON разрешена ECF=0 - запрещена. |
Регистр управления счётчика РСА (CON)
Содержит 2 бита, связанные с таймером/счётчиком РСА. Бит CF - устанавливается аппаратно - по переполнению счётчика. Бит CR включает или выключает счётчик. Остальные 5 бит данного регистра - флаги событий модулей сравнения/фиксации РСА. На рис. 6.5 эти биты описаны более подробно. Байтный адрес данного регистра - 0D8h, значение по сбросу - 00х00000b.
MSB LSB
-
CF
CR
-
CCF4
CCF3
CCF2
CCF1
CCF0
|
Бит |
Поз. |
Функция присвоения приоритета прерывания |
|
CF |
CMOD.7 |
Флаг переполнения счётчика РСА. Устанавл. аппаратно и вызывает прерывание в случае, если бит ECF регистра CMOD установлен в 1. Может устанавл. в 1 как аппаратно, так и программно, а очищаться - только программно. |
|
CR |
CMOD.6 |
Бит управления включением счётчика РСА: CR=1 - счётчик включён, CR=0 –выключен |
|
- |
CMOD.5 |
Зарезервировано для дальнейшего использования |
|
CCF4 |
CMOD.4 |
Флаг прерывания модуля 4 РСА. Устанавл. аппаратно по равенству и фиксации значения. Очищается программно. |
|
CCF3 |
CMOD.3 |
Флаг прерывания модуля 3 РСА |
|
CCF2 |
CMOD.2 |
Флаг прерывания модуля 2 РСА |
|
CCF1 |
CMOD.1 |
Флаг прерывания модуля 1 РСА |
|
CCF0 |
CMOD.0 |
Флаг прерывания модуля 0 РСА |
Модули сравнения/фиксации.
Каждый из 5 модулей сравнения/фиксации может быть запрограммирован на выполнение одной из 6-ти функций:
• 16-битная фиксация, запускаемая по положительному фронту;
• 16-битная фиксация, запускаемая по отрицательному фронту;
• 16-битная фиксация, запускаемая по положительному и отрицательному фронту;
• 16-битный программный таймер;
• 16-битный высокоскоростной выход;
• 8-битный широтно-импульсный модулятор.
Дополнительно модуль 4 может использоваться как сторожевой таймер. Все модули могут быть запрограммированы в любых комбинациях вышеперечисленных режимов. Каждый модуль имеет регистр режима, именуемый ССАРМn (где n=0,1,2,3,4) и используемый для выбора функции конкретного модуля. Структура данных регистров показана на рисунке 6.6. Байтный адрес регистров ССАРМ0-ССАРМ4 равен, соответственно, 0DAh- 0DEh, значение по сбросу – х0000000b.
