TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[3]
CC1通道配置为输出:
0:OC1N高电平有效。
1:OC1N低电平有效。
注意: 此位将在具有互补输出的通道上进行预装载。如果 TIMx_CR2寄存器中的 CCPC位置 1,则仅当生成换向事件
时,CC1NP有效位才会从预装载位获取新值。
注意: 只要编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 2或 3且 CC1S=“00” (通道配置为输出),
此位立即变为不可写状态。
CC1通道配置为输入:
此位与 CC1P配合使用,用以定义 TI1FP1和 TI2FP1的极性。请参见 CC1P说明。
CC1NP[0]=0
捕获/比较1互补输出极性
Capture/Compare1complementaryoutputpolarity
输入模式
CC1S[1]
CC1S[0]
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[1:0]
此位域定义通道方向(输入/输出)以及所使用的输入。
00:CC1通道配置为输出
01:CC1通道配置为输入,IC1映射到 TI1上
10:CC1通道配置为输入,IC1映射到 TI2上
11:CC1通道配置为输入,IC1映射到 TRC上。此模式仅在通过 TS位(TIMx_SMCR寄存
器)选择内部触发输入时有效
注意: 仅当通道关闭时(TIMx_CCER中的 CC1E=“0”),才可向 CC1S位写入数据。
CC1S[1:0]=01
捕获/比较1选择
Capture/Compare1selection
IC1PS
CC1E
TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[1]
CC1通道配置为输出:
0:关闭‐‐OC1未激活。OC1电平是MOE、OSSI、OSSR、OIS1、OIS1N和CC1NE位的函数。
1:开启‐‐OC1信号是相应输出引脚上的输出,具体取决于MOE、OSSI、OSSR、OIS1、OIS1N和
CC1NE位。
CC1通道配置为输入:
此位决定了是否可以实际将计数器值捕获到输入捕获/比较寄存器1(TIMx_CCR1)中。
0:禁止捕获。
1:使能捕获。
注意:此位将在具有互补输出的通道上进行预装载。如果 TIMx_CR2寄存器中的 CCPC位置1,则
仅当生成换向事件时, CC1E有效位才会从预装载位获取新值。
CC1E=0
捕获/比较1输出使能
Capture/Compare1outputenable
TIMx事件生成寄存器
TIMxeventgenerationregister
TIMx_EGR位[1]
此位由软件置 1以生成事件,并由硬件自动清零。
0:不执行任何操作
1:通道 1上生成捕获/比较事件:
如果通道 CC1配置为输出: 使能时,CC1IF标志置 1并发送相应的中断或 DMA请求。
如果通道 CC1配置为输入: TIMx_CCR1寄存器中将捕获到计数器当前值。使能时,CC1IF标志置 1并发送相应的中
断 或 DMA请求。如果 CC1IF标志已为高电平,CC1OF标志将置 1。
CC1G=1
捕获/比较1生成
Capture/Compare1generation
捕获
S
R
读CCR1H
读CCR1L
read_in_progress
capture_transfer
CNTCOUNTER
计数器
捕获/比较
影子寄存器
CCR1捕获/比较
预装载寄存器
MCU外设接口
APB外设总线
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[1:0]
此位域定义通道方向(输入/输出)以及所使用的输入。
00:CC1通道配置为输出
01:CC1通道配置为输入,IC1映射到 TI1上
10:CC1通道配置为输入,IC1映射到 TI2上
11:CC1通道配置为输入,IC1映射到 TRC上。此模式仅在通过 TS位(TIMx_SMCR寄存
器)选择内部触发输入时有效
注意: 仅当通道关闭时(TIMx_CCER中的 CC1E=“0”),才可向 CC1S位写入数据。
CC1S[1:0]=00
捕获/比较1选择
Capture/Compare1selection
CC1S[1]
CC1S[0]
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[3]
0:禁止与TIMx_CCR1相关的预装载寄存器。可随时向TIMx_CCR1写入数据,
写入后将立即使用新值。
1:使能与TIMx_CCR1相关的预装载寄存器。可读/写访问预装载寄存器。
TIMx_CCR1预装载值在每次生成更新事件时都会装载到活动寄存器中。
注意:
1:只要编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 3且CC1S=“00”
(通道配置为输出),这些位即无法修改。
2:只有单脉冲模式下才可在未验证预装载寄存器的情况下使用 PWM模式
(TIMx_CR1寄存器中的 OPM位置1)。其它情况下则无法保证该行为。
OC1PE[0]=1
输出比较1预装载使能
OutputCompare1preloadenable
CC1S[1]
UEV
(自时基单元)
S
R
写入CCR1H
写入CCR1L
write_in_progress
输出模式
16bit
高8位
低8位
compare_transfer
16bit
16bit
16bit
8bit
8bit
CNT>CCR1
CNT=CCR1
比较器
CNT>CCR1
CNT=CCR1
输出模式
控制器
OC1_REF
死区
发生器
OC1_DT
OC1N_DT
X0
01
11
11
10
0X
0
1
0
1
输出
使能电路
输出
使能电路
OC1
OC1N
TIMx_CH1
TIMx_CH1N
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[7]
0:OC1Ref不受 ETRF输入影响
1:ETRF输入上检测到高电平时,OC1Ref立即清零。
OC1CE
输出比较1清零使能
OutputCompare1clearenable
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[6:4]
这些位定义提供 OC1和 OC1N的输出参考信号 OC1REF的行为。
OC1REF为高电平有效,而 OC1和 OC1N的有效电平则取决于 CC1P位和 CC1NP位。
000:冻结输出比较寄存器 TIMx_CCR1与计数器 TIMx_CNT进行比较不会对输出造成 任何影响。(该模式用
于生成时基)。
001:将通道 1设置为匹配时输出有效电平。当计数器 TIMx_CNT与捕获/比较寄存器 1(TIMx_CCR1)匹配时,
OC1REF信号强制变为高电平。
010:将通道 1设置为匹配时输出无效电平。当计数器 TIMx_CNT与捕获/比较寄存器 1(TIMx_CCR1)匹配时,
OC1REF信号强制变为低电平。
011:翻转TIMx_CNT=TIMx_CCR1时,OC1REF发生翻转。
100:强制变为无效电平OC1REF强制变为低电平。
101:强制变为有效电平OC1REF强制变为高电平。
110:PWM模式 1在递增计数模式下,只要 TIMx_CNT<TIMx_CCR1,通道 1便为有效状态,否则为无效状态。
在递减计数模式下,只要 TIMx_CNT>TIMx_CCR1,通道 1便为 无效状态(OC1REF=“0”),否则为有
效状态(OC1REF=“1”)。
111:PWM模式 2在递增计数模式下,只要 TIMx_CNT<TIMx_CCR1,通道 1便为无效状态,否则为有效状态。
在递减计数模式下,只要 TIMx_CNT>TIMx_CCR1,通道 1便为有效状态,否则为无效状态。
注意:
1:只要编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 3且 CC1S=“00” (通道配置为输出),这
些位即无法修改。
2:在 PWM模式 1或 PWM模式 2下,仅当比较结果发生改变或输出比较模式由“冻结”模式切换到“
PWM”模式时,OCREF电平才会发生更改。
3:此位域将在具有互补输出的通道上进行预装载。如果 TIMx_CR2寄存器中 的 CCPC位置 1,则
仅当生成 COM事件时,OC1M有效位才会从预装载位获取新值。
OC1M[2:0]
输出比较1模式
OutputCompare1mode
TIMx断路和死区寄存器
TIMxbreakanddeadtimeregister
TIMx_BDTR位[7:0]
此位域定义插入到互补输出之间的死区持续时间。DT与该持续时间相对应。
DTG[7:5]=0xx=>DT=DTG[7:0]xtdtg,其中tdtg=tDTS。
DTG[7:5]=10x=>DT=(64+DTG[5:0])xtdtg,其中Tdtg=2xtDTS。
DTG[7:5]=110=>DT=(32+DTG[4:0])xtdtg,其中Tdtg=8xtDTS。
DTG[7:5]=111=>DT=(32+DTG[4:0])xtdtg,其中Tdtg=16xtDTS。
示例:如果TDTS=125ns(8MHz),则可能的死区值为:
0到15875ns(步长为125ns),
16us到31750ns(步长为250ns),
32us到63us(步长为1us),
64us到126us(步长为2us)
注意:只要编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 1、2或3,
此位域即无法修改。
DTG[7:0]
配置死区发生器
Dead‐timegeneratorsetup
"0"
"0"
到从模式控制器
TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[0]
CC1通道配置为输出:
0:关闭‐‐OC1未激活。OC1电平是MOE、OSSI、OSSR、OIS1、OIS1N和
CC1NE位的函数。
1:开启‐‐OC1信号是相应输出引脚上的输出,具体取决于
MOE、OSSI、OSSR、OIS1、OIS1N和CC1NE位。
CC1通道配置为输入:此位决定了是否可以实际将计数器值捕获到输入捕
获/比较寄存器1(TIMx_CCR1)中。
0:禁止捕获。
1:使能捕获。
注意:此位将在具有互补输出的通道上进行预装载。如果TIMx_CR2寄存
器中的CCPC位置1,则仅当生成换向事件时,CC1E有效位才会从
预装载位获取新值。
CC1E[0]=0
捕获/比较1输出使能
Capture/Compare1outputenable
TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[2]
0:关闭‐‐OC1N未激活。OC1N电平是MOE、OSSI、OSSR、OIS1、OIS1N
和CC1E位的函数。
1:开启‐‐在相应输出引脚上输出OC1N信号,具体取决于
MOE、OSSI、OSSR、OIS1、OIS1N和CC1E位。
注意:此位将在具有互补输出的通道上进行预装载。如果TIMx_CR2寄存
器中的CCPC位置1,则仅当生成换向事件时,CC1NE有效位才会从
预装载位获取新值。
CC1NE[0]=0
捕获/比较1互补输出使能
Capture/Compare1complementaryoutputenable
TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[1]
CC1通道配置为输出:
0:OC1高电平有效
1:OC1低电平有效
注意:此位将在具有互补输出的通道上进行预装载。如果 TIMx_CR2寄存器中的 CCPC位置1,则
仅当生成换向事件时, CC1P有效位才会从预装载位获取新值。
注意:只要编程了 LOCK( TIMx_BDTR寄存器中的 LOCK位)级别2或3,此位立即变为不可写状
态。
CC1通道配置为输入:
CC1NP/CC1P位可针对触发或捕获操作选择TI1FP1和TI2FP1的有效极性。
00:非反相/上升沿触发电路对TIxFP1上升沿敏感(在复位模式、外部时钟模式或触发模式下执
行捕获或触发操作),TIxFP1未反相(在门控模式或编码器模式下执行触发操作)。
01:反相/下降沿触发电路对TIxFP1下降沿敏感(在复位模式、外部时钟模式或触发模式下执行
捕获或触发操作),TIxFP1反相(在门控模式或编码器模式下执行触发操作)。
10:保留,不使用此配置。
11:未反相/边沿触发。电路对TIxFP1上升沿和下降沿都敏感(在复位模式、外部时钟模式或触
发模式下执行捕获或触发操作),TIxFP1未反相(在门控模式下执行触发操作)。编码器
模式下不得使用此配置。
CC1P[0]=0
捕获/比较1输出极性
Capture/Compare1outputpolarity
TIMx_CCER位[3]
TIMxcapture/compareenableregister
TIMx捕获/比较使能寄存器
CC1通道配置为输出:
0:OC1N高电平有效。
1:OC1N低电平有效。
注意: 此位将在具有互补输出的通道上进行预装载。如果 TIMx_CR2寄存器中的 CCPC位置 1,则仅当生成换向事件
时,CC1NP有效位才会从预装载位获取新值。
注意: 只要编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 2或 3且 CC1S=“00” (通道配置为输出),
此位立即变为不可写状态。
CC1通道配置为输入:
此位与 CC1P配合使用,用以定义 TI1FP1和 TI2FP1的极性。请参见 CC1P说明。
CC1NP[0]=1
捕获/比较1互补输出极性
Capture/Compare1complementaryoutputpolarity
TIMx断路和死区寄存器
TIMxbreakanddeadtimeregister
TIMx_BDTR位[15]
只要断路输入变为有效状态,此位便由硬件异步清零。
此位由软件置1,也可根据AOE位状态自动置1。
此位仅对配置为输出的通道有效。
0:OC和OCN输出禁止或被强制为空闲状态。
1:如果OC和OCN输出的相应使能位(TIMx_CCER寄存器中的CCxE和CCxNE位)均置1,则使能OC
和OCN输出。
有关详细信息,请参见OC/OCN使能说明( 第379页的第 14.4.9节:TIM1和TIM8捕获 /比较使能寄
存器(TIMx_CCER))。
MOE
主输出使能
Mainoutputenable
TIMx断路和死区寄存器
TIMxbreakanddeadtimeregister
TIMx_BDTR位[11]
此位在MOE=1时作用于配置为输出模式且具有互补输出的通道。
如果定时器中没有互补输出,则不存在OSSR。
有关详细信息,请参见OC/OCN使能说明( 第379页的第 14.4.9节:TIM1和TIM8捕获/ 比较使能寄
存器(TIMx_CCER))。
0:处于无效状态时,禁止OC/OCN输出(OC/OCN使能输出信号=0)。
1:处于无效状态时,一旦CCxE=1或CCxNE=1,便使能OC/OCN输出并将其设为无效电平。然后设置
OC/OCN使能输出信号=1
注意:编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 2后,此位即无法修改。
OSSR
运行模式下的关闭状态选择
Off‐stateselectionforRunmode
TIMx断路和死区寄存器
TIMxbreakanddeadtimeregister
TIMx_BDTR位[10]
此位在MOE=0时作用于配置为输出的通道。
有关详细信息,请参见OC/OCN使能说明( 第379页的第 14.4.9节:TIM1和TIM8捕获/比较使能寄
存器(TIMx_CCER))。
0:处于无效状态时,禁止OC/OCN输出(OC/OCN使能输出信号=0)。
1:处于无效状态时,一旦CCxE=1或CCxNE=1,便将OC/OCN输出首先强制为其空闲电平。然后设置
OC/OCN使能输出信号=1
注意:编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 2后,此位即无法修改。
OSSI
空闲模式下的关闭状态选择
Off‐stateselectionforIdlemode
TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[0]
CC1通道配置为输出:
0:关闭‐‐OC1未激活。OC1电平是MOE、OSSI、OSSR、OIS1、OIS1N和
CC1NE位的函数。
1:开启‐‐OC1信号是相应输出引脚上的输出,具体取决于
MOE、OSSI、OSSR、OIS1、OIS1N和CC1NE位。
CC1通道配置为输入:此位决定了是否可以实际将计数器值捕获到输入捕
获/比较寄存器1(TIMx_CCR1)中。
0:禁止捕获。
1:使能捕获。
注意:此位将在具有互补输出的通道上进行预装载。如果TIMx_CR2寄存
器中的CCPC位置1,则仅当生成换向事件时,CC1E有效位才会从
预装载位获取新值。
CC1E[0]=0
捕获/比较1输出使能
Capture/Compare1outputenable
TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[2]
0:关闭‐‐OC1N未激活。OC1N电平是MOE、OSSI、OSSR、OIS1、OIS1N
和CC1E位的函数。
1:开启‐‐在相应输出引脚上输出OC1N信号,具体取决于
MOE、OSSI、OSSR、OIS1、OIS1N和CC1E位。
注意:此位将在具有互补输出的通道上进行预装载。如果TIMx_CR2寄存
器中的CCPC位置1,则仅当生成换向事件时,CC1NE有效位才会从
预装载位获取新值。
CC1NE[0]=0
捕获/比较1互补输出使能
Capture/Compare1complementaryoutputenable
TI1
边沿
检测器
TI1F
0
1
TI1F_Rising
TI1F_Falling
滤波器
递减计数器
f
DTS
f
CK_INT
分频器
/1,/2,/4,/保留
CKD[1:0]=00
时钟分频
Clockdivision
TIMx_CR1位[9:8]
TIMx控制寄存器 1
TIMxcontrolregister1
此位域指示定时器时钟(CK_INT)频率与死区发生器以及数字滤波器(ETR、TIx)所使用的死区及采样时钟
(t
DTS
)之间的分频比,00:t DTS
=t
CK_INT
01:t
DTS
=2*t
CK_INT
10:t
DTS
=4*t
CK_INT
11:保留,不要设置成此值
f
CK_INT
TIMx_CH1
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[7:4]
此位域可定义TI1输入的采样频率和适用于TI1的数
字滤波器带宽。
数字滤波器由事件计数器组成,每N个事件才视为一
个有效边沿:
0000:无滤波器,按f
DTS
频率进行采样
0001:f
SAMPLING
=f
CK_INT
, N=2
0010:f
SAMPLING
=f
CK_INT
, N=4
0011:f
SAMPLING
=f
CK_INT
, N=8
0100:f
SAMPLING
=f
DTS/2
, N=6
0101:f
SAMPLING
=f
DTS/2
, N=8
0110:f
SAMPLING
=f
DTS/4
, N=6
0111:f
SAMPLING
=f
DTS/4
, N=8
1000:f
SAMPLING
=f
DTS/8
, N=6
1001:f
SAMPLING
=f
DTS/8
, N=8
1010:f
SAMPLING
=f
DTS/16
, N=5
1011:f
SAMPLING
=f
DTS/16
, N=6
1100:f
SAMPLING
=f
DTS/16
, N=8
1101:f
SAMPLING
=f
DTS/32
, N=5
1110:f
SAMPLING
=f
DTS/32
, N=6
1111:f
SAMPLING
=f
DTS/32
, N=8
IC1F[3:0]=0000
输入捕获1滤波器
Inputcapture1filter
TIMx捕获/比较使能寄存器
TIMxcapture/compareenableregister
TIMx_CCER位[1]
CC1通道配置为输出:
0:OC1高电平有效
1:OC1低电平有效
注意:此位将在具有互补输出的通道上进行预装载。如果 TIMx_CR2寄存器中的CCPC 位置1,则
仅当生成换向事件时, CC1P有效位才会从预装载位获取新值。
注意:只要编程了 LOCK(TIMx_BDTR寄存器中的 LOCK位)级别 2或3,此位立即变为不可写状
态。
CC1通道配置为输入:
CC1NP/CC1P位可针对触发或捕获操作选择TI1FP1和TI2FP1的有效极性。
00:非反相/上升沿触发电路对TIxFP1上升沿敏感(在复位模式、外部时钟模式或触发模式下执
行捕获或触发操作),TIxFP1未反相(在门控模式或编码器模式下执行触发操作)。
01:反相/下降沿触发电路对TIxFP1下降沿敏感(在复位模式、外部时钟模式或触发模式下执行
捕获或触发操作),TIxFP1反相(在门控模式或编码器模式下执行触发操作)。
10:保留,不使用此配置。
11:未反相/边沿触发。电路对TIxFP1上升沿和下降沿都敏感(在复位模式、外部时钟模式或触
发模式下执行捕获或触发操作),TIxFP1未反相(在门控模式下执行触发操作)。编码器
模式下不得使用此配置。
CC1P[0]=0
捕获/比较1输出极性
Capture/Compare1outputpolarity
TI1F_ED
TI1F_FP1
TI1F_FP1 到从模式控制器
0
1
TI2F_Rising(自通道2)
TI2F_Falling(自通道2)
TI1F_FP1
00
01
10
11
CC1通道配置为输出
CC1通道配置为输入
CC1通道配置为输入
CC1通道配置为输入
IC1
TI1
TI2
TRC
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[1:0]
此位域定义通道方向(输入/输出)以及所使用的输入。
00:CC1通道配置为输出
01:CC1通道配置为输入,IC1映射到 TI1上
10:CC1通道配置为输入,IC1映射到 TI2上
11:CC1通道配置为输入,IC1映射到 TRC上。此模式仅在通过 TS位(TIMx_SMCR寄存
器)选择内部触发输入时有效
注意: 仅当通道关闭时(TIMx_CCER中的 CC1E=“0”),才可向 CC1S位写入数据。
CC1S[1:0]=01
捕获/比较1选择
Capture/Compare1selection
分频器
/1,/2,/4,/8
TIMx捕获/比较模式寄存器 1
TIMxcapture/comparemoderegister1
TIMx_CCMR1位[3:2]
此位域定义CC1输入(IC1)的预分频比。
只要CC1E=“0”(TIMx_CCER寄存器),预分频器便立即复位。
00:无预分频器,捕获输入上每检测到一个边沿便执行捕获
01:每发生2个事件便执行一次捕获
10:每发生4个事件便执行一次捕获
11:每发生8个事件便执行一次捕获
IC1PSC[1:0]=01
输入捕获1预分频器
Inputcapture1prescaler
IC1PS
Capture/Compare1value
捕获/比较1值
如果通道CC1配置为输出:
CCR1是捕获/比较寄存器1的预装载值。
如果没有通过TIMx_CCMR寄存器中的OC1PE位来使能预装载功
能,写入的数值会被直接传输至当前(影子)寄存器中。否则只在发
生更新事件时生效(拷贝到实际起作用的捕获/比较(影子)寄存
器)。
实际捕获/比较寄存器(影子寄存器)中包含有要与计数器
TIMx_CNT进行比较并在OC1输出上发出信号的值。
如果通道CC1配置为输入:
CCR1为上一个输入捕获1事件(IC1)发生时的计数器值。
16bit
Countervalue
计数器值16bit
ETR
ETR引脚
(来自从模式控制器)
MCU从预装载寄存器读取数据时,先读取
高8位,同时置位"读取中"标志,避免影子
寄存器向预装载寄存器写入新数据.
然后读取低8位,同时复位"读取中"标志.
允许影子寄存器向预装载寄存器写入数
据.
MCU向预装载寄存器写入数据时,先写入
高8位,同时置位"写入中"标志,避免预
装载寄存器向影子寄存器写入不完整的
数据.
然后写入低8位,同时复位"写入中"标
志.允许预装载寄存器向影子寄存器写
入数据.
捕获/比较通道
每一个捕获/比较通道都是围绕着一个捕获/比较寄存器(包含影子寄存器)
包括:
捕获的输入部分(数字滤波、多路复用和预分频器),
输出部分(比较器和输出控制)。
中文参考手册中框图分成了三大模块,把框图合并成了一个整体,以便更好的理解捕获输入与比较输出.
合并后的框图增加了各寄存器的功能框图及描述.(PDF版本方便查看)
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐