Preguntas generales sobre temporizadores [STM32 y CubeMx]

1

Estoy aprendiendo solo a manejar los temporizadores en CubeMx. Tengo algunas preguntas simples.

Primera pregunta:

En el árbol del reloj, veo el APB1 / APB2 periférico y el temporizador registra las frecuencias del bus. Pensé que cuando configuraba un preescalador, la frecuencia del reloj del temporizador APBx es la que divide el prescaler, pero en realidad es la frecuencia del reloj periférico APBx.

¿Cuál es la diferencia real?

Segunda pregunta:

He configurado el temporizador 2 en el modo de entrada PWM para medir el período de una señal de entrada. Por lo tanto, en la interrupción de devolución de llamada puedo decir:

period = HAL_TIM_ReadCapturedValue(&htim1, TIM_CHANNEL_2);

¿Esto dice el período en milisegundos? ¿O es esta la manera correcta de solicitar el período?

Tercera pregunta:

Leí en una nota de aplicación:

La frecuencia de TIMxCLK está configurada en 72 MHz, el preescalador es 0x0, por lo que la frecuencia del reloj TIM2 es de 72 MHz. Por lo tanto, el valor de frecuencia mínimo a medir es de 1100 Hz.

¿Cómo calculo esa frecuencia mínima?

Al configurar el modo de entrada PWM o el modo de captura de entrada para medir una señal externa, ¿cómo puedo elegir el período de preescalador y contador en CubeMx de acuerdo con mi rango de frecuencias?

    

1 respuesta

1

Con respecto a la pregunta de AHB / APB, esto se explica mejor con una mirada al Árbol del Reloj.
AHB y APB no son el mismo bus. El AHB tiene memoria y núcleo, el APB tiene periféricos. En términos de energía, estos podrían no tener la misma velocidad.

Un caso especial en los chips ST es que los periféricos, incluidos los temporizadores registros , están sincronizados en PCLK1 y la fuente del reloj del temporizador está en un múltiplo de PCLK1. Esto permite un APB1 más lento, pero también permite temporizadores más rápidos.

  

¿Esto dice el período en milisegundos?

Da el resultado en tics del temporizador.

  

La frecuencia TIMxCLK se establece en 72 MHz, el prescaler es 0x0, por lo que la frecuencia del reloj TIM2 es 72 MHz. Por lo tanto, el valor de frecuencia mínimo a medir es de 1100 Hz.

¿Cómo calculo esa frecuencia mínima?

Reloj / Temporizador máximo = 72 MHz / (2 ^ 16) = 1.09863281 kilohertz.

  

¿Cómo elijo el período de prescaler y contador en CubeMx de manera efectiva de acuerdo con el rango de mi frecuencia?

Probablemente no pueda usar un rango si necesita un rango de captura grande. Puede cambiar los precalificadores automáticamente, como lo hace su multímetro en el rango automático.

    
respondido por el Jeroen3

Lea otras preguntas en las etiquetas