Controlador PWM de 6 canales dedicado

3

Estoy buscando un IC que me dé un mínimo de 6 canales PWM independientes para el control del motor, preferiblemente con una interfaz SPI, pero esto no es crítico. Mi micro estará ocupado con cálculos de punto flotante, etc., así que no quiero arriesgarme a atarlo. ¿Alguna sugerencia?

    
pregunta s3c

7 respuestas

4

Ya tienes esto:

No hay necesidad de agregar otro chip. Como indicaron Olin y Steven, estos periféricos de hardware probablemente usarán una CPU comparable a un periférico externo. No se arriesgue a escribir su CPU empleando periféricos de hardware.

Más importante aún, el punto flotante en un AVR es su cuello de botella, no el PWM. Considere elegir un microcontrolador con hardware de punto flotante, agregar un coprocesador con punto flotante, cambiar a un procesador que tenga punto flotante y 6 canales PWM (probablemente un DSP o ARM9 que será mucho más complejo y costoso que su Atmega88), o (preferiblemente ) modificando sus algoritmos para ser más rápidos y usar aritmética de punto fijo. Acelerar el PWM de 0.2% a 0.1% (si es realmente útil usar un PWM IC externo) no ayudará si sus algoritmos de punto flotante toman el 200% de su tiempo de CPU.

    
respondido por el Kevin Vermeer
3

Estoy de acuerdo con Steven . No hay ningún problema en que el PWM sea producido por el mismo micro que está haciendo un cálculo pesado porque las señales de PWM se producirán en hardware sin que se requiera la intervención del firmware, excepto cuando desee cambiar las propiedades de PWM. Los módulos PWM integrados son una ventaja, ya que tomará menos ciclos para modificar su configuración de lo que sería pasar un bus SPI o algo para comunicarse con un chip PWM externo.

Todo lo que necesita es un microcontrolador con 6 o más canales PWM de hardware. Eche un vistazo a los dsPIC33Fs de gama alta de Microchip. Debería haber algunos con al menos 6 canales PWM. 6 realmente no es un número enorme para un controlador de gama alta en la actualidad.

    
respondido por el Olin Lathrop
2

¿Cómo es un segundo microcontrolador?

Puede ser una exageración, pero puede configurar fácilmente uno para que sea un dispositivo esclavo SPI para que realice las funciones que desee, incluido PWM.

    
respondido por el Majenko
2

Un microcontrolador separado para su PWM, como sugiere Matt, es una posibilidad, pero tal vez ni siquiera lo necesite. No estás diciendo qué micro quieres usar, pero los controladores NXP LPC175x y LPC176x tienen al menos 6 canales PWM , que están controlados por un hardware temporizador y no requieren software una vez que están configurados, para que pueda dedicar más tiempo a los cálculos. Configurar los temporizadores no debería ser más intensivo en el control que mantener una línea de control con un controlador externo.
Si está utilizando un controlador diferente, aún puede usar uno de los LPC1751 como un controlador PWM. Es un controlador de extremo inferior, pero tiene más que suficiente a bordo para hacer el PWM.

    
respondido por el stevenvh
2

Tal vez los controladores de LED? Las tiras RGB se controlan generalmente con PWM. Hay algunos buenos controladores que tienen una tonelada de canales, como 8 a 24 salidas PWM. Como el PCA9685. Desafortunadamente, es I2C y 16 canales (sobrecarga de bits), pero es un chip PWM dedicado que puede conectar fácilmente algunos controladores FET para su motor. Creo que es una solución mucho más fácil que la de agregar otro microcontrolador en su tablero.

El PCA9685 puede conmutar hasta 1kHz, lo que me parece lo suficientemente rápido para los motores.

    
respondido por el Hans
1

(1) Si un ATMega88 hizo el trabajo antes sin usar PWM, entonces use uno como esclavo permitiría la reutilización de la mayoría del software y hardware, a un costo similar al de un PCA9685.

(2) El mencionado PCA9685 controlador PWM es un muy buen IC. Pero si desea más flexibilidad y una adaptación más cercana a sus necesidades, casi cualquier procesador moderno de ciclo rápido hará la tarea con el software PWM.

Si quería 256 pasos (y posiblemente no lo hace para el control del motor) y una tasa de cuadros PWM de 1000 Hz (de nuevo bastante más rápido de lo que necesitarían la mayoría de los motores), dos procesadores tienen que tomar decisiones sobre 6 canales PWM 256 x 1000 = 256000 veces por segundo o una vez cada microsegundos. Un procesador que se ejecuta a una velocidad de instrucción de 20 Mhz (reloj de 20 MHz con una instrucción por ciclo o lo que sea) tiene 80 instrucciones para manejar esta actualización, lo cual se realiza fácilmente utilizando un sistema basado en temporizador de software ISR.

Es probable que el requisito sea menos exigente que el anterior. Un poco más rápido se podría manejar con el procesador adecuado. Una implementación mucho más rápida se "quedaría sin viento", pero es probable que no necesites ni esta velocidad.

respondido por el Russell McMahon
0

Usa un PSoC3! Puedes tener tantos canales PWM como quieras. Pienso hasta 24.

Estoy diseñando una placa que tiene 5 x PWM, 5 x decodificadores en cuadratura, y SPI, generador CRC y ADC de 5 canales. Esto es para el control de corriente de 5 motores.

Debería ser posible tener 6 de todo, en lugar de 5.

También pueden hacer PWM alineado en el centro, lo que es fundamental para la medición precisa del control de corriente.

    
respondido por el Rocketmagnet

Lea otras preguntas en las etiquetas