¿Este microcontrolador PIC es lo suficientemente potente como para controlar los LED PWM?

0

Pregunta corta

Es un PIC24F16KM202 ( Hoja de datos ) ¿Es lo suficientemente potente como para variar el brillo de 12 LED de 12 salidas PWM sin que se vea el nivel de brillo visible?

------------------------------------------- / strong>

Pregunta completa

Después de usar herramienta de búsqueda de PIC de Microchip para reducir una MCU según los requisitos de mi proyecto, solo me deja con PIC24F16KM202 .

Mi preocupación es que algunas de las especificaciones que tiene se encuentran en el extremo más bajo de la escala en comparación con otros PIC, y no tienen experiencia real con microcontroladores (este es mi primer proyecto de MCU / electrónica). No estoy seguro de si / cómo afectará el rendimiento de mi proyecto.

El proyecto realmente se basa en la conducción de los LED RGB a través de PWM, y quiero asegurarme de que el PIC sea capaz de atenuar los LED suavemente sin saltos visibles entre los niveles de brillo, y también si la MCU será lo suficientemente potente como para almacenar y ejecuta el programa.

Me gustaría obtener algunos consejos antes de comprarlos y descubrir que no serán lo suficientemente buenos y que volverán a empezar.

Resumen del proyecto breve:

  • 12 * PWM para controlar 4 juegos de LED RGB de forma independiente (a través de transistores).

  • UART para conectarse a un módulo Bluetooth (RN4020?) para controlar el color de los LED RGB.

  • 6 pines de entrada para cambiar el estado de los LED RGB.

  • EEPROM para almacenar el último estado entre activado / desactivado.

UART / bluetooth cambiará el color del LED RGB con poca frecuencia. El brillo / encendido / apagado será impulsado frecuentemente por 6 entradas.

Especificaciones de PIC24F16KM202:

  • Máx. Salidas de PWM: 16

  • Bases de tiempo PWM: 5

  • Resolución de PWM (bits): 16

  • Resolución de PWM (ns): 62

  • Velocidad de la CPU (MIPS): 16

  • Memoria del programa (KB): 12

He estado leyendo la Hoja de datos de PIC24F y busqué en Google durante años para intentarlo fuera, pero honestamente estoy abrumado por la cantidad de información que aún no entiendo. Apreciaría mucho si alguien pudiera ayudarme respondiendo a mi pregunta y / o señalándome algún material conciso y relevante que me permita aprender cómo responder la pregunta yo mismo.

Gracias por tu tiempo :)

    
pregunta parrowdice

3 respuestas

3

Mirando la hoja de datos de ese dispositivo, necesitaría usar la función de comparación de salida para controlar el PWM. Sin embargo, parece que no podrá establecer 16 períodos PWM individuales, por lo que esto puede no hacer lo que está esperando. Probablemente estaría mejor usando los pines de salida como E / S general y utilizando interrupciones para crear sus propios períodos PWM. Si lo hace usted mismo utilizando interrupciones, su elección de micros puede abrirse.

    
respondido por el HandyHowie
3

No estoy seguro de que cualquier micro tenga 12 salidas PWM de hardware individuales. Aparte de ese (no tan) pequeño detalle, el micro que mencionas debería estar bien.

Hay varias opciones que vienen a la mente:

  • usar múltiples micros- la comunicación debe ser resuelta, pero baja riesgo

  • intente hacer PWM usando los periféricos existentes en un chip con alto riesgo de falta de rendimiento si está muy inquieto. 7 bits pueden ser pasos casi indetectables para algunas personas, para otras puede tomar 10 bits. Si la base de PWM tiene que ser 1kHz, la fluctuación de 1us es 1 LSB. Eso es un procesador de 16 MIPS, no estoy seguro de que sea práctico controlar 12 salidas en uno o dos microsegundos.

  • use CPLD externo o FPGA para hacer PWM, otro sistema de desarrollo con una curva de aprendizaje empinada, pero alta flexibilidad y rendimiento

  • use el chip micro + ASIC diseñado para la señal de video LED con la opción más fácil PWM incorporada, en mi opinión

respondido por el Spehro Pefhany
1

Si estoy leyendo la hoja de datos correctamente, tienes 2 SCCP y 3 MCCP, aunque el MCCP dice que podría generar hasta 6 salidas PWM, solo hay 2 registros de comparación de salida por SCCP y MCCP, así que incluso si puedes Si utiliza cada uno de ellos como una salida independiente, terminará solo con 10 ciclos de trabajo diferentes (no estoy seguro de si eso es posible, en realidad).

Por lo tanto, es probable que este PIC no sea capaz de hacerlo solo con sus módulos de temporizador. Si desea hacerlo de esa manera, hay otros controladores disponibles.

El STM32F051, por ejemplo, ofrece 8 módulos temporizadores, 7 tienen capacidades de comparación de captura, en total tiene 17 canales de comparación de captura disponibles (sí, cada canal tiene su propio registro de comparación de captura configurable).

Tienes que buscar el paquete correcto para que todas esas salidas no entren en conflicto entre sí (no se pueden asignar libremente a ningún pin en STM32)

(Menciono este controlador solo porque estoy trabajando con él actualmente y tengo la hoja de datos abierta, seguramente hay otras marcas que ofrecen la misma capacidad)

    
respondido por el Arsenal

Lea otras preguntas en las etiquetas