He estado usando los microcontroladores ARM de NXP en productos comerciales con gran éxito durante los últimos 2 años.
En la mayoría de mis proyectos, no uso el PLL para aumentar la frecuencia del oscilador porque nunca encontré que fuera necesario (nunca sentí que la frecuencia del reloj fuera un problema) y porque el PLL aumenta ligeramente el consumo de energía.
Sin embargo, no sé cómo puedo medir qué frecuencia de reloj es suficiente para alimentar mi código. Me quedo con esta pregunta en mi cabeza porque, como es posible que sepa que cuanto más rápido use el reloj, más poder consumirá. Dado que en estos días los equipos portátiles con baterías limitadas son comunes, este es un tema importante.
La pregunta principal aquí es ¿cómo puedo saber si la frecuencia de reloj actual es suficiente para mi código?
En esta pregunta, indico "detenciones o retrasos" porque asumo que si la frecuencia de mi reloj no es suficiente, el primer síntoma que ocurrirá es un tiempo de respuesta lento de las rutinas que consumen tiempo.
Utilizo en casi mis proyectos un sistema de máquina de estado que tiene una función OnIdle()
que se llama cuando el sistema no tiene ningún evento para procesar, por lo que puede poner a la MCU en un modo de bajo consumo. Estaba pensando en medir cuánto tiempo permanece el sistema en esta función y registrar las marcas de agua mínimas y máximas de esta medida para tener números reales sobre si el reloj actual del sistema es suficiente o no.
¿Alguien tiene sugerencias para esto?