Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuáles son las diferencias entre los diferentes tipos de temporizadores en el microcontrolador stm32f103?

¿Cuáles son las diferencias entre los diferentes tipos de temporizadores en el microcontrolador stm32f103?

Tres modos de conteo del contador

Modo de conteo ascendente: comenzando desde 0, contando hasta el valor preestablecido de arr, generando un evento de desbordamiento y volviendo a contar

Modo de conteo regresivo: comienza desde el valor preestablecido de arr, cuenta hasta 0, genera un evento de desbordamiento y regresa para reiniciar.

Modo de alineación central: comienza a contar hacia arriba desde 0, cuenta hasta llegar , genera un evento de desbordamiento y luego cuenta hacia abajo. Después de contar hasta 1, se produce un desbordamiento y luego la cuenta hacia arriba comienza desde 0. (Este método técnico también se puede llamar conteo ascendente/descendente)

Las funciones principales de los temporizadores básicos (TIM6, TIM7):

Solo la función de temporización más básica. Los temporizadores básicos TIM6 y TIM7 contienen cada uno un contador de carga automática de 16 bits controlado por sus respectivos preescaladores programables

Las funciones principales de los temporizadores de uso general (TIM2~TIM5):

Además de las funciones básicas del temporizador, también tiene las funciones principales de medir la longitud del pulso de la señal de entrada (captura de entrada) o generar formas de onda de salida (comparación de salida y PWM)

Temporizadores avanzados (TIM1, TIM8):

El temporizador avanzado no solo tiene todas las funciones del temporizador básico y universal, sino que también tiene todas las funciones de control de motores AC y DC. Por ejemplo, puede emitir 6 señales complementarias con muerto. zonas, funciones de frenado, etc. etc.

Fuente de reloj del temporizador general;

a: Reloj interno (CK_INT)

b: Reloj externo modo 1: Pin de entrada externa (TIx)

c: Modo de reloj externo 2: Entrada de disparador externo (ETR)

d: Entrada de disparador interno (ITRx): use un temporizador como preescalador para otro timer

Generación del reloj interno del periodo de cronometraje universal:

En la captura de pantalla se puede observar que el reloj del cronómetro universal (TIM2-7) no proviene directamente de APB1, pero a través del preescalador de APB1 se llega al módulo temporizador más tarde.

Cuando el coeficiente del preescalador de APB1 es 1, este multiplicador de frecuencia no funciona y la frecuencia del reloj del temporizador es igual a la frecuencia de APB1

Cuando el coeficiente del preescalador de APB1; APB1 Cuando el coeficiente de división de frecuencia tiene otros valores (es decir, el coeficiente del preescalador es 2, 4, 8 o 16), este multiplicador de frecuencia funciona y la frecuencia del reloj del temporizador es igual al doble de la frecuencia del reloj APB1.

Cálculo del valor arr cargado automáticamente en el registro:

Tout= ((arr 1) * (psc 1))/Tclk

Tclk: TIM3 Introduzca la frecuencia del reloj en Mhz.

Tout: Tiempo de desbordamiento de TIM3 (unidad: nosotros).

El tiempo es 1S, la frecuencia del reloj de entrada es 72MHz y el valor agregado al preescalador PSC es 35999, entonces:

((1 psc)/72M)*(1 arr )= ((1 35999)/72M) * (1 arr) = 1 segundo

Entonces se puede calcular el registro de carga automática de ventana arr=1999

El principio de funcionamiento del general temporizador PWM

p>

Tome el modo PWM 2, el temporizador 3 cuenta hacia arriba, el nivel efectivo es alto, el tercer canal PWM del temporizador 3 como ejemplo:

El tercer canal PWM del temporizador 3 El canal PWM corresponde al pin PB0 El valor del vértice del triángulo es el valor del registro TIM3_ARR El valor de la línea roja en la imagen de arriba es TIM3_CCR3

Cuando el contador del temporizador. 3 (TIM3_CNT) comienza a contar primero, es menor que el valor del registro de captura/comparación (TIM3_CCR3),

En este momento, PB0 genera un nivel bajo y el valor del contador (TIM3_CNT) lentamente aumenta,

Cuando el contador (TIM3_CNT) es mayor que el valor del registro de captura/comparación (TIM3_CCR3), el nivel PB0 cambiará, generará un nivel alto y el valor del contador ( TIM3_CNT) continúa aumentando.

Cuando TIM3_CNT = TIM3_ARR, TIM3_CNT vuelve a 0 y continúa contando. El nivel PB0 cambia y genera un nivel bajo. En este momento, nace una señal PWM completa.

Modo de salida PWM;

La salida PWM de STM32 tiene dos modos:

Modo 1 y modo 2, determinados por el bit OCxM en el registro TIMx_CCMRx ( "110 " es el modo 1, "111" es el modo 2). La diferencia es la siguiente:

110: Modo PWM 1, cuando cuenta hacia arriba, una vez TIMx_CNT

Cuando cuenta hacia atrás, una vez TIMx_CNT》TIMx_CCR1, el canal 1 es un nivel no válido (OC1REF= 0), en caso contrario es un nivel válido (OC1REF=1).

111: Modo PWM 2: cuando se cuenta hacia arriba, el canal 1 es un nivel válido una vez TIMx_CNTTIMx_CCR1; de lo contrario, es un nivel no válido.

Se puede ver en lo anterior:

El modo 1 y el modo 2 son complementarios y opuestos entre sí, por lo que la diferencia en la aplicación no es demasiado grande. Desde la perspectiva del modo de conteo, PWM es lo mismo que TIMx cuando se usa como temporizador. También tiene modo de conteo ascendente, modo de conteo descendente y modo de alineación central.

Pin de salida PWM:

Los diferentes pines de salida TIMx son diferentes (la reasignación de pines está diseñada aquí)

Reasignación de la función de multiplexación TIM3:

Nota: La reasignación es para la conveniencia del diseño de PCB.

Vale la pena mencionar que se divide en mapeo parcial y mapeo completo.

Cálculo de la frecuencia de salida PWM:

La salida PWM es una señal de onda cuadrada y se determina la frecuencia de la señal. por TIMx La frecuencia del reloj y el registro TIMx_ARR están determinados

El ciclo de trabajo de la señal de salida está determinado por el registro TIMx_CRRx:

Ciclo de trabajo = (TIMx_CRRx/TIMx_ARR)*100

La fórmula de cálculo de la frecuencia PWM es:

donde

F es la frecuencia de salida PWM, la unidad es: HZ;

ARR es el registro de recarga automática (TIMx_ARR);

PSC es el preescalador (TIMx_PSC);

72M es la frecuencia del sistema;

salida PWM del temporizador avanzado STM32

Diagrama de forma de onda de PWM complementario con tiempo muerto en todo momento

El microcontrolador STM32F103VC tiene 2 temporizadores avanzados TIM1 y TIM8

Estos 2 Cada temporizador avanzado puede generar simultáneamente 3 Señales PWM complementarias con tiempo muerto y una señal PWM separada.

Tiene función de entrada de freno. En caso de emergencia, esta función de freno puede cortar la señal PWM.

También cuenta con. soporte para codificador incremental (cuadratura) y circuitos de sensor Hall para posicionamiento

Temporizadores de control avanzado (TIM1 y TIM8) alimentados por un autocargador de 16 bits Consta de un contador accionado por un preescalador programable

Es adecuado para una variedad de propósitos, incluida la medición del ancho de pulso de una señal de entrada (captura de entrada) o la generación de una forma de onda de salida (comparación de salida, PWM, PWM complementario integrado con tiempo muerto, etc.).

Utilizando el preescalador del temporizador y el preescalador de control del reloj RCC, el ancho del pulso y el período de la forma de onda se pueden ajustar desde varios microsegundos hasta varios milisegundos.

El temporizador de control avanzado (TIM1 y TIM8) y el temporizador general (TIMx) son completamente independientes, no comparten ningún tiempo muerto de recurso

El circuito del puente H sirve para evitar Para evitar que los brazos del puente superior e inferior se conecten debido al efecto de retardo de apagado, es necesario establecer el tiempo muerto. El tiempo muerto puede evitar eficazmente el efecto de retardo causado por un brazo del puente que no se apaga completamente mientras que el otro puente. El brazo está en estado conductor. Explota directamente el tubo del interruptor.

Cuanto mayor sea el tiempo muerto, más confiable funcionará el circuito, pero causará distorsión de la forma de onda de salida y reducirá la eficiencia de salida. El tiempo muerto es pequeño y la forma de onda de salida es mejor, pero reducirá la confiabilidad del sistema. Generalmente, este tiempo muerto se establece en componentes de nivel estadounidense. El tiempo muerto no se puede cambiar. Depende principalmente del proceso de fabricación. materiales de los componentes !

En principio, cuanto menor sea el tiempo muerto, mejor. El propósito de establecer el tiempo muerto es en realidad por la seguridad del circuito. El mejor método de configuración es: bajo la premisa de garantizar la seguridad, cuanto menor sea el tiempo muerto, mejor. El propósito es no hacer estallar el tubo de alimentación y evitar que la salida se cortocircuite.

Registro de configuración de exploración de tiempo de zona muerta STM32: registro de control de freno y zona muerta (TIMx_BDTR)