ЛР4(в) > Использование таймера в процессоре TMS320F2812
Статьи по теме
- ЛР5 > Аналогово-цифровой преобразователь процессора TMS320F2812
- ЛР4(г) > Разработка программы обработки прерываний от таймера процессора TMS320F2812
- ЛР4(б) > Механизм управления обработкой прерываний DSP процессора TMS320F2812
- ЛР4(а) > Система прерываний процессора TMS320F2812. Начальная инициализация
- ЛР3 > Работа с портами ввода/вывода процессора TMS320F2812
- ЛР2 > Визуализация данных в среде Code Composer Studio на примере выполнения логических и арифметических операций
- ЛР1 > Знакомство со средой Code Composer Studio. Первый проект
Тема: Таймеры общего назначения, входящие в состав ядра 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» в этом бите.