Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo ocurre la interrupción por desbordamiento de stm8 en modo pwm?

¿Cómo ocurre la interrupción por desbordamiento de stm8 en modo pwm?

(Figura 67: borde STM8 alineado, forma de onda PWM modo 1 (ARR=8))

Configuración de conteo regresivo

El conteo regresivo se realiza cuando el bit DIR del registro TIM1_CR1 está alto.

En el modo PWM 1, la señal de referencia OCiREF es de nivel bajo cuando TIM1_CNTgt; de lo contrario, es de nivel alto. OCiREF permanece "1" si el valor de comparación en TIM1_CCRi es mayor que el valor de recarga automática en TIM1_ARR. En este modo, no se puede generar una forma de onda PWM de 0.

Modo PWM alineado al centro

El modo alineado al centro es cuando el bit CMS en el registro TIM1_CR1 no es "00" (todas las demás configuraciones tienen el mismo efecto en el OCiREF/OCi señal).

Dependiendo de la configuración de los diferentes bits CMS, el bit de indicador de comparación se puede establecer en 1 cuando el contador cuenta hacia arriba, hacia atrás o cuenta hacia arriba y hacia abajo simultáneamente. Consulte 17.3.6 para conocer el modo de alineación central.

La Figura 68 muestra algunos ejemplos de formas de onda PWM alineadas en el centro. La Figura 68 muestra algunos ejemplos de formas de onda PWM alineadas en el centro

TIMx_ARR=8

Modo PWM 1

El indicador se establece en las tres situaciones siguientes (el uso de la flecha indica )

─Solo cuando el contador CMS=01)

─Solo cuando el contador cuenta hacia arriba (CMS=10)

─Cuando el contador cuenta hacia arriba y a Cuando cuenta atrás (CMS=11)

(Figura 68: Forma de onda PWM alineada centralmente STM8 (APR=8))

Modo de pulso único

STM8 Single El modo de pulso (OPM) es un caso especial de uno de los diversos modos descritos anteriormente. Este modo permite que el contador responda a un estímulo y genere un pulso con un ancho de pulso controlado después de un retraso programable.

El contador puede activarse mediante un controlador de reloj/disparador para generar formas de onda en modo de comparación de salida o modo PWM. Al configurar el bit OPM del registro TIM1_CR1 se selecciona el modo de pulso único, donde el contador se detiene automáticamente en el siguiente evento de actualización UEV.

Se genera un pulso sólo cuando el valor de comparación es diferente del valor inicial del contador. Antes de comenzar (cuando el temporizador está esperando su disparo), se debe configurar de la siguiente manera:

Modo de conteo ascendente: contador CCRi≤ARR,

Modo de conteo descendente: contador CNTgt; ; CCRI .

(Figura 48: Ejemplo de modo de pulso único STM8)

Por ejemplo, es necesario generar un pulso después de detectar el flanco ascendente del pin de entrada TI2 y retrasar tDELAY después de detectar el flanco ascendente, para generar un pulso positivo de ancho tPULSE en OC1:

Asuma IC2 como fuente de disparo del canal de disparo 1:

Establezca CC2S=01 del. Registro TIM1_CMR2 para asignar IC2 a TI2.

Establezca CC2P=0 en el registro TIM1_CCER1 para asignar IC2 a TI2.

Establezca CC2P=1 para asignar IC2 a TI2.

Establezca CC2P=0 para permitir que IC2 detecte flancos ascendentes.

Establezca TS=110 en el registro TIM1_SMCR para hacer que IC2 sea la fuente de disparo (TRGI) del controlador de reloj/disparador.

Establezca SMS=110 (modo de disparo) en el registro TIM1_SMCR, IC2 se utilizará para iniciar el contador.

La forma de onda del OPM está determinada por el valor escrito en el registro de comparación (teniendo en cuenta la frecuencia del reloj y el preescalador del contador)

tDELAY está definido por el valor en el registro TIM1_CCR1 .

tPULSE está determinado por la diferencia entre el valor de carga automática y el valor de comparación (TIM1_ARR-TIM1_CCR1).

Supongamos que se genera una forma de onda de 0 a 1 cuando se produce una coincidencia de comparación y que se genera una forma de onda de 1 a 0 cuando el contador alcanza el valor de precarga. El primer paso es establecer OCiM=111 en; el registro TIM1_CCMR1 para ingresar al modo PWM 2; configure selectivamente OC1PE=1 en el registro TIM1_CCMR1 según sea necesario, y configure TIM1_CR1 ARPE en el registro TIM1_CR1 para habilitar la precarga; luego complete el valor de comparación en el registro TIM1_CCR1; regístrese, en Complete el registro TIM1_ARR con el valor de carga automática, configure el bit UG para generar un evento de actualización y luego espere el evento de activación externo en TI2.

En este ejemplo, los bits DIR y CMS en el registro TIM1_CR1 deben estar establecidos en nivel bajo.

Dado que solo se requiere un pulso, OPM=1 se establece en el registro TIM1_CR1 para dejar de contar en el siguiente evento de actualización (cuando el contador pasa del valor de carga automática a 0).

Caso especial: OCx Fast Enable

En modo de pulso único, una detección de borde en el pin de entrada TIi configura el bit CEN para iniciar el contador. La operación de comparación entre el contador y el valor de comparación produce entonces una salida de pulso único.

Para generar una forma de onda con un retraso mínimo, se puede configurar el bit OCiFE en el registro TIM1_CMRi; en este momento, el OCiREF (y el OCx) se ven obligados a responder directamente al estímulo sin depender del resultado de la comparación; La forma de onda de salida es consistente con el valor de comparación. Las formas de onda resultantes son las mismas cuando coinciden. La forma de onda de salida es la misma que la de la comparación.

OCiFE sólo funciona cuando el canal está configurado en modos PWM1 y PWM2.