Equilibrar el desempeño y el consumo de energía en un MCU con funciones integradas
Colaboración de Editores de DigiKey de América del Norte
2017-05-10
Los desarrolladores han tenido acceso durante algún tiempo a los microcontroladores que ofrecen condiciones de funcionamiento de bajo consumo, apagando los periféricos e incluso al propio núcleo para reducir los requisitos de alimentación del sistema. Para algunas aplicaciones, sin embargo, los desarrolladores necesitan un control más directo sobre la utilización de energía para asegurar que las porciones del sistema permanecen con alimentación para satisfacer los requerimientos funcionales clave.
En el pasado, los diseñadores han utilizado dispositivos de administración de energía independientes para construir en un preciso control de alimentación. En contraste, el MCU de Analog Devices ADuCM MCU3029 ofrece una solución integrada que puede ayudar a los desarrolladores a lograr más fácilmente el máximo rendimiento y minimizar el consumo de energía en diseños construidos para la adquisición de datos de sensores, dispositivos usables, y otras aplicaciones del Internet de las cosas (IoT).
Abordar la administración de potencia en MCU
Para diseños de bajo consumo de energía, los ingenieros pueden encontrar una amplia gama de microcontroladores avanzados diseñados con opciones de ahorro de energía. Los dispositivos de alimentación dirigidos a aplicaciones sensibles generalmente ofrecen capacidades tales como el escalamiento de frecuencias que permiten a los ingenieros intercambiar el rendimiento por potencia reducida.
Normalmente, los modos de baja potencia ofrecen reducción de energía graduada al apagar más y más subsistemas del MCU hasta requerir sólo el mínimo necesario para activar los circuitos del MCU. Como un perfeccionamiento adicional de la gestión de la energía, los MCU de potencia ultrabaja agregan modos operativos especiales que por separado pueden administrar la gestión de la energía al núcleo del dispositivo y sus periféricos. Incluso en estos casos, estos modos especiales a veces apagan los periféricos como un grupo, o utilizan mecanismos automatizados que permiten al desarrollador poco control sobre los detalles de la asignación de la alimentación.
Aunque la gestión de energía en MCU normalmente proporciona una gama de modos de funcionamiento de bajo consumo de energía, la transición a un modo de baja potencia normalmente aporta una abrupta caída en la funcionalidad. En muchos casos, las aplicaciones pueden tolerar la pérdida de funcionalidad por períodos limitados. En algunos casos, sin embargo, un preciso control de consumo de energía es esencial para el mantenimiento operativo. El procesador ADuCM3029 de Analog Devices está diseñado específicamente para apoyar los requisitos de gestión de alimentación más complejos en aplicaciones potencia ultrabaja.
Construido alrededor de un núcleo ARMCortex ®®-M3, el ADuCM3029 ofrece 256 Kbytes de código de corrección de errores (ECC) y flash de 64 Kbytes de SRAM configurable con protección multi-bit de paridad. Una variante, el ADuCM3027, tiene 128 Kbytes de flash, pero por lo demás ofrece las mismas características y funcionalidad que el ADuCM3029.
Junto con un acelerador criptográfico de hardware integrado, los dispositivos incluyen un convertidor de analógico a digital (ADC) de 8 canales y 12 bits, así como varios periféricos digitales incluyendo SPI, I2C, UART, GPIO, puerto serial sincrónico (SPORT) y controlador DMA de 25 canales. Incluso con su extensa funcionalidad, el dispositivo normalmente consume menos de 30 μA/MHz en modo activo. Con el ADuCM3029, sin embargo, los diseñadores pueden ajustar aún más el equilibrio entre rendimiento funcional y el consumo de energía.
Ajuste de rendimiento/potencia
Como con la mayoría de los MCU avanzados, el ADuCM3029 incorpora múltiples modos de alimentación diseñados para reducir el consumo de energía durante los períodos de baja actividad. En el modo de hibernación, el dispositivo suele consumir menos de 750 nA apagando el núcleo del procesador y la mayoría de los periféricos, manteniendo la energía a regiones del SRAM seleccionadas por programa. Para períodos cuando la aplicación está inactiva, el modo de apagado del dispositivo requiere sólo 60 nA.
Sin embargo, los programadores se enfrentan con frecuencia a situaciones que requieren cierto grado de actividad periférica cuando el procesador está inactivo. Para abordar esta cuestión, el ADuCM3029 proporciona un modo de alimentación adicional denominado flexible (Flexi) en modo reposo. El modo Flexi lleva el consumo de energía a tan sólo 300 μA, mientras que proporciona una funcionalidad que yace entre los modos activo y de hibernación. En modo flexible, el núcleo del dispositivo permanece en el modo de suspensión mientras los periféricos específicos especificado por el programador permanecen activos (Tabla 1).

Tabla 1: Los modos de alimentación del MCU ADuCM3029 de Analog Devices automáticamente activan (verde) o desactivan (rojo) la energía de algunos bloques en chip, pero todavía permiten a los desarrolladores controlar la alimentación de ciertos periféricos (naranja) o incluso configurar el tamaño de la SRAM retenida (*) durante el modo de hibernación. (Fuente de Tabla: Analog Devices)
Los desarrolladores pueden colocar la MCU en modo Flexi simplemente estableciendo los bits de MODO del dispositivo en registro PMG_PWRMOD en 0 y ejecutar la instrucción WFI (esperar para interrumpir). Con el núcleo del procesador inactivo, el desarrollador puede mantener determinados periféricos funcionales mediante al escribir 0 en cada bit correspondiente al periférico en el registro CLKG_CLK_ctl5 del MCU. Aunque el dispositivo no puede ejecutar instrucciones en este modo, puede continuar realizando actividades tales como transferencias DMA entre periféricos hacia la memoria.
Al proporcionar la capacidad para mantener las operaciones periféricas, el modo Flexi ofrece una solución de alimentación eficiente a un problema común en aplicaciones de sensor donde uno o más sensores necesitan ser muestreado a lo largo de un período de tiempo antes de involucrar al procesador. En este caso, los desarrolladores pueden utilizar el modo de ciclo automático de la ADC integrada para realizar una o varias conversiones en los canales seleccionados, y establecer el controlador DMA para transferir las muestras automáticamente a la SRAM. Después de un número especificado por el programador de conversiones y la correspondiente transferencia DMA, el controlador DMA emite una interrupción para reactivar el núcleo para el posterior procesamiento de los datos muestreados (Figura 1).

Figura 1: En modo Flexi, el procesador de núcleo del ADuCM3029 de Analog Devices se encuentra desactivado mientras determinados periféricos siguen funcionando, permitiendo operaciones tales como la transferencia DMA de múltiples canales de muestras ADC que activan el procesador sólo tras la finalización. (Fuente de la imagen: Analog Devices)
Caché y relojes
Al negociar funcionalidad por rendimiento, el modo Flexi otros modos de bajo consumo ofrecen a los diseñadores un poderoso mecanismo para reducir significativamente la alimentación de sus diseños. Para muchas aplicaciones, tales como los sistemas de alimentación de batería, sin embargo, los diseñadores a menudo necesitan un mayor control sobre el consumo de energía. Con el ADuCM3029, los diseñadores pueden reducir aún más el consumo aprovechándose de una combinación de métodos tradicionales y novedosos.
Entre los típicos métodos convencionales, el uso de caché de instrucciones puede reducir el acceso a la memoria fuera del chip o a la memoria en chip que requiere mucho consumo como Flash. En los sistemas basados en ADuCM3029, los desarrolladores pueden asignar tanto como 4 KB de SRAM para servir como memoria caché. En la práctica, el ahorro de energía específico depende de tasas de aciertos de caché, pero Analog Devices observa que el uso la caché en algunas aplicaciones típicas de referencia puede reducir significativamente el consumo de energía (Tabla 2).
|
Tabla 2: Configurar el ADuCM3029 de Analog Devices para usar algunas de sus SRAM como caché, las aplicaciones típicas de referencia se pueden ejecutar con niveles de potencia que se aproximan al acceso SRAM de baja potencia en vez del acceso a flash de mayor potencia. (Fuente de Tabla: Analog Devices)
El escalado de frecuencia es otro enfoque de larga data para reducir el consumo de energía. Las tasas de reloj del procesador inferiores reducen la instrucción de ejecución y también se traducen en un menor consumo de energía (Figura 2). A diferencia de muchos otros enfoques, sin embargo, el ADuCM3029 permite a los desarrolladores modificar dinámicamente las frecuencias de reloj por separado para el procesador y los periféricos. Aquí, el dispositivo utiliza un bucle de enganche de fase y divisores de reloj accionados por un oscilador interno de 26 MHz o un cristal externo para generar cristal relojes para recursos on-chip que incluyen el procesador, la memoria y las interfaces. Un oscilador interno de 32 kHz o un cristal externo impulsan los relojes de tiempo real (RTC) y temporizador de vigilancia del dispositivo. Los desarrolladores pueden modificar los registros del reloj correspondientes del dispositivo durante el tiempo de ejecución para cambiar las frecuencias de reloj para que coincidan con los cambiantes requisitos de las aplicaciones o las oportunidades para la reducción del consumo energético.

Figura 2: Los diseñadores simplemente establecen algunos registros en ADuCM3029 de Analog Devices para escalar la frecuencia del reloj del MCU sobre la marcha y lograr una caída correspondiente en el consumo de energía. (Fuente de la imagen: Analog Devices)
Ruta de alimentación mejorada
Junto con su apoyo a métodos más convencionales de reducción de potencia, la serie ADuCM3029 ofrece enfoques más novedosos basados en las características del hardware del dispositivo especializado. Diseñado en el paso de potencia del ADuCM3029, un convertidor reductor en chip hace puente sobre la diferencia entre el rango de tensión de alimentación del dispositivo, VBAT (1,74 V - 3,6 V) y el voltaje de funcionamiento de dominio digital interno (1,2 V).
En funcionamiento normal, un regulador integrado de caída baja (LDO) alimenta esta tensión interna. Como con cualquier LDO típico, cuando la diferencia entre la alimentación del LDO y voltaje de carga es alto, la ruta de energía predeterminada simplemente disipa el exceso de energía, lo que se traduce en un derroche de energía. Con este MCU, sin embargo, los diseñadores pueden reducir esta pérdida a altas tensiones de alimentación con sólo unos capacitores externos (Figura 3). En cuanto al software, los desarrolladores simplemente escriben en el registro de control reductor (PMG_ctl1) para activar el convertidor reductor.

Figura 3: Con tan sólo unas pocas líneas de código y algunos capacitores externos, los desarrolladores pueden habilitar el convertidor reductor en chip ADuCM3029 de Analog Dvices para reducir el nivel de tensión aplicada al regulador LDO del dispositivo. (Fuente de la imagen: Analog Devices)
Sobre una topología de bomba de carga basada en capacitor de alta eficacia, el convertidor reduce el nivel de la tensión suministrada al LDO. Por consiguiente, el MCU exhibe una dramática reducción en el consumo de energía a niveles de voltaje en el extremo alto de VBAT (Figura 4). A niveles por debajo de 2,3 V, el convertidor reductor entra en el modo de derivación y sigue VBAT.

Figura 4: En niveles de voltaje de alimentación (VBAT) por encima de unos 3 V, el convertidor reductor en chip ADuCM3029 reduce el consumo de energía del MCU, logrando una reducción relativa del 50% en modo activo, como se muestra aquí, así como en modo flexible. (Fuente de la imagen: Analog Devices)
Muestreo con consumo de energía optimizado
Las funciones como el almacenamiento en caché, el escalado de frecuencia y ola conversión CC-CC en chip funcionan a nivel del sistema para ayudar a reducir el consumo de energía. En el nivel de aplicación, funciones como el modo Flexi ayudan en la reducción de alimentación para periféricos tales como operaciones de muestreo del sensor. Aún así, estos métodos pueden resultar insuficientes en algunas aplicaciones. Por ejemplo, los dispositivos IoT alimentados a batería a menudo son responsables de sensores de muestreo a muy bajas tasas de adquisición, o de la supervisión periódica de algún proceso externo.
Para aplicaciones con baja actividad periódica, los desarrolladores suelen confiar en la RTC de los MCU para mantener un nivel constante de tiempos, así como temporizadores de controlador de cuenta regresiva que se utilizada para activar el MCU en tiempos predeterminados y precisos. Por lo tanto, los MCU avanzados generalmente ofrecen modos de alimentación que conservan la funcionalidad de RTC incluso en los modos de potencia muy baja. Con el ADuCM3029, los desarrolladores tienen acceso a dos RTC separados, el RTC0 y RTC1, que ofrecen opciones adicionales para equilibrar la potencia y el rendimiento.
Como se observa en el cuadro 1, ambos RTC apoyan la operación en modo activo, Flexi, y modos de hibernación, pero sólo RTC0 permanece disponible durante el menor consumo de energía en modo de apagado. En los otros modos, sin embargo, notables diferencias entre los dos relojes proporcionan a los desarrolladores la flexibilidad en la ejecución de aplicaciones de distribución más complejas. Por ejemplo, RTC0 cuenta el tiempo a 1 Hz en unidades de segundos, limitándola a tiempos de activación especificado sólo en segundos. RTC1 puede ser preescalado a través de una amplia gama y proporcionar tiempos de activación de hasta 30.7 μs. La alimentación para cada reloj difiere también. RTC0 es alimentado desde el suministro principal (VBAT), mientras que RTC1 es alimentado por el dominio de alimentación de 1,2 V interno. Como tal, el uso del convertidor reductor opcional reduce aún más el consumo de energía eficaz del RTC1. Quizás más importante, RTC1 admite el mecanismo de SensorStrobe de Analog Devices, un exclusivo mecanismo de baja potencia que ofrece muestreo incorporado en el ADuCM3029.
SensorStrobe es una alarma de RTC1 especial que genera un pulso de salida en el pin RTC1_SS1 del MCU. Los desarrolladores pueden conectar la salida del SensorStrobe de ADuCM3029 a un dispositivo de múltiples sensores externos como ADXL363 de Analog Devices para crear una solución de muestreo de baja potencia con sólo unos pocos componentes (Figura 5).

Figura 5: El mecanismo SensorStrobe de ADuCM3029 proporciona un mecanismo estable, una alarma sincronizada con dispositivos externos, que permite la implementación de un sistema de adquisición de datos simple cuando se combina con un sensor integrado, tales como ADXL363 de Analog Devices. (Fuente de la imagen: Analog Devices)
Analog Devices proporciona el subsistema específico que se muestra en la figura 5 como parte de su kit de desarrollo ADuCM3029 EZ-KIT, el UCM-ADZS3029EZLITE. Junto con una sencilla configuración de hardware, este enfoque requiere sólo unas pocas líneas de código para configurar los registros de dispositivo asociado e iniciar el mecanismo SensorStrobe (Lista 1).
#define PRD_VAL 255
void SensorStrobe_Cfg()
{
// SensorStrobe Pin Mux
*pREG_GPIO2_CFG |= (0x3 << BITP_GPIO_CFG_PIN11);
// Restablecer el contador de RTC
Mientras(*pREG_RTC1_SR1 & 0x0180); //espera hasta que SYNC
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 0;
Mientras(!(*pREG_RTC1_SR0 & 0x0080 )); //espera para sincronización
// Configuración SensorStrobe
// Desencadenante inicial y valor de recarga automática = 255 recuentos de RTC
// RTC funciona a 32KHz, idealmente 1 RTC Count = 30.684us
Mientras(*pREG_RTC1_SR5 != 0);
*pREG_RTC1_SS1ARL = PRD_VAL;
// SensorStrobe a activarse después de 255 conteos de RTC
*pREG_RTC1_CR4SS = (1 << 9); //Activar autorecarga
*pREG_RTC1_SS1 = PRD_VAL; // Comparación de valor inicial
// Habilitar SensorStrobe
*pREG_RTC1_CR3SS = 1;
Mientras(*pREG_RTC1_SR4 != 0x77FF);
// Inicializar el valor del contador a cero
Mientras(*pREG_RTC1_SR1 & 0x0600).
*pREG_RTC1_CNT0 = 0.
*pREG_RTC1_CNT1 = 0.
Mientras(!(*pREG_RTC1_SR0 & 0x0400).
// Activar (start) el contador
Mientras(*pREG_RTC1_SR1 & 0x0180); //espera hasta que SYNC
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 1;
Mientras(!(*pREG_RTC1_SR0 & 0x0080); //esperar para sincronización
returno;
}
Listado 1: Los desarrolladores necesitan establecer sólo unos pocos registros de dispositivo para tomar ventaja de las funciones SensorStrobe del MCU ADuCM3029 de Analog Devices. (Fuente de la imagen: Analog Devices)
Durante el funcionamiento de SensorStrobe, los desarrolladores colocan el ADuCM3029 en modo de hibernación para garantizar el mínimo consumo de energía del MCU durante el prolongado proceso de muestreo. Mientras que el MCU permanece en modo de hibernación, RTC1 cuenta hasta el valor deseado especificado en el registro durante la configuración de SensorStrobe. Cuando se cumplen las condiciones de recuento de SensorStrobe, la señal de SensorStrobe se aplica al pin de entrada de interrupción del ADXL363 activando el dispositivo. A su vez, el ADXL363 ejecuta sus propias rutinas de muestreo de datos. En conclusión, el ADXL363 emite una señal en el pin de interrupción del MCU, causando la activación del MCU desde el modo de hibernación y empieza a procesar los datos muestreados.
En el pasado, los desarrolladores aplicaban de forma sistemática este tipo de diseño de muestreo extendido utilizando un temporizador externo, RTC, o incluso un simple oscilador. Además de añadir a la complejidad del diseño, el uso de una fuente de reloj externa rompe la sincronización temporal entre los datos obtenidos y la propia base de tiempo del MCU. Como tales, los desarrolladores que utilizan el criterio anterior se han visto obligados a volver a muestrear eficazmente sus datos para normalizar su marca horaria del MCU. Mediante RTC1 en modo SensorStrobe, sin embargo, los desarrolladores pueden asegurar que las marcas horarias de muestra permanecen sincronizadas con el sistema basado en ADuCM3029.
Los desarrolladores pueden encontrar una serie de mecanismos discretos que abordan las capacidades de administración de energía del ADuCM3029. Sin embargo, aprovechando que la capacidad interna del dispositivo, los ingenieros pueden conseguir fácilmente una mayor coincidencia entre la potencia y el rendimiento.
Conclusión
La demanda de sistemas para reducir el consumo de energía sigue siendo un reto a la capacidad de los desarrolladores para conseguir el máximo rendimiento en diseños eficientes de energía más pequeños. Teniendo en cuenta su dificultad, cada aplicación requiere un singular equilibrio entre el rendimiento funcional y el consumo de energía.
El sistema integrado de funciones de administración de energía de los MCU ADuCM3029 de Analog Devices proporciona a los desarrolladores la flexibilidad requerida para encontrar ese equilibrio más fácilmente. Con el uso de este dispositivo, los desarrolladores pueden ofrecer una combinación única de alto rendimiento y bajo consumo de energía que requiere cada aplicación específica.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.




