Trabajo en un proyecto que necesita 36 señales PWM para manejar 36 MOSFET. ¿Puedo usar un microcontrolador con un número limitado de PWM y configurar todos los pines como salida de PWM o necesito encontrar un microcontrolador con 36 pWM?
Trabajo en un proyecto que necesita 36 señales PWM para manejar 36 MOSFET. ¿Puedo usar un microcontrolador con un número limitado de PWM y configurar todos los pines como salida de PWM o necesito encontrar un microcontrolador con 36 pWM?
Primero que todo
Entonces, ¿puedo usar un microcontrolador con un número limitado de PWM y configurar todos los pines como salida de PWM?
no puede configurar cada pin MCU como salida PWM. La salida PWM físicamente controlada debe ser controlada por un temporizador. Pero puede configurar MCU como pin de salida GPIO y controlarlo por software.
Puede ser difícil encontrar MCU con 36 salidas PWM. Por lo tanto, si la frecuencia de PWM no es muy alta, puede implementar el SOFTWARE PWM utilizando uno o más temporizadores. También como solución, puede usar MCU y registros de desplazamiento para controlar 36 salidas PWM. Pero en este caso, la velocidad de conducción de Shift Register debe ser lo suficientemente alta. He utilizado esta solución para controlar los LED a baja velocidad de PWM a solo 100 HZ.
Puede seleccionar MCU de la serie STM32 con muchos temporizadores. Pero esto traerá gastos extras.
No sé si su caso de uso lo permite, pero considere no usar PWM en absoluto, ya que el hardware PWM con 36 salidas individuales es poco práctico.
Puede probar el software PWM, pero incluso entonces es probable que tenga problemas para alternar cada pin en el momento adecuado en el peor de los casos (como varios pines establecidos en valores casi idénticos), debido al tiempo de procesamiento de interrupción.
En lugar de PWM, puede enviar el bit más significativo de todos los valores del ciclo de trabajo a los respectivos pines, simultáneamente. Luego darías los segundos bits más significativos, y así sucesivamente. Cada conjunto de bits en la secuencia se aplicaría a las salidas durante un tiempo T proporcional a 2 N , donde N es el número ordinal de los bits (por ejemplo, los bits menos significativos para 10μs, los siguientes para 20μs, luego 40μs y así sucesivamente). Aunque no es estrictamente PWM, este esquema permite modular la amplitud promedio de docenas de salidas a precios muy bajos.
Esteesunejemplosimpledecuatrosalidascontroladasporvaloresdeciclodetrabajode4bits,peroelconceptoseescalamuybienparamássalidas.Losbitsnonecesariamentetienenquesalirenningúnordenespecífico,siempreycuandoseapliquenalassalidasparaladuraciónadecuada.
Probablementetendríaunamatrizdevaloresdeciclodetrabajoindividualesparacadasalidaensucódigo(porejemplo,uint8_tdutyCycle[36]
),quenecesitatransponer(hacerfilasencolumnasyviceversa)enunamatrizdeestadosdesalida(comouint64_toutputStates[8]
ouint8_toutputStates[5][8]
),paraquepuedaenviarlosalosregistrosdeE/S.
Aquíestálaoperaciónrealizadaenelejemploanterior:
Hayalgunasmanerasdehacerestatransposiciónbitabitdemaneraeficiente,probablementemejorexplicadapor
Puede usar varios microcontroladores baratos con temporizadores suficientes para resolver su problema para altas frecuencias y conectarlos con i2c. Tal vez es posible utilizar un chip (s) con temporizadores.
Lea otras preguntas en las etiquetas microcontroller pwm