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
CLKSB | CLKSA | Источник тактирования |
---|---|---|
0 | 0 | Система тактирования отключена (модуль TPM остановлен) |
0 | 1 | Источник тактирования — BUSCLK |
1 | 0 | Источник тактирования — XCLK |
1 | 1 | Источник тактирования — сигнал на входе 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 приведет к его сбросу. Для предотвращения искажения данных используется аппаратное буферирование или «механизм защелки», принцип действия которого описан далее в это главе.
...
lower_TPMCNT=TPMCNTL;
higher_TPMCNT=TPMCNTH;
Благодаря последовательному размещению регистров TPMCNTL и TPMCNTH в памяти, считывать значение регистра TMPCNT можно с помощью операций над двухбайтными операндами (например, LDHX и STHX):
...
my_TPMCNT=TPMCNT;
//Болееэффективно,посколькуиспользуютсякомандыLDHXиSTHX!
Изменение значение двухбайтного регистра периода TPMMOD также возможно путем отдельных операций над младшим TPMMODL и старшим TPMMODH байтами этого регистра. Но более эффективно использовать операции чтения/записи сразу двух байтов регистра TPMMOD:
TPMMODL=0x34;
или:
Если бит CPWMS в регистре TPMSC установлен в 1, то счетчик временной базы работает в реверсивном режиме, т.е. начинает счет с 0, далее увеличивает код и при достижении значения, записанного в регистр TPMMOD, меняет направление счета: при достижении нулевого значения направление счета снова изменяется. Этот реверсивный режим особенно полезен при использовании счетчика для генерации сигналов двусторонней ШИМ.
Количество модулей TPM и каналов для устройств разных серий показано в Табл.9.8.
Таблица9.8. Модули TPM в составе HCS08
Серия МК | Имя модуля TPM | Число каналов |
---|---|---|
AW | TPM1 | 6 |
TPM2 | 2 | |
AC | TPM1 | 4 |
TPM2 | 2 | |
TPM3 | 2 | |
DN, DV, DZ | TPM1 | 6 |
TPM2 | 2 | |
EL | TPM1 | 4 |
TPM2 | 2 | |
EN | TPM1 | 4 |
GB(A) | TPM1 | 3 |
GT(A) | TPM2 | 5 |
JM | TPM1 | 6 |
TPM2 | 2 | |
LC | TPM1 | 2 |
TPM2 | 2 | |
QA | TPM | 1 |
QD | TPM1 | 2 |
TPM2 | 1 | |
QE | TPM1 | 3 |
TPM2 | 3 | |
TPM 3 | 6 | |
QG | TPM | 2 |
RC, RD, RE, RG | TPM1 | 2 |
SG, SH, SL | TPM1 | 2 |
TPM2 | 2 |
9.4.1.1. Внешний сигнал тактирования
Если биты CLKSA:CLKSB регистра TPMSC установлены в 1, то счетчик временной базы тактируется внешним генератором, который должен быть подключен к выводу TPMCLK. Данный вход МК автоматически конфигурируется на ввод, несмотря на состояние регистра направления передачи PTxDD соответствующего порта. В Табл.9.9 показаны выводы МК семейства HCS08, используемые в качестве входа для внешнего генератора модуля TPM.
Таблица9.9. Входы для внешнего тактирования модуля TPM
Серия МК | Вход тактирования | Альтернативные функции |
---|---|---|
AW | TPM1CLK | PTD6 |
TPM2CLK | PTD4 | |
AC | TPM1CLK | 1RQ/TPMCLK |
TPM2CLK | IRQ/TPMCLK | |
TPM3CLK | IRQ/TPMCLK | |
DN, DV, DZ | TPM1CLK | PTF2 |
TPM2CLK | PTF3 | |
EL | TPM1CLK | PTAO |
TPM2CLK | PTAO | |
EN | TPM1CLK | PTF2 |
GB(A), GT(A) | TPM1CLK | — |
TPM2CLK | — | |
JM | TPM1CLK | IRQ/TPMCLK |
TPM2CLK | IRQ/TPMCLK | |
LC | TPM1CLK | PTC7 |
TPM2CLK | PTC7 | |
QA | TCLK | PTA5 |
QD | TPM1CLK | PTA2 |
TPM2CLK | PTA3 | |
QE | TPM1CLK | PTA5 |
TPM2CLK | PTEO | |
TPM3CLK | PTE7 | |
QG | TPMCLK | PTA5 |
RCRD, RE,RG | TPM1CLK | — |
SG, SH, SL | TPM1CLK | PTA5 |
TPM2CLK | PTA5 |
Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>