Un L6234 que maneja un motor BLDC necesita 3 señales PWM.
Tres L6234 que accionan tres motores BLDC necesitan 9 señales PWM. Esto supone que cada motor requiere un control de velocidad independiente.
Varios fabricantes, por ejemplo Texas Instruments BLDC Cntrol tienen una extensa documentación y Videos sobre la conducción de motores BLDC.
Su consejo es usar un tipo de PWM llamado 'centrado', 'simétrico' o 'conteo ascendente'.
Tipos de PWM de Wikipedia muestra los tres tipos. Un tipo cuenta hacia arriba, otro cuenta hacia atrás y el tercero está centrado.
El conteo ascendente del PWM cuenta hacia arriba, activa el pin de salida 'on' cuando coincide con el valor de umbral, alcanza el conteo máximo, luego restablece el conteo a cero, apaga el PWM y se repite. El conteo descendente de PWM es lo contrario, con "encendido" en el estado del ciclo y "apagado" controlado por el umbral del temporizador. (Algunos temporizadores PWM también pueden revertir el sentido de la señal PWM).
El punto es que, o bien el inicio de la señal PWM se "activa" en un temporizador constante, y el "apagado" se controla, o el "apagado" es consistente y el "encendido" controlado por el valor de umbral.
El PWM 'centrado' cuenta hacia arriba, 'desencadena', continúa contando hasta el máximo, luego cuenta hacia atrás hasta cero, 'desactiva', continúa hasta 0 y luego se repite. Así que tanto el inicio como el final se controlan simétricamente. Según TI, esta es la mejor manera de controlar el control BLDC.
Para el control BLDC, generalmente, un temporizador puede controlar tres salidas PWM y controlar un motor BLDC. Para un motor BLDC, las tres señales PWM están sincronizadas, por lo que pueden ser controladas por un solo temporizador común. Está bien usar más temporizadores para controlar las señales de PWM, se necesitan un par de líneas adicionales de código para mantener los temporizadores sincronizados.
Un Arduino UNO tiene tres temporizadores, pero cada temporizador genera solo 6 PWM, por lo que podría impulsar dos motores BLDC. El software Arduino usa uno de los temporizadores para generar un 'reloj de milis', por lo que no se puede usar uno necesariamente para el control de velocidad BLDC. Por lo tanto, es difícil de usar para más de un BLDC, usando ese L6234.
Está buscando una MCU que tiene tres temporizadores independientes, cada temporizador tiene al menos tres salidas PWM. Hay muchos MCU que pueden hacer eso. Parece que el L6234 podría ser manejado por una MCU de 3.3V.
AFAIK el Arduino Due tiene muchos temporizadores y canales PWM.
Un montón de STM32F, que están disponibles en muy bajo costo . Estos son menos de 10GBP incluyendo impuestos. Esos tableros se parecen a la "memoria flash", por lo que la carga de programas no requiere ningún programador de hardware adicional. La placa también incluye la depuración de hardware (SWD).
Nucleo se puede usar con el software mbed, por lo que no es necesario instalar un IDE para comenzar.