Pregunta corta
¿Es un PIC24F16KM202 ( hoja de datos ) lo suficientemente potente como para variar el brillo de 12 LED de 12 salidas PWM sin ningún paso visible de los niveles de brillo?
-------------------------------------------
Pregunta completa
Después de usar la herramienta de búsqueda PIC de Microchip para acotar una MCU según los requisitos de mi proyecto, solo me queda PIC24F16KM202 .
Mi preocupación es que algunas de las especificaciones que tiene están en el extremo inferior de la escala en comparación con otros PIC, y no tengo experiencia real antes con microcontroladores (este es mi primer proyecto de MCU/electrónica), no estoy seguro exactamente si / cómo afectará el rendimiento de mi proyecto.
El proyecto se basa realmente en la conducción de LED RGB a través de PWM, y quiero asegurarme de que el PIC sea capaz de desvanecer los LED sin problemas, sin saltos visibles entre los niveles de brillo, y también si la MCU será lo suficientemente potente como para almacenar y ejecutar el programa.
Me gustaría obtener algunos consejos antes de comprar algunos y descubrir que no van a ser lo suficientemente buenos y comenzar de nuevo.
Breve esquema del proyecto:
12*PWM para controlar 4 conjuntos de LED RGB de forma independiente (a través de transistores).
UART para conectar 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 encendido/apagado.
El color del LED RGB se cambiará con poca frecuencia por UART / bluetooth. El brillo/encendido/apagado será controlado con frecuencia por 6 entradas.
Especificaciones PIC24F16KM202:
máx. Salidas PWM: 16
Bases de tiempo PWM: 5
Resolución PWM (bits): 16
Resolución PWM (ns): 62
Velocidad de la CPU (MIPS): 16
Memoria de programa (KB): 12
He estado leyendo la hoja de datos de PIC24F y buscando en Google durante mucho tiempo para tratar de resolverlo, pero, sinceramente, estoy abrumado por la cantidad de información que aún no entiendo. Apreciaría mucho si alguien pudiera ayudarme respondiendo mi pregunta y/o indicarme algún material conciso y relevante que me permita aprender cómo responder la pregunta yo mismo.
Gracias por tu tiempo :)
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 es posible que esto no haga lo que espera. Probablemente sería mejor usar los pines de salida como E/S general y usar interrupciones para crear sus propios períodos PWM. Si lo hace usted mismo usando interrupciones, su elección de micros puede abrirse.
No estoy seguro de que ningún 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 tiene que ser resuelta, pero bajo riesgo
intente hacer PWM utilizando los periféricos existentes en un chip; alto riesgo de disminución del rendimiento si es muy quisquilloso; 7 bits pueden ser pasos casi imperceptibles para algunas personas, para otras pueden tomar 10 bits. Si la base PWM tiene que ser 1kHz, el jitter 1us es 1 LSB. Es un procesador de 16 MIPS, no estoy seguro de que sea práctico controlar 12 salidas a un microsegundo o dos.
use CPLD o FPGA externos para hacer PWM: otro sistema de desarrollo con una curva de aprendizaje pronunciada, pero alta flexibilidad y rendimiento
use micro + chip ASIC diseñado para letreros de video LED con PWM incorporado: la opción más fácil, en mi opinión
Si estoy leyendo la hoja de datos correctamente, tiene 2 SCCP y 3 MCCP, aunque el MCCP se lee como si pudiera generar hasta 6 salidas PWM, solo hay 2 registros de comparación de salida por SCCP y MCCP, por lo que incluso si puede usar cada uno de como una salida separada, terminaría solo con 10 ciclos de trabajo diferentes (no estoy seguro de si eso es posible, en realidad).
Entonces, este PIC probablemente no pueda hacer eso solo con sus módulos de temporizador. Si quieres hacerlo de esa manera, hay otros controladores disponibles.
El STM32F051, por ejemplo, ofrece 8 módulos de temporizador, 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).
Sin embargo, debe verificar el paquete correcto para que todas esas salidas no colisionen 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)
PlasmaHH
papagayos
Rogelio Rowland
papagayos
Rogelio Rowland
papagayos
Rogelio Rowland
papagayos