STM8 时钟/触发控制器

来自丢石头百科
<tbody></tbody>

STM8时钟/触发控制器

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

STM8 P119 1.jpg

(图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 P119 2.jpg

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

    外部时钟源模式1

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

    STM8 P120 1.jpg

    (图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 P120 2.jpg

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

    外部时钟源模式2

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

    STM8 P121 1.jpg

    (图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 P121 2.jpg

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