logo

STM8应用笔记 STM8单片机内核剖析 STM8 时钟/触发控制器

STM8 时钟/触发控制器

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

STM8时钟/触发控制器

时钟/触发控制器允许用户选择计数器的时钟源,输入触发信号和输出信号,框图如图40所示。

STM8 时钟/触发控制器框图
(图40:STM8时钟/触发控制器框图)

预分频时钟(CK_PSC)

时基单元的预分频时钟(CK_PSC)可以由以下源提供:

  • 内部时钟(fMASTER)
  • 外部时钟模式1:外部时钟输入(TIx)
  • 外部时钟模式2:外部触发输入ETR
  • 内部触发输入(ITRx):使用一个定时器做为另一个定时器的预分频时钟。更多信息请参考图52的例子。

内部时钟源(fMASTER)

如果同时禁止了触发模式控制器和外部触发输入(TIM1_SMCR寄存器的SMS=000,TIM1_ETR寄存器的ECE=0),则CEN、DIR和UG位是实际上的控制位,并且只能被软件修改(UG位仍被自动清除)。一旦CEN位被写成1,预分频器的时钟就由内部时钟提供。
下图描述了控制电路和向上计数器在普通模式下,不带预分频器时的操作。

STM8 普通模式下的控制电路,fMASTER分频因子为1
(图41:STM8普通模式下的控制电路,fMASTER分频因子为1)

外部时钟源模式1

当TIMx_SMCR寄存器的SMS=111时,此模式被选中。计数器可以在选定输入端的每个上升沿或下降沿计数。

STM8 TI2外部时钟连接例子
(图42:STM8-TI2外部时钟连接例子)

例如,要配置STM8向上计数器在T12输入端的上升沿计数,使用下列步骤:
1.配置TIM1_CCMR2寄存器的CC2S=01,使用通道2检测TI2输入的上升沿
2.配置TIM1_CCMR2寄存器的IC2F[3:0]位,选择输入滤波器带宽(如果不需要滤波器,保持IC2F=0000)
注:捕获预分频器不用作触发,所以不需要对它进行配置,同样也不需要配置TI2S位,他们仅用来选择输入捕获源。
3.配置TIM1_CCER1寄存器的CC2P=0,选定上升沿极性
4.配置TIM1_SMCR寄存器的SMS=111,配置计数器使用外部时钟模式1
5.配置TIM1_SMCR寄存器的TS=110,选定TI2作为输入源
6.设置TIM1_CR1寄存器的CEN=1,启动计数器
当上升沿出现在TI2,计数器计数一次,且触发标识位(TIM1_SR1寄存器的TIF位)被置1,如果使能了中断(在TIM1_IER寄存器中配置)则会产生中断请求。
在TI2的上升沿和计数器实际时钟之间的延时取决于在TI2输入端的重新同步电路。

STM8 外部时钟模式1下的控制电路
(图43:STM8外部时钟模式1下的控制电路)

外部时钟源模式2

计数器能够在外部触发输入ETR信号的每一个上升沿或下降沿计数。将TIM1_ETR寄存器的ECE位写1,即可选定此模式。

STM8 外部触发输入框图
(图44:STM8外部触发输入框图)

例如,要配置计数器在ETR信号的每2个上升沿时向上计数一次,需使用下列步骤:
1.本例中不需要滤波器,配置TIM1_ETR寄存器的ETF[3:0]=0000
2.设置预分频器,配置TIM1_ETR寄存器的ETPS[1:0]=01
3.选择ETR的上升沿检测,配置TIM1_ETR寄存器的ETP=0
4.开启外部时钟模式2,配置TIM1_ETR寄存器中的ECE=1
5.启动计数器,写TIM1_CR1寄存器的CEN=1
计数器在每2个ETR上升沿计数一次。
在ETR的上升沿和计数器实际时钟之间的延时取决于在ETRP信号端的重新同步电路。

STM8 外部时钟模式2下的控制电路
(图45:STM8外部时钟模式2下的控制电路)

STM8 时钟/触发控制器

——