Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MSP430_НВВ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.67 Mб
Скачать

3.8 Таймер b7

Таймер B7 имеет структуру, аналогичную таймеру A3, но имеет следующие отличия:

  • Разрядность таймера может быть программно задана как 8, 10, 12 или 16 бит.

  • На базе таймера B реализовано 7 модулей захвата/сравнения – TBCC0 … TBCC6.

  • Регистры TBCCRx имеют буфер по записи и могут быть сгруппированы, т.е. запись данных в один из регистров приводит к обновлению данных во всех регистрах группы.

  • Все выходы модулей сравнения могут быть переведены в высокоимпедансное состояние.

  • Отсутствует бит SCCI в регистрах управления модулей захвата/сравнения.

Общая структурная схема таймера B7 приведена на рисунке 6.

Рисунок 6. Структурная схема таймера B7.

Дополнительные возможности таймера B7 дают удобные средства построения на его базе многоканальных широтно-импульсных (ШИМ) генераторов. В этом случае используется UP или UP/DOWN режимы таймера. С помощью регистра TBCCR0 модуля сравнения задается несущая частота модуляции, а содержимое TBCCRx определяет длительность генерируемых импульсов. Изменяя содержимое регистров TBCCRx можно динамически менять ширину импульсов в различных каналах. С помощью таймера B7 можно, например, реализовать управление шестью ключами, включенных в стойки инверторов для трехфазной сети. Для качественного регулирования необходимо, чтобы перестройка всех шести каналов ШИМ проводилась одновременно. Синхронную перестройку ШИМ генератора на базе таймера A реализовать затруднительно, т.к. программа может изменять содержимое регистров CCR только последовательно. Для достижения синхронности в таймере B7 используется буферирование регистров TBCCRx и объединение их в группы.

В отличии от таймера A, регистры TBCCRx подключены к компаратору не напрямую, а через регистры-защелки TBCLx (Timer B Compare Latch), так, как это показано на рис. 7.

Рисунок 7. Буферизированное подключение TBCCR

Таким образом, компаратор сравнивает текущее содержимое таймера B не с содержимым регистра TBCCRx, а с TBCLx. Прямого доступа к регистрам TBCLx нет, однако данные в них могут переписываться из TBCCRx в ответ на какое-либо событие – например переход таймера через 0. Это дает возможность в начале периода работы таймера последовательно записать требуемые значения в регистры TBCCRx, а воспримутся эти значения синхронно для всех каналов со следующего периода.

Еще одна возможность синхронизации многоканальных ШИМ заключается в объединении нескольких модулей сравнения в группы. Группа может состоять из 2-х, 3-х или всех 7-ми модулей. Один модуль в группе является ведущим, остальные - ведомыми. Если программа записывает новые данные в регистры TBCCRx ведомых модулей, эти данные не воспринимаются (не переписываются в TBCLx) до тех пор, пока не будет произведена запись в TBCCR ведущего модуля. Таким образом, данные из TBCCRx всех модулей группы подхватываются одновременно в момент записи TBCL ведущего модуля.

Наконец, внешние выводы всех модулей сравнения могут быть переведены в высокоимпедансное состояние внешним сигналом, подключенным к выводу P5.7/TBOUTH. Для выключения выходов модулей сравнения необходимо сконфигурировать вывод P5.7/TBOUTH для поддержки периферийных функций (через регистр P5SEL) и подать на него потенциал логической единицы.

Регистры таймера B7 представлены в таблице 13.

Таблица 13

Регистр

Назначение

Адрес

TBR

Регистр содержимого таймера B

190h

TBCTL

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

180h

TBCCR0

Регистр захвата/сравнения CC0

192h

TBCCTL0

Регистр управления CC0

182h

TBCCR1

Регистр захвата/сравнения CC1

194h

TBCCTL1

Регистр управления CC1

184h

TBCCR2

Регистр захвата/сравнения CC2

196h

TBCCTL2

Регистр управления CC2

186h

TBCCR3

Регистр захвата/сравнения CC3

198h

TBCCTL3

Регистр управления CC3

188h

TBCCR4

Регистр захвата/сравнения CC4

19Ah

TBCCTL4

Регистр управления CC4

18Ah

TBCCR5

Регистр захвата/сравнения CC5

19Ch

TBCCTL5

Регистр управления CC5

18Ch

TBCCR6

Регистр захвата/сравнения CC6

19Eh

TBCCTL6

Регистр управления CC6

18Eh

TBIV

Регистр идентификации прерывания

11Eh

    • TBR (Timer B Register) –16-ти разрядный регистр текущего содержимого таймера. Регистр доступен как для записи, так и для чтения с помощью словных форм инструкций.

    • TBCCR 0…6 (Timer B Capture/Compare Register) - 16-ти разрядные регистры захвата/сравнения. В режиме захвата в регистр автоматически записывается содержимое TBR. В режиме сравнения содержимое этих регистров автоматически сравнивается с содержимым TBR для генерации внешнего события. Регистры доступны по записи и чтению с помощью словных форм инструкций.

    • TBCTL (Timer B Control) – содержит биты управления таймера B. Регистр доступен как для записи, так и для чтения с помощью словных форм инструкций и содержит следующие биты.

15 14 13 12 11 10 9 8

- -

TBCLGRP1,0

CNTL1,0

-

TBSSEL1,0

7 6 5 4 3 2 1 0

ID 1, 0

MC1,0

-

TBCLR

TBIE

TBIFG

  • Бит 15 – зарезервирован.

  • Биты 14, 13 – TBCLGRP (Timer B Compare Latch Group) – группирование загрузки модулей сравнения таймера B.

TBCLGRP1

TBCLGRP0

Группы

Ведущий модуль

0

0

нет

нет

0

1

TBCC1+TBCC2

TBCC3+TBCC4

TBCC5+TBCC6

TBCC1

TBCC3

TBCC5

1

0

TBCC1+TBCC2+ TBCC3

TBCC4+ TBCC5+TBCC6

TBCC1

TBCC4

1

1

TBCC0+TBCC1+TBCC2+ TBCC3+

TBCC4+ TBCC5+TBCC6

TBCC1

  • Биты 12, 11 – CNTL (Counter Length) – длина счетчика.

Комбинация состояния этих бит определяет разрядность таймера B.

CNT1

CNT0

Разрядность

Макс. значение таймера

0

0

16 бит

FFFFh

0

1

12 бит

FFFh

1

0

10 бит

3FFh

1

1

8 бит

FFh

  • Бит 10 – зарезервирован.

  • Биты 9, 8 – TBSSEL (Timer B Source Select) – выбор источника тактирования таймера B.

TBSSEL1

TBSSEL0

Источник

0

0

TBCLK

0

1

ACLK

1

0

SMCLK

1

1

Инвертированный TBCLK

  • Биты 7, 6 – ID (Input Divider) – комбинация состояния этих бит определяет коэффициент деления входного делителя таймера

ID1

ID0

Коэффициент

0

0

1 / 1

0

1

1 / 2

1

0

1 / 4

1

1

1 / 8

  • Биты 5, 4 – MC (Mode Control) - комбинация состояния этих бит определяет текущий режим таймера

MC1

MC0

Режим

0

0

Остановлен

0

1

Up

1

0

Continuous

1

1

Up/Down

  • Бит 3 – зарезервирован .

  • Бит 2 – TBCLR (Timer B Clear) – программная установка этого бита вызывает сброс регистра TBR в 0. Бит сбрасывается в 0 автоматически.

  • Бит 1 – TBIE (Timer B Interrupt Enable ) – установка/сброс этого бита разрешает/запрещает прерывание по переполнению таймера.

  • Бит 0 – TBIFG (Timer A Interrupt Flag) – флаг требования прерывания. Устанавливается аппаратно при переполнении таймера или программно. Сбрасывается автоматически чтением регистра TBIV.

    • TBCCTL 0…6 (Timer B Capture/compare Control) – содержат биты управления модулей захвата/сравнения. Все регистры имеют идентичную структуру и доступны по записи и чтению с помощью словных форм инструкций. Регистры содержат следующие биты

15 14 13 12 11 10 9 8

CM1, 0

CCIS1,0

SCS

CLLD1,0

CAP

7 6 5 4 3 2 1 0

OUTMOD 2,1,0

CCIE

CCI

OUT

COV

CCIFG

  • Биты 15, 14 – CM (Capture Mode) – режим модуля захвата. Определяют тип события для срабатывания модуля захвата.

CM1

CM0

Тип события

0

0

Нет захвата

0

1

Растущий фронт

1

0

Падающий фронт

1

1

Любой фронт

  • Биты 13, 12 – CCIS (Capture/Compare Input Select) – выбирают сигналы для входа модуля захвата.

CCIS1

CCIS0

Вход

0

0

CCIA

0

1

CCIB

1

0

GND

1

1

VCC

Для всех модулей, кроме TBCC6, комбинации CCIS – 00b и 01b – идентичны.

  • Бит 11 – SCS (Synchronize Capture Source) – синхронизация источника захвата. Если этот бит установить в 1 то захват будет производиться синхронно с тактом таймера, в противном случае, захват будет произведен в момент обнаружения внешнего события.

  • Биты 10, 9 – CLLD (Compare Latch Load) – загрузка защелок при сравнении.

Комбинация этих бит определяет событие, по которому содержимое регистров TBCCRx перезаписывается в защелки TBCLx

CLLD1

CLLD0

Событие

0

0

Запись в TBCCRx (буферизации нет)

0

1

TBR досчитывает до 0

1

0

UP и Continuous режимы: TBR досчитывает до 0

UP/DOWN режим: TBR досчитывает до старого значения TBCL0 или до 0

1

1

TBR досчитывает до старого значения TBCLx

В том случае если модули сгруппированы (TBCTL.TBCLGRP≠0), перезапись в TBCLx будет производиться по событию, определенному битами CLLD ведущего модуля. У ведомых модулей биты CLLD не должны быть равны 0, т.к. буферизация выключается. Для групповой загрузки необходимо, чтобы была произведена запись во все регистры TBCCRx, даже в том случае, если данные остаются неизменными.

  • Бит 8 – CAP (Capture) – установка/ сброс этого бита выбирает режим захвата или сравнения модуля TBCCx соответственно.

  • Биты 7,6,5 – OUTMOD (Output Mode) – определяют режим работы выходов модуля сравнения.

OUTMOD2

OUTMOD1

OUTMOD0

Режим

Действие

0

0

0

Out

TBCCTLx.OUT

0

0

1

Set

1 : TBR=CLx

0

1

0

Toggle/reset

Переключение : TBR=CLx,

0 : TBR=CL0

0

1

1

Set/reset

1 : TBR=CLx, 0 : TBR=CL0

1

0

0

Toggle

Переключение : TBR=CLx

1

0

1

Reset

0 : TBR=CLx

1

1

0

Toggle/set

Переключение : TBR=CLx,

1 : TBR=CL0

1

1

1

Reset/set

0 : TBR=CLx, 1 : TBR=CL0

  • Бит 4 – CCIE (Capture/Compare Enable) – установка/сброс этого бита разрешает/запрещает прерывания от модуля захвата/сравнения.

  • Бит 3 – CCI (Capture/Compare Input) – через этот бит читается состояние входа модуля захвата, подключенное битами CCIS этого регистра. Бит доступен только по чтению.

  • Бит 2 – OUT – содержимое этого бита определяет состояние выхода модуля сравнения, если биты OUTMOD=0.

  • Бит 1 – COV (Capture Overflow) – переполнения захвата. Устанавливается аппаратно, если при срабатывании модуля захвата, предыдущее захваченное значение таймера не было вычитано из CCRx. Сбрасываться бит должен программно.

  • Бит 0 – CCIFG (Capture/Compare Interrupt Flag) – флаг требования прерывания. Устанавливается аппаратно при срабатывании модуля захвата/сравнения. Для TBCCTL0 бит сбрасывается аппаратно при вхождении в прерывание или программно. Для TBCCTL1 … TBCCTL6 бит сбрасывается чтением регистра TBIV.

    • TBIV (Timer B Interrupt Vector) – регистр идентификации прерывания для таймера B. Выполняет функции, аналогичные функциям регистра TAIV (см. п.3.7). В регистре TBIV возможны следующие коды:

  • 0 – нет прерываний;

  • 2 – установлен флаг TBCCTL1.CCIFG;

  • 4 – установлен флаг TBCCTL2.CCIFG;

  • 6 – установлен флаг TBCCTL3.CCIFG;

  • 8 – установлен флаг TBCCTL4.CCIFG;

  • 10 – установлен флаг TBCCTL5.CCIFG;

  • 12 – установлен флаг TBCCTL6.CCIFG;

  • 14– установлен флаг TBCTL.TAIFG.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]