Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > ARM

реклама

 




Мероприятия:




33.5 Функциональное описание

33.5.1 Описание таймера-счетчика

Все три канала таймера-счетчика полностью независимы и функционируют идентично. Регистры для программирования канала приведены в таблице 33.4.

33.5.1.1 16-разрядный счетчик

Каждый канал выполнен на основе 16-разрядного счетчика. Значение счетчика инкрементируется по каждому нарастающему фронту выбранного источника синхронизации. Если счетчик достигает значения 0xFFFF и переходит в состояние 0x0000, возникает переполнение и устанавливается бит COVFS в регистре статуса TC_SR (регистр статуса). Текущее значение счетчика доступно в масштабе реального времени путем чтения регистра значения счетчика TC_CV. Счетчик может сбрасываться (установка значения 0x0000) по следующему действительному фронту выбранного сигнала синхронизации.

33.5.1.2 Выбор синхронизации

На блочном уровне, входные сигналы синхронизации каждого канала могут подключаться либо к внешним входам TCLK0, TCLK1 или TCLK2, либо к конфигурируемым сигналам ввода-вывода TIOA0, TIOA1 или TIOA2 для организации каскадного соединения, для чего необходимо запрограммировать TC_BMR (режим блока). См. рисунок 33.2. Для каждого канала можно раздельно выбирать, какой сигнал синхронизации, внутренний или внешний, будет выступать в качестве источника синхронизации своего счетчика:

  • Внутренние сигналы синхронизации: TIMER_CLOCK1, TIMER_CLOCK2, TIMER_CLOCK3, TIMER_CLOCK4, TIMER_CLOCK5
  • Внешние сигналы синхронизации: XC0, XC1 или XC2. Выбор этих сигналов выполняется с помощью бит TCCLKS в регистре режима канала ТС.

Для выбранного источника синхронизации можно включить функцию инвертирования с помощью бита CLKI в регистре TC_CMR. Данная функция позволяет реализовать счет по противоположным фронтам сигнала синхронизации.

Если активизировать функцию BURST, то выбранный сигнал синхронизации будет действителен, если заданный внешний сигнал будет иметь высокий уровень (операция И с внешним сигналом). Параметр BURST в регистре режима позволяет выбрать этот сигнал (нет выбора, XC0, XC1 или XC2).

Прим: во всех случаях, когда используется внешняя синхронизация, длительность каждого из ее уровней должна быть дольше периода главной синхронизации. Частота внешней синхронизации должна быть хотя бы в 2.5 раза меньше частоты главной синхронизации.

Выбор синхронизации
Рисунок 33.2. Выбор синхронизации

33.5.1.3 Управление синхронизацией

Синхронизация каждого счетчика может управляться двумя разными способами: разрешение/запрет или запуск/останов (см. рисунок 33.3).
  • синхронизация может быть разрешена или запрещена пользователем с помощью команд CLKEN и CLKDIS в регистре управления. В режиме захвата, синхронизация отключается при возникновении события загрузки регистра В (RB), при условии, что установлен бит LDBDIS в регистре TC_CMR. В режиме генератора синхронизация отключается, если возникает событие совпадения регистра С (RC) со счетчиком, но при условии, что установлен бит CPCDIS в регистре TC_CMR. После отключения, попытки старта или останова не оказывают никакого эффекта: только команда CLKEN в регистре управления может возобновить синхронизацию. Если синхронизация разрешена, то в регистре статуса устанавливается бит CLKSTA.
  • Синхронизация может быть также запущена или остановлена: синхронизация запускается по команде (программно, синхросигнал, внешний сигнал или при срабатывании функции отслеживания совпадения). Останов синхронизации происходит при возникновении события загрузки регистра B (RB) в режиме захвата (LDBSTOP = 1 в TC_CMR) или при возникновении события совпадения с регистром С (RC) в режиме генератора (CPCSTOP = 1 в TC_CMR). Команды запуска и останова действительны только при условии работы синхронизации.


Рисунок 33.3. Управление синхронизацией

33.5.1.4 Режимы работы ТС

Каждый канал может раздельно работать в двух различных режимах:

  • Режим захвата для измерения временных характеристик сигналов
  • Режим генератора для генерации прямоугольных импульсов.

Режим работы ТС программируется с помощью бита WAVE в регистре режима канала ТС.

В режиме захвата выводы TIOA и TIOB настраиваются на ввод.

В режиме генератора TIOA всегда настроен на вывод, а TIOB действует также как выход, кроме ситуации, когда ему назначена функция входа внешнего запуска.

33.5.1.5 Перезапуск

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

  • Программный перезапуск: в каждом канале поддерживается программный перезапуск, для чего необходима установка SWTRG в TC_CCR.
  • Синхронизированный перезапуск сигналом SYNC: каждый канал содержит сигнал синхронизации SYNC. После разрешения он оказывает такое же действие, что и программный перезапуск. Сигналы SYNC всех каналов устанавливаются одновременно путем записи TC_BCR (регистр управления блоком ТС) с установленным битом SYNC.
  • Перезапуск при совпадении с RC: RC используется в каждом канале и может выполнять функцию перезапуска, если содержимое счетчика совпадает со значением RC, но при условии, что установлен бит CPCTRG в TC_CMR.

Канал также может быть настроен на внешний перезапуск. В режиме захвата в качестве сигнала внешнего перезапуска выбирается TIOA или TIOB. В режиме генератора внешнее событие может отслеживаться на одном из следующих сигналов: TIOB, XC0, XC1 или XC2. Данное внешнее событие можно запрограммировать на выполнение перезапуска путем установки ENETRG в TC_CMR.

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

Независимо от используемого способа перезапуска, он будет принят во внимание только во время следующего активного фронта выбранного тактового сигнала. Это означает, что значение счетчика, считанное сразу после перезапуска, может отличаться от нуля, особенно когда в качестве источника синхронизации выбран низкочастотный сигнал.

33.5.2 Работа в режиме захвата

Данный режим вводится путем сброса бита WAVE в регистре TC_CMR (регистра режима канала).

Режим захвата позволяет использовать канал ТС для выполнения измерений временных характеристик импульсных сигналов на входах TIOA и TIOB, в т.ч. частота, период, скважность или фаза.

На рисунке 33.4 показана конфигурация канала ТС, настроенного на работу в режиме захвата.

33.5.2.1 Регистры захвата А и В

Регистры А и В (RA и RB) используются в качестве регистров захвата. Это означает, что при возникновении запрограммированного события на линии TIOA в них загружается текущее значение счетчика.

Параметр LDRA в регистре TC_CMR определяет фронт TIOA, по которому будет выполняться загрузка регистра A, а параметр LDRB определяет, по какому фронту TIOB будет выполняться загрузка регистра В.

Загрузка RA выполняется, только если он не был загружен с момента последнего перезапуска или если RB был загружен с момента последней загрузки RA.

RB загружается, только если RA был загружен с момента последнего перезапуска или последней загрузки RB.

Загрузка регистров RA или RB до считывания последнего значения вызывает установку флага ошибки переполнения (LOVRS) в регистре TC_SR (регистр статуса). В этом случае, старое значение перезаписывается новым.

33.5.2.2 Условия перезапуска.

В дополнение к сигналу SYNC можно назначить программный перезапуск и перезапуск при совпадении с RC, а также может быть определен внешний перезапуск.

Бит ABETRG в TC_CMR определяет, какой из входов TIOA или TIOB будет выступать в качестве входа внешнего перезапуска. Параметр ETRGEDG задает фронт (нарастающий, падающий или оба фронта), который вызывает генерацию внешнего перезапуска. Если ETRGEDG = 0, то внешний перезапуск отключается.

Режим захвата
Рисунок 33.4. Режим захвата

33.5.3 Работа в режиме генератора

Работа в режиме генератора инициируется путем установки параметра WAVE в регистре TC_CMR (регистр режима канала).

В этом режиме канал ТС генерирует 1 или 2 ШИМ-сигнала одинаковой частоты, но с раздельным программированием рабочего цикла, или же генерирует различные типы одиночных или периодических импульсов.

После перехода в данный режим TIOA настраивается на работе в качестве выхода. TIOB также работает как вывод, если для него не задана функция внешнего события (определяется параметром EEVT в TC_CMR).

На рисунке 33.5 показана конфигурация канала ТС при его переводе в режим генератора.

33.5.3.1 Выбор способа генерации импульсов

В зависимости от параметра WAVSEL в TC_CMR (регистр режима канала) изменяется поведение TC_CV.

Независимо от его значения, регистры RA, RB и RC могут использоваться в качестве регистров сравнения.

Результат сравнения с RA используется для управления выходом TIOA, результат сравнения с RB используется для управления выходом TIOB (при корректной конфигурации), а результат сравнения с RC используется для управления выходами TIOA и/или TIOB.

Режим генератора
Рисунок 33.5. Режим генератора

33.5.3.2 WAVSEL = 00

Если WAVSEL = 00, то значение TC_CV инкрементируется от 0 до 0xFFFF. По достижении 0xFFFF значение TC_CV сбрасывается. Инкрементирование TC_CV начинается заново и цикл продолжается. См. рисунок 33.6.

Перезапуск от внешнего события или программный перезапуск может сбросить значение TC_CV. На это необходимо обратить внимание, т.к. перезапуск может произойти в любой момент (см. рисунок 33.7). В этой конфигурации нельзя запрограммировать генерацию перезапуска при совпадении с RC. В то же время, совпадение с RC может остановить синхронизацию счетчика (CPCSTOP = 1 в TC_CMR) и/или отключить синхронизацию счетчика (CPCDIS = 1 в TC_CMR).

WAVSEL= 00 без перезапуска
Рисунок 33.6. WAVSEL= 00 без перезапуска

WAVSEL= 00 с перезапуском
Рисунок 33.7. WAVSEL= 00 с перезапуском

33.5.3.3 WAVSEL = 10

Если WAVSEL = 10, то значение TC_CV инкрементируется от 0 до значения RC, а при совпадении с RC автоматически сбрасывается. Сразу после сброса TC_CV возобновляется инкрементирование и процесс повторяется (см. рисунок 33.8).

Необходимо обратить внимание на то, что TC_CV может быть сброшен в любой момент внешним событием или программным перезапуском, но при условии, что они запрограммированы корректно (см. рисунок 33.9).

Кроме того, совпадение с RC может остановить синхронизацию счетчика (CPCSTOP = 1 в TC_CMR) и/или отключить синхронизацию счетчика (CPCDIS = 1 в TC_CMR).

WAVSEL = 10 без перезапуска
Рисунок 33.8. WAVSEL = 10 без перезапуска

WAVSEL = 10 с перезапуском
Рисунок 33.9. WAVSEL = 10 с перезапуском

33.5.3.4 WAVSEL = 01

Если WAVSEL = 01, то значение TC_CV инкрементируется от 0 до 0xFFFF. По достижении 0xFFFF значение TC_CV декрементируется до 0, а затем снова инкрементируется до 0xFFFF и т.д. (см. рисунок 33.10).

Перезапуск по внешнему событию или программный перезапуск может модифицировать TC_CV в любой момент времени. Если перезапуск возникает во время инкрементирования TC_CV, то это инициирует декрементирование TC_CV. Если перезапуск происходит во время декрементирования TC_CV, то это приведет к инкрементированию TC_CV (см. рисунок 33.11).

В этой конфигурации совпадение с RC не может быть запрограммировано на генерацию перезапуска.

В то же время совпадение с RC может остановить синхронизацию счетчика (CPCSTOP = 1) и/или отключить синхронизацию счетчика (CPCDIS = 1).

WAVSEL = 01 без перезапуска
Рисунок 33.10. WAVSEL = 01 без перезапуска

WAVSEL = 01 с перезапуском
Рисунок 33.11. WAVSEL = 01 с перезапуском

33.5.3.5 WAVSEL = 11

Если WAVSEL = 11, то значение TC_CV инкрементируется от 0 до RC. По достижении значения равного RC происходит переключение на декрементирование TC_CV вплоть до достижения 0, а затем снова выполняется инкрементирование до RC и процесс повторяется (см. рисунок 33.12).

Перезапуск внешним событием или программный перезапуск может модифицировать TC_CV в любой момент времени. Если перезапуск возникает во время инкрементирования TC_CV, то это приводит к переключению направления счета и TC_CV будет декрементироваться. Если перезапуск возникает во время декрементирования TC_CV, то произойдет переключение на инкрементирование TC_CV (см. рисунок 33.13). Совпадение с RC может остановить синхронизацию счетчика (CPCSTOP = 1) и/или отключить синхронизацию счетчика (CPC-DIS = 1).

WAVSEL = 11 без перезапуска
Рисунок 33.12. WAVSEL = 11 без перезапуска

WAVSEL = 11 с перезапуском
Рисунок 33.13. WAVSEL = 11 с перезапуском

33.5.3.6 Внешнее событие/условия перезапуска

Внешнее событие может определяться на одном из тактовых входов (XC0, XC1, XC2) или на TIOB. Выбранное внешнее событие в дальнейшем может выступать в качестве источника перезапуска.

Параметр EEVT в регистре TC_CMR позволяет выбрать внешний перезапуск, а параметр EEVTEDG определяет фронт, по которому будет осуществляться перезапуск (нарастающий, падающий или оба фронта). Если EEVTEDG равен нулю, то внешнее событие не определено.

Если TIOB определен, как сигнал внешнего события (EEVT = 0), то функция выхода TIOB отключается, а выходной сигнал канал таймера-счетчика может генерировать только на выходе TIOA.

Если внешнее событие определено, то оно может использоваться для перезапуска, если установить бит ENETRG в регистре TC_CMR.

Как и в режиме захвата, сигнал SYNC и программный перезапуск также могут выступать источниками перезапуска. Совпадение с RC может использоваться для перезапуска в зависимости от параметра WAVSEL.

33.5.3.7 Контроллер вывода

Контроллер вывода задает изменения уровней на выходах TIOA и TIOB при возникновении события. Управление TIOB используется, только если этот вывод настроен как выход, а не как внешнее событие.

На состояние выходов TIOA и TIOB оказывают влияние следующие события: программный перезапуск, внешнее событие и совпадение с RC. На состояние TIOA также оказывает влияние совпадение с RA, а на TIOB - совпадение с RB. Каждое из этих событий можно запрограммировать для выполнения следующих действий: установка, сброс или переключение (инвертирование) выхода (зависит от параметра TC_CMR).



<--Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники