STM32405 ADC en el evento de actualización del temporizador 1 u 8

0

No estoy seguro de lo que debería pedir porque parte de la terminología me confunde, pero lo que estoy tratando de hacer es usar los dos temporizadores de motor (TIM1 y TIM8) en el STM32F405 para muestrear BEMF en un controlador BLDC sin sensores.

En una versión anterior de este hardware, estaba usando un F411 y solo manejaba un motor, por lo que estaba haciendo lo siguiente:

  1. Configure las salidas PWM del temporizador de hardware de TIM1 para controlar el controlador de la puerta (CH1, CH1N, CH2, CH2N, CH3 CH3N)
  2. Configure el temporizador para que funcione a 20kHz y cambie el ciclo de trabajo con un controlador PI. PWM se maneja usando el modo de alineación central 3.
  3. Configure el CH4 de TIM1 para que cuente hasta 1. Use este evento para desencadenar una conversión inyectada por ADC de las 3 resistencias BEMF.

Esto funciona bien, aunque no sea un problema ... Sé que no está bien, pero funcionó.

Sin embargo, ahora que estoy tratando de conducir dos motores con dos temporizadores de motor diferentes, no puedo apoyarme en este mismo método porque no puedo muestrear más de 4 conversiones inyectadas a la vez ... ¿Cuál es la forma correcta de usar dos temporizadores de motor para impulsar dos motores BLDC independientes y capturar las 6 señales BEMF requeridas en la parte superior de la señal PWM alineada en el centro?

    
pregunta testname123

1 respuesta

0

El STM32F405 tiene tres convertidores de AD independientes , que pueden ser activados por una variedad de fuentes.

  • Ya tienes una configuración de trabajo de TIM1 y ADC1 que controla el motor 1.
  • Configure TIM8 canales 1-3 para emitir las señales PWM para el motor 2 y genere el pulso de muestreo en el canal 4.
  • Configure ADC2 para hacer una secuencia de conversión inyectada de las tres señales BEMF del motor 2.
  • Establezca los bits JEXTSEL de ADC2->CR2 a 1110 para usar Timer 8 Channel 4 como activador de la secuencia de conversión inyectada.
respondido por el berendi

Lea otras preguntas en las etiquetas