9.4.1. Структура счетчика временной базы

(Руководство разработчика по микроконтроллерам семейства HCS08)

Структурная схема подсистемы счетчика временной базы в составе модуля TPM представлена на Рис.9.4. Основные элементы счетчика временной базы — это 16-битный реверсивный счетчик TPMCNT, 16-битный регистр периода TPMMOD и цифровой компаратор.

По умолчанию (TPMSC:CPWMS = 0) счетчик работает в режиме сложения до момента достижения его кодом значения, которое записано в регистре периода TPMMOD. Когда TPMCNT = TPMMOD, счетчик TPMCNT автоматически сбрасывается, значение регистра сбрасывается, и устанавливается флаг переполнения TOF в регистре TPMSC. Этот флаг называют также триггером события счетчика временной базы. Если бит TOIE в регистре TPMSC установлен, то формируется запрос на прерывание. Флаг TOF сбрасывается путем записи в него логического 0.

Рис.9.4. Структурная схема счетчика временной базы в составе модуля TPM.

Счетчик может тактироваться одним из трех источников: тактовым сигналом BUSCLK, внешним тактовым сигналом XCLK модуля ICS/ICG или внешним источником тактирования модуля TPMCLK. Источник тактирования выбирается битами CLKSB и CLKSA в регистре TPMSC. Коды для выбора источника приведены в Табл.9.7.

Таблица9.7. Выбор источника тактирования модуля TPM

CLKSBCLKSAИсточник тактирования
00Система тактирования отключена (модуль TPM остановлен)
01Источник тактирования — BUSCLK
10Источник тактирования — XCLK
11Источник тактирования — сигнал на входе TPMCLK

Вход внешнего тактирования в МК серий GB, GT, RC, RD, RE и RG отсутствует!

Когда в качестве источника тактирования выбран внешний генератор (опция XCLK или TPMCLK), сигнал тактирования предварительно обрабатывается схемой синхронизации, которая ограничивает максимальную частоту тактирования одной четвертью частоты BUSCLK.

Далее тактовый сигнал поступает на вход программируемого делителя. Коэффициент деления выбирается битовым полем PS2, PS1 и PS0 регистра TPMSC и может быть установлен равным 1, 2, 4, 8, 16, 32, 64 или 128. Сигнал с выхода делителя TPMCLK тактирует счетчик временной базы модуля TPM.

Частота fTPMCK сигнала TPMCK рассчитывается по следующей формуле:

,

где fTPMCK — частота тактирования счетчика TPMCNT;
fSOURCE — частота первичного источника тактирования;
Делитель — коэффициент деления, выбранный битами PS регистра TPMSC.

Далее легко определить частоту, с которой устанавливается флаг переполнения TOF:

,

где TPMMOD — код периода, записанный в регистр TPMMOD.

Текущее значение счетчика TPMCNT можно считать из регистра TPMCNT (TPMCNTH и TPMCNTL — старший и младший байты этого регистра). Попытка записи в любой из байтов счетчика TPMCNT приведет к его сбросу. Для предотвращения искажения данных используется аппаратное буферирование или «механизм защелки», принцип действия которого описан далее в это главе.

charlower_TPMCNT,higher_TPMCNT;
...
lower_TPMCNT=TPMCNTL;
higher_TPMCNT=TPMCNTH;

Благодаря последовательному размещению регистров TPMCNTL и TPMCNTH в памяти, считывать значение регистра TMPCNT можно с помощью операций над двухбайтными операндами (например, LDHX и STHX):

unsignedintmy_TPMCNT;
...
my_TPMCNT=TPMCNT;
//Болееэффективно,посколькуиспользуютсякомандыLDHXиSTHX!

Изменение значение двухбайтного регистра периода TPMMOD также возможно путем отдельных операций над младшим TPMMODL и старшим TPMMODH байтами этого регистра. Но более эффективно использовать операции чтения/записи сразу двух байтов регистра TPMMOD:

TPMMODH=0x12;
TPMMODL=0x34;

или:

TPMMOD=0x1234;//Болееэффективно!

Если бит CPWMS в регистре TPMSC установлен в 1, то счетчик временной базы работает в реверсивном режиме, т.е. начинает счет с 0, далее увеличивает код и при достижении значения, записанного в регистр TPMMOD, меняет направление счета: при достижении нулевого значения направление счета снова изменяется. Этот реверсивный режим особенно полезен при использовании счетчика для генерации сигналов двусторонней ШИМ.

Количество модулей TPM и каналов для устройств разных серий показано в Табл.9.8.

Таблица9.8. Модули TPM в составе HCS08

Серия
МК
Имя модуля
TPM
Число каналов
AWTPM16
TPM22
ACTPM14
TPM22
TPM32
DN, DV, DZTPM16
TPM22
ELTPM14
TPM22
ENTPM14
GB(A)TPM13
GT(A)TPM25
JMTPM16
TPM22
LCTPM12
TPM22
QATPM1
QDTPM12
TPM21
QETPM13
TPM23
TPM 36
QGTPM2
RC, RD, RE, RGTPM12
SG, SH, SLTPM12
TPM22

9.4.1.1. Внешний сигнал тактирования

Если биты CLKSA:CLKSB регистра TPMSC установлены в 1, то счетчик временной базы тактируется внешним генератором, который должен быть подключен к выводу TPMCLK. Данный вход МК автоматически конфигурируется на ввод, несмотря на состояние регистра направления передачи PTxDD соответствующего порта. В Табл.9.9 показаны выводы МК семейства HCS08, используемые в качестве входа для внешнего генератора модуля TPM.

Таблица9.9. Входы для внешнего тактирования модуля TPM

Серия
МК
Вход тактированияАльтернативные функции
AWTPM1CLKPTD6
TPM2CLKPTD4
ACTPM1CLK1RQ/TPMCLK
TPM2CLKIRQ/TPMCLK
TPM3CLKIRQ/TPMCLK
DN, DV, DZTPM1CLKPTF2
TPM2CLKPTF3
ELTPM1CLKPTAO
TPM2CLKPTAO
ENTPM1CLKPTF2
GB(A), GT(A)TPM1CLK
TPM2CLK
JMTPM1CLKIRQ/TPMCLK
TPM2CLKIRQ/TPMCLK
LCTPM1CLKPTC7
TPM2CLKPTC7
QATCLKPTA5
QDTPM1CLKPTA2
TPM2CLKPTA3
QETPM1CLKPTA5
TPM2CLKPTEO
TPM3CLKPTE7
QGTPMCLKPTA5
RCRD, RE,RGTPM1CLK
SG, SH, SLTPM1CLKPTA5
TPM2CLKPTA5

Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>