TIMx capture/compare mode register 2 (TIMx_CCMR2) - Output compare mode

Второй регистр режимов захвата/сравнения таймеров TIM2-TIM5 - режим сравнения выходных данных

Смещение (Address offset): 0x1С

Reset value: 0x0000

15141312111098
OC4CE OC4M[2:0] OC4PE OC4FE CC4S[1:0]
rwrwrwrwrwrwrwrw
00000000
76543210
OC3CE OC3M OC3PE OC3FE CC3S
rwrwrwrwrwrwrwrw
00000000


Каждый канал может быть настроен на ввод - режим захвата (capture mode) или на вывод - режим сравнения (compare mode). Направление работы канала определяется настройкой битов CCxS[1:0]. Остальные биты этого регистра выполняют разные функции в режимах ввода или вывода.

Ниже описаны функции битов регистра при настройке канала на вывод - режим сравнения выходных данных (compare mode).



Биты
Имя
Описание
15
OC4CE
Output compare 4 clear enable
Сброс выходного сигнала сравнения канала 4 (OC4REF) внешним событием на выводе TIMx_ETR (сигналом ETRF)

 0 : нет действий

 1 : OC4REF сбрасывается при высоком уровне сигнала ETRF

14:12
OC4M[2:0]
Output compare 4 mode
Способ формирования выходного сигнала OC4REF

 000 : Frosen - "застывший". Сравнение счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4 не оказывает влияние на выходной сигнал OC4REF. Этот режим применяется для формирования и использования временных промежутков в программе без управления внешними устройствами.

 001 : Set channel to active level - устанавливает высокий уровень сигнала OC4REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.

 010 : Set channel to inactive level - устанавливает низкий уровень сигнала OC4REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.

 011 : Toggle - переключает уровень сигнала OC4REF на противоположный при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.

 100 : Force inactive level - принудительно устанавливает низкий уровень сигнала OC4REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.

 101 : Force active level - принудительно устанавливает высокий уровень сигнала OC4REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR4.

 110 : PWM mode 1 - При счете вверх высокий уровень сигнала OC4REF пока TIMx_CNT < TIMx_CCR4. При достижении равенства OC4REF сбрасывается. При обратном счете низкий уровень сигнала OC4REF пока TIMx_CNT > TIMx_CCR4. При достижении равенства устанавливается высокий уровень сигнала OC4REF.

 111 : PWM mode 2 - При счете вверх низкий уровень сигнала OC4REF пока TIMx_CNT < TIMx_CCR4. При достижении равенства устанавливается высокий уровень сигнала OC4REF. При обратном счете высокий уровень сигнала OC4REF пока TIMx_CNT > TIMx_CCR4. При достижении равенства OC4REF сбрасывается.

В PWM mode уровень OC4REF изменяется только при изменении результата сравнения счетчика TIMx_CNT и регистра TIMx_CCR4, или при переключении из режима Frosen в PWM mode.

11
OC4PE
Output compare 4 preload enable
Буферизация регистра TIMx_CCR4

 0 : буферизация отключена. Записанное в регистр TIMx_CCR4 значение начинает использоваться немедленно.

 1 : буферизация включена. Записанное в регистр TIMx_CCR4 значение будет использовано после события обновления (UEV).

10
OC4FE
Output compare 4 fast enable
Разрешение быстрого сравнения

Ускорение эффекта на выходе канала от воздействия триггерного события на входе.

 0 : обычное функционирование канала. Уровень сигнала на выходе определяется сравнением значений счетчика TIMx_CNT и регистра сравнения TIMx_CCR4. При работе в подчинённом режиме минимальная задержка в установке сигнала на выходе от активного фронта на входе составляет 5 периодов тактового сигнала.

 1 : активный фронт сигнала на триггерном входе устанавливает на выходе уровень, соответствующий срабатыванию схемы сравнения независимо от фактического результата сравнения. Задержка в установке сигнала на выходе от активного фронта на входе сокращается до 3 тактов. Работает только в режимах PWM1 или PWM2.

9:8
CC4S[1:0]
Capture/Compare 4 selection
Определяет направление канала и используемый входной сигнал

 00 : канал настроен на выход

 01 : канал настроен на вход, входной сигнал TI2

 10 : канал настроен на вход, входной сигнал TI1

 11 : канал настроен на вход, входной сигнал TRC. Этот режим работает если выбран вход внутреннего триггера (биты TS[2:0] регистра TIMx_SMCR)

Биты CC4S[1:0] доступны для записи только при выключенном канале (CC4E=0 в TIMx_CCER)

7
OC3CE
Output compare 3 clear enable
Сброс выходного сигнала сравнения канала 3 (OC3REF) внешним событием на выводе TIMx_ETR (сигналом ETRF)

 0 : нет действий

 1 : OC3REF сбрасывается при высоком уровне сигнала ETRF

6:4
OC3M[2:0]
Output compare 3 mode
Способ формирования выходного сигнала OC3REF

 000 : Frosen - "застывший". Сравнение счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3 не оказывает влияние на выходной сигнал OC3REF. Этот режим применяется для формирования и использования временных промежутков в программе без управления внешними устройствами.

 001 : Set channel to active level - устанавливает высокий уровень сигнала OC3REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.

 010 : Set channel to inactive level - устанавливает низкий уровень сигнала OC3REF при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.

 011 : Toggle - переключает уровень сигнала OC3REF на противоположный при совпадении счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.

 100 : Force inactive level - принудительно устанавливает низкий уровень сигнала OC3REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.

 101 : Force active level - принудительно устанавливает высокий уровень сигнала OC3REF независимо от значений счетчика TIMx_CNT и регистра захвата/сравнения TIMx_CCR3.

 110 : PWM mode 1 - При счете вверх высокий уровень сигнала OC3REF пока TIMx_CNT < TIMx_CCR3. При достижении равенства OC3REF сбрасывается. При обратном счете низкий уровень сигнала OC3REF пока TIMx_CNT > TIMx_CCR3. При достижении равенства устанавливается высокий уровень сигнала OC3REF.

 111 : PWM mode 2 - При счете вверх низкий уровень сигнала OC3REF пока TIMx_CNT < TIMx_CCR3. При достижении равенства устанавливается высокий уровень сигнала OC3REF. При обратном счете высокий уровень сигнала OC3REF пока TIMx_CNT > TIMx_CCR3. При достижении равенства OC3REF сбрасывается.

В PWM mode уровень OC3REF изменяется только при изменении результата сравнения счетчика TIMx_CNT и регистра TIMx_CCR3, или при переключении из режима Frosen в PWM mode.

3
OC3PE
Output compare 3 preload enable
Буферизация регистра TIMx_CCR3

 0 : буферизация отключена. Записанное в регистр TIMx_CCR3 значение начинает использоваться немедленно.

 1 : буферизация включена. Записанное в регистр TIMx_CCR3 значение будет использовано после события обновления (UEV).

2
OC1FE
Output compare 3 fast enable
Разрешение быстрого сравнения

Ускорение эффекта на выходе канала от воздействия триггерного события на входе.

 0 : обычное функционирование канала. Уровень сигнала на выходе определяется сравнением значений счетчика TIMx_CNT и регистра сравнения TIMx_CCR3. При работе в подчинённом режиме минимальная задержка в установке сигнала на выходе от активного фронта на входе составляет 5 периодов тактового сигнала.

 1 : активный фронт сигнала на триггерном входе устанавливает на выходе уровень, соответствующий срабатыванию схемы сравнения независимо от фактического результата сравнения. Задержка в установке сигнала на выходе от активного фронта на входе сокращается до 3 тактов. Работает только в режимах PWM1 или PWM2.

1:0
CC3S[1:0]
Capture/Compare 3 selection
Определяет направление канала и используемый входной сигнал

 00 : канал настроен на выход

 01 : канал настроен на вход, входной сигнал TI2

 10 : канал настроен на вход, входной сигнал TI1

 11 : канал настроен на вход, входной сигнал TRC. Этот режим работает если выбран вход внутреннего триггера (биты TS[2:0] регистра TIMx_SMCR)

Биты CC3S[1:0] доступны для записи только при выключенном канале (CC3E=0 в TIMx_CCER)



/******************  Bit definition for TIM_CCMR2 register  *******************/

#define  TIM_CCMR2_CC3S     ((uint16_t)0x0003)     /* CC3S[1:0] bits (Capture/Compare 3 Selection) */
#define  TIM_CCMR2_CC3S_0   ((uint16_t)0x0001)     /* Bit 0 */
#define  TIM_CCMR2_CC3S_1   ((uint16_t)0x0002)     /* Bit 1 */

#define  TIM_CCMR2_OC3FE    ((uint16_t)0x0004)     /* Output Compare 3 Fast enable */
#define  TIM_CCMR2_OC3PE    ((uint16_t)0x0008)     /* Output Compare 3 Preload enable */

#define  TIM_CCMR2_OC3M     ((uint16_t)0x0070)     /* OC3M[2:0] bits (Output Compare 3 Mode) */
#define  TIM_CCMR2_OC3M_0   ((uint16_t)0x0010)     /* Bit 0 */
#define  TIM_CCMR2_OC3M_1   ((uint16_t)0x0020)     /* Bit 1 */
#define  TIM_CCMR2_OC3M_2   ((uint16_t)0x0040)     /* Bit 2 */

#define  TIM_CCMR2_OC3CE    ((uint16_t)0x0080)     /* Output Compare 3 Clear Enable */

#define  TIM_CCMR2_CC4S     ((uint16_t)0x0300)     /* CC4S[1:0] bits (Capture/Compare 4 Selection) */
#define  TIM_CCMR2_CC4S_0   ((uint16_t)0x0100)     /* Bit 0 */
#define  TIM_CCMR2_CC4S_1   ((uint16_t)0x0200)     /* Bit 1 */

#define  TIM_CCMR2_OC4FE    ((uint16_t)0x0400)     /* Output Compare 4 Fast enable */
#define  TIM_CCMR2_OC4PE    ((uint16_t)0x0800)     /* Output Compare 4 Preload enable */

#define  TIM_CCMR2_OC4M     ((uint16_t)0x7000)     /* OC4M[2:0] bits (Output Compare 4 Mode) */
#define  TIM_CCMR2_OC4M_0   ((uint16_t)0x1000)     /* Bit 0 */
#define  TIM_CCMR2_OC4M_1   ((uint16_t)0x2000)     /* Bit 1 */
#define  TIM_CCMR2_OC4M_2   ((uint16_t)0x4000)     /* Bit 2 */

#define  TIM_CCMR2_OC4CE    ((uint16_t)0x8000)     /* Output Compare 4 Clear Enable */