Скачиваний:
16
Добавлен:
01.05.2014
Размер:
604.16 Кб
Скачать

Блок фиксации/сравнения

Характеристики блока:

16-разрядный таймер с перезагрузкой по переполнению

Изменяемый тактовый сигнал с предварительным делителем частоты, позволяющим делить тактовый сигнал на любое целое число от 1 до 1024

4 выхода сравнения/PWM с изменяемой полярностью

Выбор симметричного/ассиметричного режима PWM

2 канала ввода с счетчиком событий и цифровым противопомеховым заграждающим фильтром

7 уровней (каналов) прерываний с общим вектором прерываний (один – по переполнению, 2 – по вводу, 4 – по сравнению)

Сохранение 16 разрядов чтения/записи посредством регистра теневой памяти

Ccu Clock (ccuclk)

CCU работает по сигналу CCUCLK, в качестве которого может выступать сигнал PCLK в основном режиме таймера или сигнал с выхода PLL (см. рис. 28). PLL предназначен для возможности использования источника тактовых импульсов в диапазоне частот от 0,5 МГц до 1 МГц; этот сигнал умножается на 32, чтобы выработать сигнал CCUCLK с частотой в диапазоне от 16 МГц до 32 МГц в режиме PWM (ассиметричном или симметричном). PLL включает в себя 4-разрядный делитель (PLLDV3:0 биты в регистре TCR21), чтобы реализовать деление сигнала PCLK до частоты в диапазоне от 0,5 МГц до 1 МГц.

Предварительный делитель частоты

Сигнал CCUCLK в дальнейшем может быть поделен с помощью предварительного делителя частоты. Предварительный делитель частоты осуществлен как 10-разрядный независимый счетчик с программируемой загрузкой по переполнению. Запись значения в предварительный делитель частоты вызовет возобновление его работы.

Базовый процесс таймера

Таймер – независимый двунаправленный счетчик с шагом, определяемым предварительным делителем частоты. Таймер запускается установкой битов TMOD21 и TMOD20 в нулевом регистре управления CCU (TCR20), как показано в таблице в описании регистра TCR20 (рис.30).

Бит управления направлением CCU, TDIR2, определяет направление счета. TDIR2=0: прямой счет, TDIR2=1: обратный счет. Если направление счета таймера изменяется во время работы счетчика, последовательность счета будет изменена в противоположную сторону в следующий после записи бита TDIR2 период сигнала CCUCLK. Значение таймера может быть записано или считано в любое время и вновь записанные значения окажут действие, когда предварительный делитель частоты переполнится. Таймер доступен посредством двух регистров SFRs, TL2 (младший байт) и TH2(старший байт). Третий 16-разрядный регистр, TOR2H; TOR2L, определяет загружаемое значение при переполнении. TL2, TH2 и TOR2H, TOR2L будут установлены в 0 после выполнения сброса (reset).

Прямой счет: когда содержимое таймера будет равно FFFFH, в следующий период сигнала CCUCLK в счетчик будет записано содержимое регистра TOR2H:TOR2L.

Обратный счет: когда значение таймера будет равно 0000H, в следующий период сигнала CCUCLK в счетчик будет записано содержимое регистра TOR2H:TOR2L. В течение периода сигнала CCUCLK, когда выполняется загрузка, будет установлен флаг прерывания CCU по переполнению таймера (TOIF2) в регистре флагов прерывания CCU (TIFR2), и если EA-бит в регистре IEN0 и ECCU-бит в регистре IEN1 (IEN1.4) установлены, то выполнение программы будет передано прерыванию по переполнению. Пользователь должен снять флаг прерывания с помощью программного обеспечения, записав логический ‘0’.

При записи значений в регистры перезагрузки, TOR2H и TOR2L, эти значения хранятся в двух 8-разрядных теневых регистрах. Для того, чтобы сохранить содержимое теневых регистров в TOR2H и TOR2L, пользователь должен записать логическую единицу в бит TCOU2, в регистре TCR21. Назначение этого бита зависит от того, работает ли таймер в режиме PWM или в базовом режиме таймера. В базовом режиме таймера запись единицы в TCOU2 вызовет немедленное сохранение значений, а значение TCOU2 всегда будет читаться как ноль. В режиме PWM, запись единицы в TCOU2 приведет к обновлению содержимого теневых регистров при следующем переполнении таймера CCU. Пока в защелку не будут загружены значения, TCOU2 будет читаться как единица и как ноль, когда значения будут загружены. TCOU2 также контролирует загрузку регистров OCR2A, OCR2B и OCR2C.

При записи старшего байта таймера, TH2, записанное значение хранится в теневом регистре. При записи TL2, содержимое теневого регистра, хранящего TH2, переносится в TH2 в то же самое время, когда обновляется TL2. Таким образом, TH2 должен быть записан раньше TL2. Если за записью TL2 следует другая запись TL2 без записи TH2 между ними, значение TH2 будет перенесено прямо в старший байт таймера.

Если 16-разрядный таймер CCU необходимо использовать как 8-разрядный таймер, пользователь может записать FFh (для прямого счета) или 00h (для обратного счета) в TH2. Когда TL2 будет записано, в таймер CCU будет загружено FFh:TH2 (для прямого счета) и 00h (для обратного счета). Пользователю не нужно будет перезаписывать TH2 снова для работы 8-разрядного таймера, пока не будет изменено направление счета.

При чтении значения таймера TL2 должен быть прочитан первым. При чтении TL2 содержимое старшего байта таймера переносится в теневой регистр в течение того же периода, когда выполняется чтение. При чтении TH2 вместо него будет прочитано содержимое теневого регистра. Если за чтением из TL2 следует другое чтение TL2 без чтения содержимого TH2 между ними, старший байт таймера будет перемещен прямо в TH2.

Рис. 29: Регистр управления предварительным делителем частоты CCU

* примечания к рисунку 29:

Not bit addressable – нет побитовой адресации

Reset Source(s): Any reset – источник(и) сброса: любой сброс

Reset Value: хххххх00В – значение после сброса: хххххх00В

Рис. 30: Нулевой регистр управления ССU

* примечания к рисунку 30:

Bit addressable – побитовая адресация

Reset Source(s): Any reset – источник(и) сброса: любой сброс

Reset Value: 00000000В – значение после сброса: 00000000В

Бит

Обозначение

Назначение

TCR20.7

PLLEN

Разрешение работы схемы PLL. 1- начало работы PLL. После …, он будет читаться как единица.

TCR20.6

HLTRN

Остановка PWM. Когда этот бит установлен в 1, это показывает, что остановка имела место. Для того, чтобы возобновить PWM, пользователь должен снять этот бит (установить его в 0).

TCR20.5

HLTEN

Разрешение остановки PWM. Когда это бит устанавливается в 1, ввод, разрешенный на канале А, немедленно остановит деятельность на входах PWM и установит их в предопределенное состояние.

TCR20.4

ALTCD

Разрешение поочередного вывода каналов C/D PWM. Когда этот бит установлен, на выходе PWM каждый период счетчика чередуются каналы C и D.

TCR20.3

ALTAB

Разрешение поочередного вывода каналов A/B PWM. Когда этот бит установлен, на выходе PWM каждый период счетчика чередуются каналы А и В.

TCR20.2

TDIR2

Направление счета таймера CCU. 0 - прямой счет, 1 - обратный счет.

TCR20.1-0

TMOD21,TMOD20

TMOD20,TMOD21

00

01

10

11

Выбор режима таймера CCU

Таймер остановлен

Основная функция таймера

Асимметричный PWM (PLL используется как источник

Симметричный PWM тактовых импульсов)

Соседние файлы в папке Материалы по микропроцессорам