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).

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

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

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

Bits 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.

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

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

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

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

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

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

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

Bits 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)

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

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

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

Bits 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.

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

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

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

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

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

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

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

Bits 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 */