🛠 Control FOC de Motor BLDC en HPM5100

HPMicro HPM5100: Microcontrolador RISC-V de 400 MHz con analógica integrada · avance · Utilisation simultanée des ADC SAR 16 bits et des 32 canaux PWM pour une commande vectorielle haute performance.

Objetivos

Este tutorial tiene como objetivo implementar un Control Orientado al Campo (FOC) en un motor BLDC aprovechando las capacidades analógicas integradas del HPM5100. La meta es reducir el costo de hardware utilizando amplificadores operacionales internos como amplificadores de detección de corriente, mientras se configuran los ADC SAR de 16 bits para un muestreo preciso a 2 MSPS. Sincronizaremos las conversiones ADC con las señales PWM generadas por los 32 canales disponibles para minimizar el ruido de conmutación.

Material Necesario

Pasos

Configure dos de los cuatro amplificadores operacionales integrados en modo PGA (Amplificador de Ganancia Programable). Conecte las derivaciones de medición de corriente de las fases U y V a las entradas diferenciales. Ajuste la ganancia para que el voltaje máximo de la derivación corresponda a la escala completa del ADC (generalmente 3.3V o 1.8V según la referencia interna). ``c // Pseudocódigo de configuración SDK adc_configure_input(ADC_CH0, PGA_GAIN_10X); adc_configure_input(ADC_CH1, PGA_GAIN_10X); ``

  1. Configuración de Amplificadores Operacionales (PGA)

Configure tres pares de canales PWM (6 canales en total de los 32 disponibles) para generar señales complementarias con tiempo muerto para las tres fases. Establezca la frecuencia de conmutación en 20 kHz. Asegúrese de que el registro de sincronización global esté habilitado para alinear todos los contadores PWM.

  1. Inicialización de PWM

Configure los cuatro ADC SAR para que sean disparados por la señal de inicio del ciclo PWM. Esto garantiza que el muestreo de corriente ocurra en el centro del pulso PWM, donde el ruido de conmutación es mínimo. Habilite el modo de doble búfer para no perder muestras durante el procesamiento. ``c pwm_trigger_adc_enable(PWM_TIMER0); adc_set_trigger_source(ADC_TRIG_PWM0); ``

  1. Sincronización ADC-PWM

En la interrupción de fin de conversión ADC, lea los valores brutos. Aplique las transformaciones de Clark y Park para obtener los componentes Id e Iq. Utilice controladores PI para regular estas corrientes. Las salidas de los controladores se transforman mediante la transformación de Park inversa para generar voltajes de referencia. Estos voltajes se convierten en ciclos de trabajo para los canales PWM.

  1. Implementación del Bucle de Control

Verificación

Utilice un osciloscopio para verificar que las señales PWM son correctamente complementarias con el tiempo muerto aplicado. Trace las corrientes de fase mediante salidas DAC (si están disponibles) o un analizador lógico. Compruebe que la rotación del motor es suave y que la velocidad responde a los puntos de consigna sin oscilaciones excesivas. Verifique que el modo de alto rendimiento (480 MHz) esté habilitado si es necesario para el cálculo rápido de FOC.

Para Ir Más Allá

Explore el uso de comparadores analógicos para protección por hardware contra sobrecorrientes. Implemente el arranque sin sensor inyectando señales HF. Pruebe Secure Boot para proteger el algoritmo de control.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales