ЛР4(в) > Использование таймера в процессоре TMS320F2812

Тема: Таймеры общего назначения, входящие в состав ядра TMS320F2812, регистр установки Timer Divide-Down, регистры управления таймерами

Для выполнения работы нам понадобится еще одно устройство – таймер. В состав процессорного ядра TMS320F2812 входят три таймера общего назначения. Таймер 1 и таймер 2 зарезервированы для использования с операционной системой реального времени DSP-BIOS, таймер 0 доступен для пользовательских приложений. Структурная схема таймера общего назначения представлена на рисунке 8.

Скачать Материалы к лабораторной работе по ЦСП ТМS320F2812 №4.

 


Рисунок 8. Структурная схема таймера общего назначения [1].

 В качестве тактового сигнала для таймера используется внутренняя тактовая частота SYSCLKOUT, которая совпадает с тактовой частотой процессорного ядра. Работа таймера разрешается установкой соответствующего значения бита (бит 4 регистра управления таймером TIMERxTCR). В этом случае, входные тактовые импульсы поступают на 16-разрядный предварительный счетчик-делитель частоты PSCH:PSC (Prescale Counter), который работает на уменьшение своего значения. Возникающий при переходе через нулевое значение счетчика-делителя сигнал заема (переполнения), служит счетным импульсом для 32-разрядного счетчика-регистра таймера TIMERxTIMH:TIM (Counter). При переходе через нулевое значение счетчика-регистра таймера, вырабатываемый им сигнал заема (переполнения) служит одновременно сигналом запроса на прерывание TINTx. Запросы на прерывание от таймера 1 и таймера 2 поступают непосредственно в процессорное ядро по линиям INT13 и INT14 соответственно. Прерывание от таймера 0 проходит через контроллер управления прерываниями от периферии (INT1.7 – первая группа, седьмой вектор), а затем попадает в процессорное ядро по линии INT1.

    16-разрядный регистр значения коэффициента деления TDDRH:TDDR (Timer Divide-Down) служит для хранения значения коэффициента деления входной частоты, которое загружается в счетчик-делитель частоты после его переполнения.

    32-разрядный регистр периода TIMERxPRDH:PRD (Timer Period) служит для хранения значения периода, которое загружается в счетчик-регистр таймера после его переполнения.

    Адреса и назначение конфигурационных и управляющих регистров таймера 0 представлены в таблице 5 [5].

 

Таблица 5. Конфигурационные и управляющие регистры таймера 0 [5].

Наименование

Адрес

Назначение

TIMER0TIM

0x00 0C00

Младший счетчик-регистр таймера 0

TIMER0TIMH 

0x00 0C01

Старший счетчик-регистр таймера 0 

TIMER0PRD 

0x00 0C02 

Младший регистр периода таймера 0 

TIMER0PRDH 

0x00 0C03 

Старший регистр периода таймера 0 

TIMER0TCR 

0x00 0C04 

Регистр управления таймера 0 

Резерв 

0x00 0C05

Не используется 

TIMER0TPR

0x00 0C06

Младший регистр установок таймера 0

TIMER0TPRH 

0x00 0C07 

Старший регистр установок таймера 0 

 

    Старший байт регистра установок таймера 0 TIMER0TPRH:TPR занимает предварительный счетчик-делитель частоты PSCH:PSC. Младший байт этого регистра занимает регистр значения коэффициента деления TDDRH:TDDR. Структура регистра управления таймера 0 представлена на рисунке 9 [5].

 


Рисунок 9. Регистр управления таймера 0 [5]

 

Назначение бит в регистре управления таймером 0 следующее:

бит 15 TIF – флаг запроса на прерывание от таймера 0. Устанавливается в состояние логической «1» при переходе через ноль счетчика-регистра таймера. Сбрасывается в исходное состояние программно – записью логической «1» в этот бит;

– бит 14 TIE – бит разрешения прерывания от таймера 0. Установка этого бита в состояние логической «1» разрешает обрабатывать запросы на прерывание, формируемые таймером 0;

бит 11 FREE и бит 10 SOFT – определяют режимы работы таймера. Если бит 11 установлен в состояние логического «0», то таймер работает в одном из отладочных режимов (определяется состоянием бита 10). Если бит 11 установлен в состояние логической «1», то таймер работает в нормальном режиме;

– бит 5 TRB – бит управления перезаписью. Установка этого бита в состояние логической «1» вызывает перезапись значения регистра TIMER0PRDH:PRD в регистр TIMER0TIMH:TIM и значения регистра TDDRH:TDDR в регистр PSCH:PSC;

– бит 4 TSS – бит останова таймера. Состояние этого бита разрешает/запрещает работу таймера. Для останова таймера данный бит необходимо установить в состояние логической «1». Запуск таймера осуществляется установкой состояния логического «0» в этом бите.