Inicio Componentes Técnicas de Diseño en MCU de Bajo consumo

Técnicas de Diseño en MCU de Bajo consumo

En los mercados tan competitivos que nos encontramos hoy en día, a los diseñadores se les exige diseñar más funcionalidades por menos: menos coste, menos consumo, menos tamaño. Esto es especialmente cierto, en los mercados a los que van dirigidos la eficiencia energética y a los productos “verdes”. Las próximas generaciones de microcontroladores como los RX100 de Renesas,  están diseñados para ahorrar energía, sin influir en los fuertes niveles de rendimiento de CPU, con avanzada integración de periféricos, de memoria y con un consumo casi nulo en las operaciones.

Estos dispositivos innovadores, pueden despertarse rápidamente desde el modo de espera, consumiendo mucha menos corriente que las soluciones existentes, y consiguiendo excepcionales niveles de rendimiento. Estas son ventajas que pueden usar los ingenieros de sistemas, para crear productos que ofrecen una amplia gama de nuevas capacidades, que se ajustan a los requerimientos de los mercados de hoy y del mañana.

Este artículo destaca las ventajas de utilizar las características de bajo consumo de los microcontroladores de 32 bits, como los RX100 de Renesas y muestra como los ingenieros de sistemas pueden aplicarlos para diseñar productos alimentados por baterías, dentro de unos límites de disipación de energía extremadamente ajustados. También mostraremos como esta clase de dispositivos pueden usarse en aplicaciones reales de bajo consumo, dando lugar a un aumento de rendimiento en el sistema, pero al mismo tiempo una disminución del coste total del mismo. Los microcontroladores RX100, son los primeros Microcontroladores de 32 bits, de la industria que combinan la revolucionaria tecnología del control de alimentación, con las características innovadoras de tiempo ultrarrápido al despertar, tiempo de espera nulo de acceso a flash, múltiples funciones de seguridad, USB 2.0 integrado host/device y on-the-go, todo a un precio muy competitivo.

Estos microcontroladores son la mejor opción para aplicaciones de 32bits, de gama baja, como dispositivos sanitarios móviles, contadores/medidores inteligentes, sistemas de seguridad, así como sensores, detectores y otros elementos de control industrial y equipos de automatización de edificios. Las principales características de bajo consumo de estos dispositivos incluyen:

•Excepcional eficiencia energética en modo activo: 100µA/MHz

•Tiempo de despertar,  Ultra-rápido: 4.8µs ó menos.

•Arquitectura Superior: Rendimiento 3.08 Coremarks/MHz.

•Seis modos de operación, además de otras numerosas opciones de diseño para el ahorro de energía.

•Periféricos estándar y avanzados: ADC, LVD, RTC, USB, y más. 

Múltiple modos de funcionamiento, optimizados en consumo (alta velocidad, media velocidad y baja velocidad) minimizan el consumo de energía cuando son necesarias distintas velocidades de CPU, para distintas tareas de la aplicación. Además tres modos de bajo consumo (dormido, profundamente dormido y espera de software), en combinación con el corto tiempo de despertar, desde estos modos, les permite a los ingenieros de sistemas afinar en el rendimiento del sistema y en la fuente de alimentación para satisfacer los requisitos de una aplicación específica. Hay muchas otras técnicas de ahorro de energía que deben tenerse en cuenta, como el uso de tecnología de tiempos de espera nulo de acceso a flash, que disminuye el consumo de energía, porque la CPU no tiene que permanecer inactiva mientras espera los datos obtenidos del almacenamiento no volátil. Cada módulo de los periféricos pueden apagarse individualmente, para que aquellos que no se utilicen,  no malgasten energía. Un sistema de Reloj avanzado, permite que la velocidad de los relojes de los periféricos se pueda reducir mientras que el de la CPU opera a la máxima frecuencia. Por otra parte, se pueden elegir varios osciladores (HOCO o LOCO) para la CPU y obtener una reducción de  consumo extra en algunas situaciones, mediante la utilización de estos relojes para reemplazar el Phase-Lock Loop (PLL).

La arquitectura de CPU de la familia RX100 es extremadamente eficiente en cálculo, logrando el mayor número posible de instrucciones por mW. La latencia de interrupciones es tan sólo de 5 ciclos y el rendimiento de procesamiento es clasificado en 1.54 DMIPS/MHz y 3.08 Coremarks/MHz. 

El gran número de buses en paralelo de la arquitectura, hace posible movimientos simultáneos de datos entre la CPU, Flash, SRAM y los periféricos. Ésta característica de diseño asegura que no se presenten cuellos de botella cuando la CPU se despierta desde un modo de bajo consumo/apagado. Al mantener un control directo de todos los elementos de desarrollo y fabricación en Renesas, nuestros expertos de tecnología de semiconductores, permiten la producción de alta calidad y diseño optimizado de sistemas, que los clientes pueden usar para implementar productos y sistemas de ultra-bajo consumo.

Como previamente hemos mencionado, la CPU tiene tres modos de control de energía: alta velocidad, media velocidad y baja velocidad. Cada uno de estos modos pone a disposición un conjunto de periféricos diferentes. Sin embargo, deben aplicarse algunas restricciones. La disponibilidad de algunos osciladores, PLL, la programación de la memoria Flash a ciertas frecuencias de reloj, dependen del modo de funcionamiento seleccionado. Por el contrario, los requisitos de voltaje de alimentación del MCU, no se ven afectados por los modos de funcionamiento de regulación de energía. Las operaciones siempre están permitidas en todo el rango de funcionamiento de alimentación del MCU desde 1.8V a 3.6V. Sin embargo, las frecuencias de reloj utilizadas, en los modos de alta, media, y baja velocidad, sí dependen de la tensión de alimentación. (Ver tabla 1.) Además de los tres modos de regulación de energía, los RX100 también ofrecen los modos de funcionamiento mencionados de bajo consumo: Dormido, profundamente dormido y espera de Software. En cada uno de ellos, diferentes funciones de MCU son detenidos y/o apagados, ahorrando varias cantidades de corriente. A continuación se pueden ver los detalles:

Modo Dormido (Sleep Mode): La CPU se detiene con los datos retenidos. Esto reduce el consumo de corriente dinámico de la CPU, que es un contribuyente significativo para el consumo de corriente total de la MCU. La CPU se despierta desde el modo dormido al modo activo en sólo 0.21µs a 32MHz.

Modo Profundamente dormido (Deep Sleep mode): La CPU, la RAM y la memoria Flash, se detienen con los datos retenidos. A 32MHz con varios periféricos activos,  la típica corriente de funcionamiento es sólo 4.6mA. Se tarda sólo 2.24µs en despertar a la CPU desde el modo profundamente dormido al modo activo. Espera de Sofware (Software Standby mode): El PLL, y todos los osciladores excepto el sub-clock y el IWDT se detienen. Casi la totalidad de los módulos del RX100: CPU, RAM, Flash, DTC y bloques de periféricos, se detienen con los datos retenidos. El Power on Reset (POR), sigue activo, aunque si fuese necesario, el iWDT, RTC y LVD también pueden funcionar. El consumo de corriente en este modo es de 350nA a 790nA, dependiendo de si se utilizan o no el LVD y el RTC. Al despertarse en el modo de funcionamiento de 4MHz, la operación de la CPU comienza después de un retardo de 4.8µs. Cuando se despierta en modo de funcionamiento de 32MHZ, el tiempo se extiende a 40µs.

Aunque los modos de dormido, profundamente dormido y espera de software de los RX100, son muy útiles para disminuir la corriente que el chip consume, los ingenieros de sistemas pueden usar otras técnicas para lograr una mayor reducción del consumo. Por ejemplo, se pueden establecer individualmente, varios cocientes de división de frecuencia de la señal del reloj. Esta capacidad se aplica al reloj del sistema, al módulo del reloj, al reloj del ADC, y al reloj de la memoria flash. Es una valiosa opción de diseño, cuando los requisitos de aplicación difieren entre los distintos bloques de función. Cada módulo de periférico también tiene un control independiente de apagado por bit. Esta característica permite al software ejercer el control individual de las funciones del MCU para reducir aún más la corriente dinámica.

El resto de este artículo discute el uso de un microcontrolador de 32 bits de bajo consumo, como el RX100, en una aplicación de la vida real, en este caso un medidor de flujo. Esta aplicación es útil para explorar y explicar diversas técnicas de diseño del sistema de ultra bajo consumo. Esta aplicación destaca apropiadamente las técnicas y/o las opciones de diseño de bajo consumo y explica cómo aplicar mejor las características clave de los RX100. Los datos de rendimiento se utilizan para calcular el uso actual promedio del diseño en el ejemplo y mostrar la duración del tiempo de vida de la batería.

 

Diseño de un medidor de Flujo

 

Los medidores de flujo modernos (contadores eléctricos, contadores de agua, de gas…), están evolucionando desde simple lectores manuales de unidades mecánicas,  a versiones electrónicas basadas en microcontroladores con conectividad inalámbrica. Diseños más avanzados ofrecen la flexibilidad de monitorización y comunicaciones de datos, permitiendo el control del sistema por parte de las compañías que dan el servicio. Estas avanzadas funcionalidades deben poder implementarse a pesar de que el medidor esté en funcionamiento. Por lo tanto, la electrónica debe consumir en promedio minúsculas cantidades de energía. La norma es usar baterías, ya que la alimentación AC rara vez está disponible para hacer funcionar el medidor. Las especificaciones típicas de diseño, exigen una vida total de batería de más de 20 años.

Los requisitos primarios de bajo consumo de energía de un medidor electrónico de flujo pueden agruparse según las principales funciones que realiza la unidad. La mayoría de las veces, el microcontrolador opera en los modos de energía más bajos, sólo con el Real-Time Clock (RTC) y el Detector de baja tensión (LVD), activos. También, generalmente se recomienda que la SRAM se mantenga activa, de modo que pueda almacenar los resultados intermedios de procesamiento, eliminando la necesidad de escribir datos continuamente en la memoria flash. Periódicamente el medidor se despierta y hace una medición de flujo. Los parámetros clave (utilizados para la facturación) se guardan en la memoria no volátil por lo que no se perderán si se interrumpe la alimentación. Las comunicaciones con el sistema central de control se llevarán a cabo mediante un transceptor serie, siempre que los datos deban ser recogidos o actualizados. Además, los niveles de tensión de la batería se comprueban regularmente para gestionar los modos de operación de la MCU.

El siguiente análisis, es de un diseño típico de medidor de flujo que analiza en detalle los aspectos clave de su funcionamiento para obtener información esencial en la estimación de vida útil de la batería. Para este ejemplo, los datos provienen de una implementación basada en un chip RX111 (ver Figura 2).

El procesador RX111, la memoria y los dispositivos periféricos integran la mayor parte de las funciones de un medidor de flujo. Los principales periféricos utilizados son: el conversor analógico digital (ADC) que mide la salida del sensor de flujo, un puerto SPI que se conecta al controlador central que recoge datos de varios medidores, y otro puerto SPI que controla la pantalla LCD que muestra el flujo de datos y el estado del sistema. Además, el RTC del MCU realiza un seguimiento preciso de la hora, de cuando se hace cada medición, y el detector de bajo voltaje (LVD) monitoriza continuamente la tensión de la batería del medidor.

 

Descripción Funcional

 

Con el fin de estimar el uso de energía y la vida útil de la batería del medidor de flujo, es necesario identificar factores clave: las principales funciones que el MCU del medidor tiene que ejecutar, qué módulos se utilizan en la realización de las tareas, con qué frecuencia se llevan a cabo las funciones, cuánto tiempo se tarda en ejecutar esas funciones, y la corriente que el MCU utiliza para manejar esas tareas. Algunos de los periféricos del MCU, como el RTC y LVD, operan de forma continua, mientras que otros, como el ADC o puertos SPI, se necesitan sólo por períodos cortos de tiempo. Los detalles de las funciones del ejemplo del medidor de flujo se describen a continuación:

Monitor de Batería: Esta función comprueba el nivel de voltaje de la batería, dando información que se incluye en los datos de estado de funcionamiento enviadas periódicamente al sistema de control central. El monitor de la batería también se puede llevar a cabo una tarea de detección de manipulación, para determinar si el medidor ha sido objeto de un ataque.

El voltaje medido en la batería (y su variación en el tiempo) se utiliza para ajustar la frecuencia de operación de funciones de diversos medidores, porque prolongando el tiempo entre las operaciones, ya que el nivel de la batería cae con estos, la vida útil de la batería puede ampliarse. Cuando el voltaje de la batería baja demasiado, el monitor puede iniciar una señal de ‘going off air’ que da lugar a un uso vital del flujo de datos para ser almacenados en la memoria flash para su posterior recuperación y diagnóstico. Esta operación es raramente necesaria, por lo que no suele estar incluida en el cálculo del tiempo de vida de la batería. (Se insta a los ingenieros de sistemas a establecer la alerta de bajo nivel, en un punto lo suficientemente alto como para asegurar que queda suficiente energía en la batería para que el MCU pueda ejecutar cualquier tarea de ‘último intento’ de recogida de datos y de seguridad.)

Monitor de Flujo: El ADC lee la salida del sensor para medir con precisión la velocidad de flujo. Los datos que proporciona deben ser procesados posteriormente, para determinar las medidas facturables reales. Los cálculos requeridos encajan bien en la capacidad de procesamiento que tienen los RX111.

Enviar Actualizaciones: Esta función comunica los datos clave (caudal, nivel de batería, calidad de servicio, etc) al sistema de control central. El tiempo entre enviar y recibir transmisiones se puede ampliar cuando la batería se agota, con el fin de ahorrar energía de la misma.

Recibir Actualizaciones: El medidor de flujo recibe la función y se activa según las necesidades del control central. Cuando el medidor recibe actualización de datos, la MCU debe ser capaz de realizar rápidamente las funciones de mantenimiento importantes antes de ejecutar dicha actualización. Una tabla de funciones básicas, como la que se muestra en la tabla 3, es una manera conveniente de organizar estas funciones básicas. Muestra los periféricos activos asociados a cada función de medición, la frecuencia con que se realiza el trabajo, y el tiempo que tarda el MCU para ejecutar cada función.

Los datos de la Tabla 3 son los valores estimados para el tiempo requerido de procesamiento del MCU para cada función, en lugar de los valores medidos, debido a que las funciones no han sido implementadas actualmente. Aun así, son las “mejores suposiciones conservadoras” basadas en funciones similares en otras aplicaciones diseñadas y son válidas para los cálculos de uso de potencia en este ejemplo.

 

Opciones de implementación y técnicas de diseño de bajo consumo

 

Típicamente existen varias opciones de aplicación en el diseño de un sistema basado en MCU de bajo consumo. Una de las opciones de software común es colocar el sistema en el modo de apagado, y luego volver a encenderlo después de transcurrido un intervalo de tiempo especificado. Esta opción se llama despertador periódico.

Aplicando el enfoque del despertador periódico al ejemplo del diseño de un medidor de flujo, se especificó el siguiente horario de funcionamiento: El software despierta a la CPU cada segundo. El MCU tiene que ejecutar la función de actualización de envío en cada intervalo de 10 minutos, realizar la tarea de monitorización de batería en cada intervalo de 1 minuto y activar la función de monitor de caudal en cada intervalo de 1 segundo.

La función de recibir actualizaciones es, sin embargo, diferente. Es una excepción en la operación del programa, ya que se ejecuta de forma asíncrona a la base de tiempos del MCU siempre que el sistema de control central lo solicite. A efectos de este ejemplo de aplicación, el peor de los casos es que la función de recepción de actualización se lleve a cabo aproximadamente una vez cada 10 minutos. Por lo tanto, para los cálculos de corriente de consumo del medidor, recibir actualización se considera que es una función regular con un intervalo de 10 minutos. Aquí podemos encontrar más detalles acerca de las principales tareas del medidor que el microcontrolador realiza:

Generación de activaciones periódicas: Debido a que el reloj de tiempo real funciona de forma continua en este diseño del medidor, ofrece un conveniente método de eficiencia energética de bajo consumo para la generación de señal de activación periódica de 1 segundo. El reloj de 128 Hz que alimenta al RTC proviene del Sub-clock (xcin) entrada de 32.768 kHz. Los contadores del RTC producen señales precisas de tiempo (año, mes, semana, día, hora, minutos y segundos) para un máximo de 99 años, haciendo las correcciones automáticas en años bisiestos. El modo de alarma del MCU (ALM) puede generar una interrupción al año, al mes, en una fecha, en un día de la semana, en una determinada hora, minutos o segundos.

Otra fuente de interrupción, la interrupción periódica (PRD), es conveniente para iniciar periodos de tiempo más cortos, ya que puede generar una interrupción cada 2 segundos, 1 segundo, 1/2 segundo, 1/4 de segundo, 1/8 de segundo, 1/16 de segundo, 1/32 de segundo 1/64 o 1/256 de segundo. En el ejemplo de diseño del medidor de flujo se utiliza la interrupción PRD de 1 segundo, para medir el tiempo de funcionamiento.

Monitor de Flujo: Una vez por segundo, el ADC del microcontrolador convierte la salida del sensor externo de flujo para producir datos digitales. El convertidor ADC se enciende por software antes de cada medida. Esto mantiene el bajo consumo de corriente, ya que el convertidor añade 0.66mA al consumo de corriente cuando el MCU está funcionando a 32MHz. A esa velocidad de reloj,  el ADC tiene que estar habilitado 3µs para hacer una medición: 1µs para habilitar el ADC, 1µs para realizar la conversión, y 1µs de retraso antes de que el convertidor sea desactivado. A 32 MHz, el tiempo de levantarse del RX111 a modo activo es de 40µs. Esta vez hay que añadir 15µs que tarda la CPU para procesar los datos de flujo del ADC.

Medición del nivel de Batería: El detector de baja tensión (LVD) en los RX100 tiene dos circuitos de detección de voltaje independientes. El circuito LVD1 mide el voltaje de la batería (VCC). Este puede comparar esta tensión con diez “pasos” de tensión diferentes, que van desde 1.86V a 3.1V. Por el contrario, el circuito LVD2 puede comparar una fuente de tensión externa con cuatro “pasos” de tensión diferentes, que van desde 1,8 V a 2,9 V. En este diseño del medidor de flujo, la VCC se comprueba cada minuto para monitorizar su condición mediante el módulo LVD1 y así obtener una medición más precisa. Se genera una interrupción cuando el nivel comienza a acercarse al límite de tensión inferior especificado en el RX111 de 2.7V a 32MHz de operación. El MCU almacena el voltaje de la batería medida y, si es necesario, envía una alerta al sistema de control central de la compañía del servicio durante la siguiente operación de envío de actualización. La función de medición de la batería puede funcionar a 1 MHz, por lo que su tiempo de reactivación asociado es sólo 4.8µs. Se estima su tiempo de procesamiento (a 1 MHz) en aproximadamente 35µs. Por lo tanto, el tiempo activo total para esta función es de aproximadamente 40µs.

Enviar actualizaciones: cada 10 minutos, el comando de envío de actualizaciones utiliza el periférico SPI para transmitir datos al sistema de control central. Para calcular la energía usada por medidor diseñado, una buena suposición es que se requieren unos 1000µs para procesar y transferir los datos. Recibir actualizaciones: cada 10 minutos, el comando de recepción de actualización utiliza el periférico SPI para recibir datos desde el sistema de control central. Se supone que 2000µs son necesarios para despertar, recibir y procesar los datos.

 

Cálculo promedio del consumo de corriente del MCU

 

Tabla 4: muestra el tiempo de ejecución y el consumo de corriente de cada una de las funciones del medidor de flujo. 0.6mA de consumo de corriente (modo de alta velocidad de ejecución, Tabla 3) se utiliza aquí porque la CPU del RX111 está activa y algunos  periféricos también pueden estar activos. Cuando el ADC está activo, se añade 0.66mA al consumo de corriente. Para determinar la vida de la batería del medidor,  la corriente media individual de cada función se calcula multiplicando el Consumo de corriente por el Ciclo de Porcentaje Activo. Los resultados se muestran en la columna de la derecha en la Tabla 5. La suma de estas contribuciones es la corriente total promedio MCU (ICC): 1.46µA. 

De los principales contribuyentes al consumo de corriente promedio del medidor, están, el modo de espera de software, 0.79µA, que representa alrededor del 54% del total 1.46µA, mientras que la función de monitor de flujo consume 0.62µA, aproximadamente el 42% del total. En aplicaciones como ésta, que tienen relativamente largos períodos de inactividad, la corriente consumida en el modo de espera de software y modo de ejecución generalmente aporta la mayor parte de la corriente media del MCU. Por lo tanto, es importante que el MCU utilizado en el diseño, tenga excelentes características de bajo consumo en ambos modos. 

 

Cálculo de vida útil de la Batería

 

Para la aplicación del ejemplo, se supone que la batería del medidor tiene una capacidad de 300mAh y proporciona aproximadamente 3V para la mayor parte de su vida. Teniendo en cuenta esta información, la vida útil de la batería se calcula dividiendo la capacidad de la batería entre la corriente media del MCU, tal como se indica a continuación: 300.000 µAh/1.46µA = 206243 horas, o 23,5 años. El cálculo revela que el tiempo de vida útil de la batería del medidor de flujo basado en RX111, excede el requisito especificado para 20 años. Este resultado demuestra claramente las ventajas de diseño del sistema, obtenidos por la aplicación de las características de bajo consumo excepcional de un RX100.

Los anteriores cálculos de la vida útil de la batería, se centran en la corriente aportada por el microcontrolador. Para mayor claridad, la corriente consumida de componentes externos y las características de autodescarga no se consideran en este ejemplo. 

Diversas técnicas de diseño son útiles para aplicaciones en las que deben considerarse dispositivos externos; sin embargo, están más allá del alcance de este artículo.

Las características avanzadas de bajo consumo de los RX100, los hacen excelentes para soluciones de medidores de flujo y otras aplicaciones similares que requieran funcionamiento con baterías. De las características más útiles del dispositivo, nos encontramos algunas como las siguientes:

 

• Eficiencia de consumo en modo activo (Run mode).

• Muy bajo consumo de corriente en espera de sofware (Software Standby).

• Rápido tiempo de despertar desde el modo de espera de Sofware.

• Bajo consumo de corriente para el RTC y LVD.

• Procesamiento eficiente de energética en frecuencias de reloj más bajas. 

 

Los modos de funcionamiento a bajas frecuencias en los RX100, permiten alargar la vida de las baterías, si las rutinas de la aplicación principal tienen un tiempo de ejecución fijo, es decir, uno que no está determinado exclusivamente por el rendimiento de la CPU.

Los microcontroladores de Renesas de la serie RX100, ofrecen un rendimiento excepcional junto con avanzados ahorros de energía, para abordar mejor los requisitos de diseño de aplicaciones que tienen limitados requerimientos de energía. Estos impresionantes dispositivos de 32 bits dan a los ingenieros de sistemas emocionantes oportunidades de producir nuevos productos, que extienden la vida de las baterías a límites que previamente eran imposibles de conseguir. Las técnicas de reducción del consumo de corriente descrita, facilitan el diseño de productos respetuosos con el medio ambiente y destierran la idea de sustituir frecuentemente las baterías o recargarlas.


Etiquetas
mcu