SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y...

32
SEM: Automedida de consumo Sebastián Fernández, Julián Oreggioni, Leonardo Steinfeld (Tutor) 21 de julio de 2011 Proyecto desarrollado en el marco del curso Sistemas Embebidos Para Tiempo Real (2011). Instituto de Ingeniería Eléctrica. Facultad de Ingeniería. Universidad de la República. Montevideo, Uruguay. Resumen Se implementó un método para que un microcontrolador pueda medir su propio consumo de energía, y el de todo el sistema embebido que forma parte, en tiempo real (Self Energy Metering, SEM). Como un subproducto se implementó el External Energy Metering (EEM), que permite utilizar este desarrollo para medir el consumo a otros sistemas. El objetivo es ayudar al testeo y optimización de código (dentro o fuera del laboratorio) brindando un sistema de medición portable y automatizado. Asimismo, permite la toma de decisiones en tiempo de ejecución en función del consumo real, por ejemplo para ajustar la frecuencia de muestreo de sensores o para ajustar el ciclo de trabajo de una radio. Se escogió el método de medida de consumo basado en la descarga de capacitores. Este método, planteado en [1] para medir el consumo de terceros, se modificó para utilizarlo en forma de auto-medida y se le agregó la posibilidad de medir intervalos arbitrarios mediante la utilización de un conversor AD. El software se implementó en forma modular buscando que su incorporación sea sencilla y poco invasiva. La solución se implementó y probó en un sistema basado en el microcontrolador MSP430F2274 de Texas Instruments. Se pudieron realizar pruebas exitosas del EEM, logrando validar su funcionamiento. Debido a limitaciones de tiempo y del ambiente de desarrollo no se logró hacer funcionar el SEM en la aplicación de un tercero. Los resultados son auspiciosos y permiten esbozar varias líneas de trabajo a futuro.

Transcript of SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y...

Page 1: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida de consumo

Sebastián Fernández, Julián Oreggioni, Leonardo Steinfeld (Tutor)

21 de julio de 2011

Proyecto desarrollado en el marco del curso Sistemas Embebidos Para Tiempo Real (2011).Instituto de Ingeniería Eléctrica.

Facultad de Ingeniería.Universidad de la República.

Montevideo, Uruguay.

Resumen

Se implementó un método para que un microcontrolador pueda medir su propio consumo de energía,y el de todo el sistema embebido que forma parte, en tiempo real (Self Energy Metering, SEM). Como unsubproducto se implementó el External Energy Metering (EEM), que permite utilizar este desarrollo paramedir el consumo a otros sistemas. El objetivo es ayudar al testeo y optimización de código (dentro o fueradel laboratorio) brindando un sistema de medición portable y automatizado. Asimismo, permite la toma dedecisiones en tiempo de ejecución en función del consumo real, por ejemplo para ajustar la frecuencia demuestreo de sensores o para ajustar el ciclo de trabajo de una radio.

Se escogió el método de medida de consumo basado en la descarga de capacitores. Este método,planteado en [1] para medir el consumo de terceros, se modificó para utilizarlo en forma de auto-mediday se le agregó la posibilidad de medir intervalos arbitrarios mediante la utilización de un conversor AD. Elsoftware se implementó en forma modular buscando que su incorporación sea sencilla y poco invasiva.

La solución se implementó y probó en un sistema basado en el microcontrolador MSP430F2274 deTexas Instruments. Se pudieron realizar pruebas exitosas del EEM, logrando validar su funcionamiento.Debido a limitaciones de tiempo y del ambiente de desarrollo no se logró hacer funcionar el SEM en laaplicación de un tercero. Los resultados son auspiciosos y permiten esbozar varias líneas de trabajo afuturo.

Page 2: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Índice

1. Introducción 31.1. Descripción del problema a ser resuelto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3. Objetivo del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4. Alcance del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Diseño 52.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Parámetros del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1. Resolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.2. Consumo máximo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.3. Velocidad de cambio de capacitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.1. Núcleo de SEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.2. SEM Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3. Implementación 103.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1.1. Llaves y Capacitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.2. Conversor AD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.3. Comparador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.4. Circuito para Self Energy Metering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.5. Circuito para External Energy Metering . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.1. Núcleo de SEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.2. Callback de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.3. SEM Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.4. Driver para llaves de capacitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.5. Driver para comparador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2.6. Driver para conversor A/D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4. Pruebas 174.1. Pruebas básicas de validación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.2. Pruebas con un aplicación de terceros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.2.1. Pruebas en Acess Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2.2. Pruebas en End Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5. Conclusiones 205.1. Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Anexos 22

A. Especificación Inicial del proyecto 22A.1. Descripción del problema a ser resuelto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22A.2. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22A.3. Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22A.4. Alcance del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23A.5. Descripción funcional del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

A.5.1. Hardware de medición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23A.5.2. Módulo de control software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

A.6. Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23A.7. Planificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

B. Planificación del proyecto 25

1

Page 3: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

C. Configuración Microcontrolador 27C.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27C.2. Reloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27C.3. Conversor AD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

C.3.1. Consideraciones sobre ruido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28C.3.2. Parámetros de interés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28C.3.3. Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28C.3.4. Conexionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

C.4. Comparador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29C.4.1. Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29C.4.2. Conexionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

C.5. Puertos I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29C.5.1. Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29C.5.2. Pines sin usar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Índice de figuras

1. SEM - Llaves y capacitores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52. SEM - Llaves, capacitores y comparador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53. SEM - Llaves, capacitores, comparador y adc. . . . . . . . . . . . . . . . . . . . . . . . . . . 64. EEM - Llaves, capacitores, comparador y adc. . . . . . . . . . . . . . . . . . . . . . . . . . . 65. Actualización de consumo total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86. Cálculo de consumo parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87. Actualización de consumo parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98. SEM - Conversor AD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119. EEM - Conversor AD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110. SEM - Esquemático en Eagle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211. EEM - Esquemático en Eagle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1312. Diagrama de bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1313. Setup para pruebas básicas de validación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1714. Nuevo enfoque: usar EEM para automedirse . . . . . . . . . . . . . . . . . . . . . . . . . . . 2015. Diagrama de Gantt del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Índice de cuadros

1. Pruebas de validación básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182. Pruebas de validación básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183. Avance de tareas en cada hito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254. Reloj VLO del MSP430F2274 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275. Utilización del puerto de IO 2 del MSP430F2274 . . . . . . . . . . . . . . . . . . . . . . . . . 30

Page 4: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

1. Introducción

1.1. Descripción del problema a ser resuelto

El problema que el presente proyecto intenta resolver es brindarle a un microcontrolador un métodopara que pueda medir, en tiempo real, su propio consumo de energía y el de todo el sistema embebido queforma parte. La medida de consumo deberá estar disponible durante su funcionamiento normal, es decirfuera de laboratorio y sin utilizar instrumentos externos.

Esto pretende ayudar al testeo y optimización de código (dentro o fuera del laboratorio) brindando unsistema de medición portable y automatizado. Asimismo, permite tomar decisiones en tiempo de ejecuciónen función del consumo real, por ejemplo ajustar la frecuencia de muestreo de sensores o ajustar el ciclode trabajo de una radio.

1.2. Antecedentes

Se encuentran en la literatura alternativas para medir el consumo como un observador externo deun sistema (sistema que mide el consumo de otro) o mediante el agregado de hardware o técnicas quepermiten la auto medición del consumo. Tanto unos u otros utilizan alguna de las siguientes técnicas, lascuales se detallan más abajo:

integradores de medidas de corriente, ya sea muestreando los valores de corriente e integrando porsoftware o utilizando contadores alimentados por osciladores cuya frecuencia depende de la corrienteinstantánea;

midiendo carga consumida de capacitores;

caracterizando el consumo de módulos de software y llevando la cuenta de cuantas veces se ejecutan;

utilizando contadores de coulomb que miden la carga consumida en un intervalo de tiempo.

[2] y [1] proponen la medida de consumo utilizando dispositivos externos. [2] plantea un sistema quemide el consumo mediante la caída de voltaje sobre una resistencia, esa señal de voltaje es amplificada,digitalizada y transmitida a un concentrador (Linux en un Linksys NSLU2), que lleva la cuenta del consumode varios nodos. [1] presenta una herramienta denomina Energy Bucket, diseñada para apoyar la progra-mación o el debugging, la misma necesita bastante circuitería externa y un PC. El principio de medida sebasa en la descarga de un condensador (o un par alternados) que alimenta el dispositivo que se quieremedir. La caída de voltaje en esos capacitores es directamente proporcional a su consumo.

Por su parte, [3] y [4] presentan sistemas para auto-medir el consumo. Mientras [3] plantea la idea enun contexto similar al de este proyecto (WSN), [4] la presenta como parte de la gestión de la batería deun marcapaso implantable. El principio de medida de ambos trabajos toma la caída de voltaje por unaresistencia, la conectan a un VCO y después a un contador binario. La cuenta de este contador resultadirectamente proporcional al consumo.

[5] propone resolver el problema exclusivamente mediante software. En efecto, el trabajo propone carac-terizar el consumo de módulos de software de un sistema operativo (contiki), y después cuenta la cantidadde veces que esos módulos son ejecutadas, a partir de eso estima el consumo.

A nivel local, un proyecto de fin de curso de SISEM [6] intentó utilizar un contador de coulombs [7], elproyecto no prosperó porque el chip obtiene un valor de corriente aproximadamente cada 3.5 segundoscon una resolución de 15 bits y 0.88 segundos con 13 bits, siendo esto muy lento para la frecuencia con lasque se querían recoger dicha información. Además de esto, también pasaron la mayor parte del proyectoimplementando la comunicación one wire con el chip y no pudieron trabajar sobre el problema de fondo.

También, mediante un módulo de taller, se diseñó una placa [8] que utiliza el método planteado en [1],esta placa está a disposición de este proyecto.

1.3. Objetivo del proyecto

El presente proyecto tiene como objetivo implementar un método para que un microcontrolador puedamedir, en tiempo real, su propio consumo de energía y el de todo el sistema embebido que forma parte.

3

Page 5: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

1.4. Alcance del proyecto

La solución se implementó sobre un sistema basado en el microcontrolador MSP430F2274 de TexasInstruments. Si bien podría ser de uso general se diseñó pensando en aplicaciones en nodos de redes desensores inalámbricos (WSN), donde los recursos son escasos, en especial: tamaño, energía y memoria.

Del estudio de los antecedentes relevados, se concluyó que para el problema propuesto, el métodode medida de consumo basado en la descarga de capacitores podía resultar interesante. Este método,planteado en [1] para medir el consumo de terceros, se modificó para utilizarlo en forma de auto-medida yse le agregó la posibilidad de medir intervalos arbitrarios mediante la utilización de un conversor AD (estemétodo se describe como fino en la sección 2.1).

El software se implementó en forma modular para permitir su incorporación en forma sencilla y pocoinvasiva a aplicaciones existentes o futuras, mostrando su uso en una aplicación de ejemplo.

Como parte de este proyecto se entrega el hardware, el microcontrolador y circuitos auxiliares en proto-board, y el módulo de software que permitirá medir el consumo del sistema. El hardware se armó en basea lo desarrollado previamente en [8].

4

Page 6: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

2. Diseño

2.1. Hardware

El sistema sobre el cual se desean realizar las medidas se alimentará desde dos capacitores en lugarde alimentarse directamente de una fuente de voltaje. Durante un ciclo de trabajo, el sistema consumirácarga de un capacitor, mientras el otro capacitor se cargará. En el ciclo siguiente de trabajo se intercam-biarán los capacitores, pasando el primero a cargarse y el segundo a alimentar el sistema.

La caída de voltaje en los capacitores se utiliza para calcular el consumo del circuito durante un ciclode trabajo. En efecto, si el voltaje en un capacitor de capacidad C vale V0 en un instante t0 y luego de untiempo t1 pasa a V1, la carga consumida Q1 −Q0 durante el intervalo t1 − t0 es: Q1 −Q0 = C(V1 − V0).

Para implementar el intercambio de capacitores en forma automática se agregan llaves analógicas (verfigura 1). Éstas permiten manipular los capacitores de acuerdo a lo que el módulo de software determine.

Figura 1: SEM - Llaves y capacitores.

La alimentación proporcionada por los capacitores, esta monitoreada todo el tiempo por un comparadorcontra un voltaje de umbral VTH (ver figura 2). Una vez que el voltaje cae hasta ese voltaje, se produce unainterrupción y el módulo de software intercambia los capacitores e incrementa la cuenta de capacitores.Para conocer el consumo en un intervalo de tiempo dado, basta con tener el número de veces que seintercambiaron los capacitores.

Figura 2: SEM - Llaves, capacitores y comparador.

Este método de medida (que llamaremos grueso) cuenta descargas de capacitores completas, con locual el error de cuantización, dependiendo de los parámetros del sistema y de la aplicación en particular,puede ser llegar a ser alto. Para mejorar la precisión de la medida se propone un método (que llamaremosfino), que consiste en agregar un conversor AD (ver figura 3) que permita medir el voltaje de los capacitoresen cualquier momento.

El sistema que se presentó hasta aquí, que denominamos Self Energy Metering o SEM, puede serlevemente modificado y convertirse fácilmente en un dispositivo que mide el consumo a otro sistema. Enla figura 4 se presenta un esquema de cómo sería este funcionamiento, que llamaremos External Energy

5

Page 7: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Figura 3: SEM - Llaves, capacitores, comparador y adc.

Metering o EEM. Los cambios son exclusivamente a nivel de hardware, cambia el conexionado de algunasseñales, lo cual se traduce a nivel del microcontrolador en un #ifdef.

Figura 4: EEM - Llaves, capacitores, comparador y adc.

2.2. Parámetros del sistema

Al momento de diseñar debemos de tener en cuenta como influyen algunos parámetros en la viabilidadde utilizar el sistema y en la resolución que conseguiremos. A continuación analizaremos como influye laresolución del ADC, el tamaño de los capacitores, le resistencia del circuito de carga y la corriente máximay mínima que drena el sistema a ser medido.

2.2.1. Resolución

La resolución del método de medida esta dada esencialmente por la resolución del ADC y el tamañode los capacitores.

La variación de voltaje en el capacitor esta dada por ∆V = ∆Q/C por lo que si el capacitor es muygrande y el sistema consume poca carga, puede ocurrir que la variación de V sea menor a la resolucióndel conversor ADC, con lo que no podremos medir ese consumo.

Por lo que al momento de seleccionar los capacitores y determinar si la resolución del ADC es suficiente,se debe conocer el orden de los consumos a medir.

6

Page 8: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

2.2.2. Consumo máximo

Si el tiempo de descarga de los capacitores es menor al tiempo de carga, luego de varios ciclos el sis-tema se quedará sin energía ya que los capacitores se estarán descargando más rápido de lo que puedencargarse.

Para que esto no suceda, la corriente promedio que se toma de los capacitores debe ser menor a lacorriente de carga. Esta corriente de carga esta limitada por las resistencia en el circuito: resistencia de lafuente, las llaves, el capacitor y el circuito y montaje.

Si estimamos la resistencia de carga en el orden de RON = 80Ω y tenemos en cuenta que el capacitorcomienza a cargarse con un voltaje VTH = 2V y llegará hasta el voltaje de la fuente (por ejemplo VBAT =3V ), no podremos entregar una corriente promedio de más de ((VBAT + VTH)/2)/RON = 3,12mA.

2.2.3. Velocidad de cambio de capacitores

Si se opta por capacitores de valor pequeño para poder tener mayor resolución, se corre el riesgo deque en casos de consumo elevado se deba de cambiar muchas veces por unidad de tiempo los capacitoresy se corre el riesgo de que:

la velocidad de las llaves no sea suficiente,

se este ejecutando más tiempo la aplicación de medida de consumo que la aplicación a la que se lequiera medir el consumo.

Un mayor tamaño de C permitirá tener menos cambios de capacitores.

2.3. Software

El software del sistema de medida está a cargo del cambio de capacitores cuando se alcanza el umbralde descarga predefinido y lleva la cuenta de la energía consumida.

El módulo SEM se estructura en un núcleo con funciones básicas y cáscaras que agregan funciona-lidades extra (por ejemplo bitácora). El módulo SEM se apoya sobre módulos driver que encapsulan losdetalles de la plataforma de hardware.

El módulo es capaz de llevar la cuenta del consumo histórico o total (el total desde el reset del sistema)y el consumo parcial (desde que se indica comenzar una medición). A través de la interfaz pública sepodrán solicitar estos valores en todo momento.

Características deseables del diseño:

Bajo consumo: El módulo deberá utilizar el menor tiempo de procesador posible de forma de que suconsumo no afecte en forma significativa la medida.

Modular y con drivers que permitan a las funciones encargadas de la medida y el control, abstraersede las particularidades del Hardware.

Se busca que insertarlo en una aplicación pre-existente sea lo menos invasivo posible.

2.3.1. Núcleo de SEM

El núcleo cuenta con lo indispensable para implementar las funcionalidades básicas. A nivel funcionaldebe permitir:

inicializar todo lo necesario para un correcto funcionamiento luego de un reset,

calcular e incrementar la cuenta de la carga consumida cada vez que se cambia de capacitor,

poner a cero la cuenta de carga total,

indicar que se desea comenzar a contabilizar consumo a partir de cierto instante (consumo parcial),

devolver el consumo histórico y el consumo parcial.

7

Page 9: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Cada vez que se cambia de capacitor se debe incrementar la cuenta de la carga Q en:

Q = Qanterior + Cactual ∗ (VC,inicial − VC,actual) (1)

Donde :

Cactual: es el valor del capacitor que se acaba de descargar.

VC,inicial: es el voltaje del capacitor cuando comenzó a alimentar el circuito. Debe adquirirse al cambiarde capacitor porque no necesariamente puede estar cargado a la fuente y la fuente puede variar conel tiempo.

VC,actual: es el voltaje del capacitor cuando se considera descargado. Es conocido, es el valor deumbral.

Figura 5: Actualización de consumo total

En la figura 5 se muestra como evoluciona a lo largo del tiempo, la variable q_total que lleva la cuentadel consumo histórico.

Figura 6: Cálculo de consumo parcial

8

Page 10: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Cuando se realiza una medida parcial (ver figura 6), debe tomarse el voltaje del capacitor al comenzarla medida y al terminarla.

Figura 7: Actualización de consumo parcial

Asimismo, deberá contemplarse que pueda haber un cambio de capacitores en medio de una medidaparcial (ver figura 7).

2.3.2. SEM Logger

El módulo SEM Logger permite agregar la funcionalidad de bitácora al medidor de energía. Recibecomandos que permiten:

guardar una medida en la bitácora,

leer los datos almacenados en la bitácora,

resetar la bitácora,

saber si hay datos en la bitácora.

El comando guardar un dato recibe como parámetro identificadores que pueden ser guardados juntocon el consumo medido en ese momento. Cada vez que se solicita el guardado de un dato a la bitácora,ésta pide al SEM Core una medida parcial de consumo y la almacena internamente en una cola junto a losidentificadores recibidos.

Los datos se almacenan en una cola circular de largo definible en tiempo de compilación.

9

Page 11: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

3. Implementación

3.1. Hardware

En esta sección se presentan los aspectos más importantes de la implementación, tanto en el anexo Ccomo en los comentarios del código se puede hallar un mayor nivel de detalle.

Se trabajó con el kit de desarrollo eZ430-RF2500 de Texas Instruments. Este kit está basado en elmicrocontrolador MSP430F2274 y la radio CC2500 (2.4GHz).

3.1.1. Llaves y Capacitores

Para las llaves se utilizó el mismo integrado utilizado por [8]. En este trabajo se escogió el chip CD74HC4316en función de la disponibilidad en plaza y exigiendo un voltaje mínimo de funcionamiento de 2V.

De acuerdo a lo discutido en la sección 2.2 se decidió utilizar dos capacitores iguales de 1mF .

Para los pines que comandan las llaves se sugiere utilizar resistencias de pull up de 1MΩ, de modode garantizar que la llaves estén cerradas (y el chip alimentado) si el microcontrolador los dejará tercerestado. Esto fue incluido en el esquemático pero no fue testeado.

3.1.2. Conversor AD

El ADC que tiene el MSP430F2274 es de 10 bits, puede muestrar hasta 200 ksps y maneja hasta 12canales. Presenta un consumo típico de 0,6mA cuando está prendido y puede funcionar correctamentecon una alimentación entre 2,2V y 3,6V , lo cual nos va fijar el umbral de descarga de los capacitores. Suecuación de conversión es:

NADC = 210−1 Vin − Vref−Vref+ − Vref−

(2)

donde:

NADC es el valor digital convertido.

Vin es el voltaje analógico de entrada al conversor.

Vref− y Vref+ son los voltajes de referencia del conversor y pueden tomar los valores: 0V , 1,5V , 2,5V ,VCC o una referencia externa.

Seteando el bit ADC10ON el ADC empieza el proceso de conversión, cuando termina se genera lainterrupción ADC10IFG y el valor de NADC se carga en el registro ADC10MEM. ADC10IFG se reseteaautomáticamente cuando la interrupción es atendida.

REFBURST se fijó en 0, lo ideal sería dejarlo en 1, de modo que el buffer de la referencia se prendasolamente durante el sampleo y la conversión, pero eso nos dejar sin Vref para comparador. Si se disponede un micro que tenga comparador se debería poner este bit en 1 para reducir el consumo.

Para optimizar el consumo del conversor AD es recomendable prender y apagar cada vez que se usa.

Para utilizar el sistema en modo SEM, se configura de la siguiente forma (ver figura 8):

Vref− = 0V (GND)

Vref+ = VCC (VCC es el voltaje de la batería que se quiere auto-medir)

Vin = 1,5V (referencia interna)

En este caso la ecuación queda de la siguiente manera:

VBAT = 1,5 ∗ 1023/NADC (3)

Observar que al utilizar el voltaje de la batería que se quiere auto-medir como referencia del conversorAD, el error de cuantización varía con el tiempo. En efecto, sea ∆ este error, tal que: ∆ = 1

2Vref+−Vref−

1023 =

10

Page 12: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Figura 8: SEM - Conversor AD

VCC

2046 . Si VCC cae con el tiempo a medida que se descargan los condensadores, en la misma proporcióncaerá ∆. En principio, esto no representa ningún problema para este proyecto, si nos quedamos con el ∆máximo (el inicial), obtenemos un peor caso que es suficiente para trabajar.

Para medir el consumo de un circuito externo (EEM) se configura de la siguiente forma (ver figura 9):

Vref− = 0 (GND)

Vref+ = VCC

Vin = V extCC (Voltaje de alimentación del circuito que se quiere controlar)

NADC = 1023 ∗ V extCC /VCC ⇒ V ext

CC = VCC ∗NADC/1023

En este caso la ecuación queda de la siguiente manera:

V extCC = VCC ∗NADC/1023 (4)

Figura 9: EEM - Conversor AD

Este esquema se podría mejorar desde el punto de vista de la precisión, colocando Vref+ = V extCC y

Vin = 1,5V . Esto independizaría la conversión AD de la deriva en la batería VCC a costa de incrementarun poco el consumo (en realidad no es tanto porque la referencia interna se puede prender y apagar cadavez que se toma una medida).

3.1.3. Comparador

El microcontrolador MSP430F2274 no cuenta con un comparador con capacidad de interrumpir. Porotro lado, cuenta con dos amplificadores operacionales (OA0 y OA1) que pueden configurarse como com-paradores, que no tienen capacidad de interrumpir, pero permiten sacar al exterior su salida mediante unpuerto I/O. Lo que se hizo fue realimentar esta salida hacia un puerto de entrada que pueda interrumpiral microcontrolador. Estos OAs presentan un consumo típico de 0,2mA cuando están prendidos y puedenfuncionar correctamente con una alimentación entre 2,2V y 3,6V .

11

Page 13: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Tanto el ADC como el OA necesitan un mínimo de alimentación de 2,2V , con lo cual el umbral VTH

debe estar por encima de ese valor, también debe considerarse que la relación de resistencias que sepuede utilizar a la entrada del comparador es discreta y fija.

Para el caso del SEM la configuración es la siguiente:

V − = Vref = 1,5V (pata menos del OA).

V + = 0,6VBAT (pata mas del OA)

Relación de resistencias: 0,6

En funcionamiento normal del SEM, V + arranca cargado al valor de la batería y va cayendo, mientrasV + > V − la salida es uno. Cuando V + = V −, la salida baja a cero y se generara una interrupción (con elflanco de bajada). La condición V + = V − implica 0,6VBAT = 1,5V obteniéndose que VTH = VBAT = 2,5V .

Para el caso del EEM la configuración es la siguiente:

V − = Vin (pata menos del OA).

V + = 0,6VCC (pata mas del OA)

Relación de resistencias: 0,6

En funcionamiento normal del EEM, Vin arranca cargado al valor de la fuente y va cayendo, mientrasV − > V + la salida es cero. Cuando V + = V −, la salida sube a uno y se generara una interrupción (con elflanco de subida). La condición V + = V − implica 0,6VCC = Vin obteniéndose que VTH = Vin = 0,6VCC .

En el caso del kit de desarrollo, VCC = 3,6V ⇒ VTH = 2,2V . Para fuentes de alimentación menoresdebería considerase utilizar otro valor en la pata más del OA, quizás lo mejor sea poner allí Vref = 2,5V ,quedando VTH = 2,5V .

Observar que la necesidad de utilizar el Vref incorpora una fuente de consumo permanente que no esdespreciable (del orden de 0,5mA).

3.1.4. Circuito para Self Energy Metering

De acuerdo a las pautas descritas en las secciones anteriores se implementó el circuito en un proto-board. En la figura 10 se presenta el esquemático del SEM realizado en Eagle.

Figura 10: SEM - Esquemático en Eagle

12

Page 14: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

3.1.5. Circuito para External Energy Metering

De acuerdo a las pautas descritas en las secciones anteriores se implementó el circuito en un proto-board. En la figura 10 se presenta el esquemático del EEM realizado en Eagle.

Figura 11: EEM - Esquemático en Eagle

3.2. Software

El SEM se encuentra estructurado en un núcleo (SEM Core) y drivers para manejo de las llaves, con-versor AD y comparador. El SEM Logger se implementa como un módulo que se comunica con el SEMCore.

Figura 12: Diagrama de bloques

3.2.1. Núcleo de SEM

Funciones públicas

void sem_init(void);

Al ejecutarse la función se inicializa el hardware y las variables del sistema. Se ponen los capacitores acargar y luego de un tiempo se comenza a alimentar el dispositivo desde los capacitores.

13

Page 15: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

void sem_reset_global_meter(void);

Pone a 0 la cuenta de carga total. Esta cuenta se actualiza cada vez que se cambia de capacitor.

float sem_get_global_meter(void);

Devuelve la cuenta de consumo total desde que se ejecutó sem_reset_global_meter. Como la cuentaglobal solo se actualiza cuando se cambia de capacitor, no debe ser tomado como un valor preciso (medidagruesa).

void sem_start_partial_metering(void);

Utilizado para comenzar una medida parcial de consumo (medida fina). Adquiere el valor de voltaje en elcondensador para conocer la carga inicial del mismo.

void sem_get_partial_metering(void (*callback_fn)(float));

Devuelve el consumo desde que se ejecutó sem_start_partial_metering. Adquiere el voltaje en el conden-sador y teniendo en cuenta el valor del condensador al comenzar la medida parcial calcula el consumo(medida fina).

Como el conversor ADC no devuelve en forma inmediata el valor del voltaje en el capacitor, se lepasa un puntero a una función que recibirá el valor de consumo parcial, la cual será ejecutada cuando sefinalicen los cálculos.

3.2.2. Callback de funciones

El registro de la función de callback a llamar cuando se solicita el cálculo de carga parcial se implemen-tó de la siguiente forma.

En módulo sem_core.c:

//puntero a la funcion a llamar cuando se tenga calculo del consumo parcial.

static void (* partial_metering_registered_callback_fn)(float) ;

void sem_get_partial_metering( void (*callback_fn)(float) )

// funcion que calcula consumo parcial

// y registra funcion de callback a llamar cuando tiene el resultado.

partial_metering_registered_callback_fn= callback_fn; // registro de la funcion

adc_start(_get_partial_metering);

void _get_partial_metering(float v_adc)

// funcion interna que recibe valor del ADC y ejecuta funcion de callback registrada.

q_partial += c_value[c_active-1] * (vc_initial_new_partial - v_adc); // actualizo q parcial

vc_initial_new_partial= v_adc; // actualizo vc para nuevo calculo de parcial

partial_metering_registered_callback_fn(q_partial);

En módulo adc.c se tiene:

//puntero a la funcion a llamar cuando se tenga el resultado del ADC

static void (*adc_registered_callback_fn)(float);

void adc_start(void (*callback_fn)(float))

// funcion que comienza conversion

// y registra funcion de callback a llamar cuando se tiene el valor.

adc_registered_callback_fn = callback_fn; // registro de la funcion

while (ADC10CTL1 & ADC10BUSY); //ADC10BUSY, solo read (0 = No operation is active)

// if TRUE then busy

ADC10CTL0 |= ADC10SC + ENC + ADC10ON; //Empieza conversion, al terminar se genera interrupcion

return;

14

Page 16: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

void adc_isr() // rutina de atencion a la interrucion del ADC.

Nadc=ADC10MEM;

Vin = Vcc*Nadc/ADC_FSR;

adc_registered_callback_fn(Vin); // Se ejecuta funcion registrada;

Ejemplo de uso

void update_partial_metering_count( float q_in)

q_partial = q_in; // actualiza variable global con consumo parcial calculado

sem_get_partial_metering(update_partial_metering_count);

3.2.3. SEM Logger

Se basa en una cola donde cada item es una estructura con al menos el elemento Q (carga) y losidentificadores que quieran definirse.

Funciones públicas

void sem_log_init(void);

Inicializa la cola.

void sem_log_partial_q(log_item_t item);

Recibe un item, solicita a SEM core el consumo parcial y lo guarda en la cola.

int sem_log_isempty(void);

Devuelve 0 si la cola esta vacia.

log_item_t sem_log_get_item(void);

Devuelve el último item insertado.

La estructura de los items se definen en sem_logger.h, por ejemplo:

typedef struct log_item_t

float q; // carga

char id; // identificador de la medida

int sequence; // time stamp o secuencia

log_item_t;

Ejemplo de uso

log_item_t item;

item.id = SEM_LOG_ID_BEFORE_SLEEP;

item.id = main_actual_time.seconds;

sem_log_partial_q(item);

3.2.4. Driver para llaves de capacitores

Se trata de la parte más sensible del circuito, cualquier error en el manejo de las llaves puede ocasionarque el sistema se quede sin alimentación. A nivel de la implementación debe considerarse:

Al inicio ambos condesadores se conectan a la batería para que se carguen y se alimenta el sistemacon el condensador C1.La secuencia de cambio de llaves debe cuidar de no dejar sin alimentación el circuito.Puede ser necesario colocar unas resistencias de pull up en los comandos de las llaves.

15

Page 17: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Funciones públicas

void cap_init(void); // Inicializa registro pines I/O y llama a cap_bypass()

void cap_bypass(void); // Se cargan los dos caps, y el sistema se alimenta de baterıas

mediante llaves del C1

int cap_actual(void); // devuelve el numero de capacitor con el que se esta

alimentando, si esta en otro estado reporta 0.

int cap_toggle(void); // cambia de capacitor y reporta cual se empieza a usar

(1 o 2), si esta en un estado invalido invoca cap_bypass() y reporta 0

void cap_sel(int cap_num); // se fuerza a que trabaje con un capacitor determinado

void cap_C1_bat_C2_load(void); // se conecta C1 a la baterıa y C2 a la carga

void cap_C2_bat_C1_load(void); // se conecta C2 a la baterıa y C1 a la carga

3.2.5. Driver para comparador

El comparador debe ser programado para generar una interrupción cuando el voltaje de los capacitoresllega al umbral de descarga. En el caso del microcontrolador donde se desarrollo de la aplicación, esteno cuenta con interrpciones por lo que se optó por sacar la salida del comparador y alimentar un pin deentrada/salida general y generar una interrupción cuando se detecta un cambio en el comparador.

Funciones públicas

void comparator_init(pf_t callback_fn); // inicializa HW y registra funcion a llamar por ISR

3.2.6. Driver para conversor A/D

Funciones públicas

void adc_init(void); // Inicializacion del ADC

Inicializa ADC y fuente de Vref .

void adc_start(void (*callback_fn)(float)); // ADC Start NO BLOQUEANTE

Comienza la conversión y registra función a ser llamada por la ISR una vez que tiene el valor.

float adc_start_block(void);// ADC Start BLOQUEANTE

Comienza conversión y retorma cuando el AD tiene el valor de la medida.

16

Page 18: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

4. Pruebas

En esta sección se describen los diferentes setups de prueba y la metodología utilizada para validar elsistema. Asimismo, se presentan y analizar los resultados obtenidos.

4.1. Pruebas básicas de validación

En la figura 13 se muestra el setup que se armó para realizar pruebas básicas de funcionamiento delsistema. Se configuró el sistema como EEM y se midió el consumo de una resistencia de valor conocido(R = 15,5kΩ). Los condensadores se midieron obteniendo que C1 = 0,88mF y C2 = 0,82mF .

Figura 13: Setup para pruebas básicas de validación

En primera instancia se comprobó cualitativamente que el sistema funcionaba correctamente: tanto lasllaves, como el comparador y el conversor AD funcionaban de acuerdo a lo esperado, tanto separadoscomo integrados.

En segundo lugar se realizó la siguiente prueba básica cuantitativa. Con un osciloscopio se midióla caída de voltaje (∆V ' 1,4V ) y con el valor medido de C1 y C2 se estimó un consumo esperadoQesp,i = ∆V ∗Ci. Este valor se contrasta, en la tabla 4.1, con el valor calculado por nuestro sistema Qmed.Las diferencias prueban que el sistema está funcionando adecuadamente y que el error de cuantización (ysu eventual variación) no es significativo.

En tercer lugar, se realizó la siguiente verificación: se observó en osciloscopio el voltaje V (t) sobre R yse estimó el consumo.

∆Q = I∆t⇒ ∆Q = (V/R)∆t⇒ Q = (1/R)

∫V (t)∆t⇒ (5)

⇒ Qarea,i = (1/R)

∫Vi(t)∆t (6)

En la tabla 4.1 se compara el valor obtenido en el osciloscopio Qarea de acuerdo con la ecuaciónanterior, con el promedio de los obtenidos experimentalmente con el EEM (Qprom

med ) que se listan en la tabla4.1. La comparación muestra que los valores obtenido son consistentes.

17

Page 19: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Qesp(mC) Qmed(mC) Dif. Relativa1.23 1.23 -0.2 %2.38 2.36 0.8 %3.61 3.59 0.5 %4.76 4.72 0.9 %5.99 5.95 0.7 %7.14 7.10 0.6 %8.37 8.34 0.4 %9.52 9.48 0.4 %

10.75 10.70 0.5 %

Cuadro 1: Pruebas de validación básica

Qprommed (mC) Qarea(mC)

C1 1.23 1.25C2 1.14 1.17

Cuadro 2: Pruebas de validación básica

4.2. Pruebas con un aplicación de terceros

Para probar qué tan sencillo o no es integrar el módulo de medida de consumo en una aplicación exis-tente, se eligió un Demo que trae el kit de eZ430-RF2500 de Texas Instruments.

El Demo consiste en dos nodos conectados por un enlace de radio. Uno se denomina Access Point oAP y está conectado a un PC y el otro denominado End Devide o ED está suelto y se alimenta de baterías.Cada cierto intervalo de tiempo el AP mide el voltaje de alimentación y temperatura y lo envía al PC dondese despliega en una consola. El ED hace lo mismo pero lo envía por radio al AP para que éste lo envie alPC.

El primer inconveniente que surgió fue que mientras el nodo se alimenta del banco de capacitores, suVCC estará variando entre 3V y 2,2V aproximadamente y la placa de programación y debug utiliza un VCC

de 3,6V . El voltaje en cualquiera de los pines del micro no puede superar los 0,3V con respecto a VCC , locual no puede garantizarse.

Ante esta situación se optó por probar primero el modo de consumo a terceros (EEM) en el AP ytransmitir al PC el consumo en lugar de voltaje y temperatura.

4.2.1. Pruebas en Acess Point

Se utilizó el mismo esquema planteado en la figura 13, cargando en el microcontrolador el firmware dela aplicación demo que corresponde al AP.

El AP está estructurado en funciones que inicializan el HW y la radio y luego un bucle que se ejecutacada vez que el timer llega a cero (1 vez por segundo).

Por simplicidad se quitó del bucle la parte de medida de voltaje y temperatura ya que utilizan el conver-sor AD al igual que el circuito de medida de consumo. Si se estudiara a fondo la aplicación es probable quese pueda compartir el uso del ADC. Se agregó un llamada al SEM_logger para que registre el consumoal cumplirse el segundo, luego un FOR para tener consumo del micro con la radio apagada y nuevamenteotro registro de consumo. Cada uno de estos registros tiene un identificador diferente para identificar en laconsola del PC si lo que se esta viendo es el consumo del FOR o el consumo mientras transmite.

En estas primeras pruebas surgieron problemas de recursos compartidos, algunos de los pines quenuestra aplicación utiliza para manejar las llaves e interrumpir con el comparador ya están siendo utiliza-das por la aplicación Demo. Afortunadamente se contaban con más pines de I/O libres y se pudo reasignar.

18

Page 20: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

En suma, se logró medir el consumo de un tercero (resistencia) utilizando el módulo EEM en la aplica-ción Demo.

4.2.2. Pruebas en End Device

Una vez solucionados los problemas de recursos compartidos utilizando el AP procedimos a hacer lasmismas modificaciones en el ED.

Luego de realizar varias pruebas no se logró que el ED se comunique con el AP. La razón de esto esque algunos de los pines que usa el módulo de medida están siendo utilizados por el chip de la radio.

También hubo problemas con el arranque del circuito. Inicialmente los capacitores están descargadospor lo que el microcontrolador no funcionará y no podrá a cargar los capacitores. Se intentó forzar las llavescon pull-ups para cuando se de alimentación al circuito las llaves se cierren y se carguen los capacitoresy arranque el módulo. Lamentablemente no se logró el arranque del circuito y queda como un trabajo afuturo resolver esta condición de arranque.

19

Page 21: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

5. Conclusiones

Se destaca que se logró hacer funcionar el sistema en modo EEM, y si bien problemas operativos nopermitieron hacer funcionar el SEM en la aplicación de un tercero, consideramos que quedamos muy cer-ca, en la sección 5.1 retomamos los pendientes y el trabajo que queda planteado a futuro.

La descarga de capacitores como método de medida plantea una ventaja importante: no es necesarioestar continuamente midiendo el voltaje que cae sobre una resistencia, para integrarlo después y obtenerel valor de la carga consumida. Desde este punto de vista, la descarga de capacitores involucra menosrecursos y menos consumo. En su forma más básica, se trata de un condensador descargándose y cuan-do se llega a cierto umbral, un comparador genera una interrupción en un microcontrolador que switcheael capacitor. La desventaja mayor que presenta este método, es que el sistema de medida se pone enserie entre la fuente y la aplicación, con lo cual, cualquier mal funcionamiento del sistema de medida, nospuede dejar sin aplicación. Los métodos que se colocan en paralelo no presentan este problema. Paracompletar el presente trabajo sería interesante inter-comparar los resultados que arroja este método conlos obtenidos mediante la caracterización de módulos de software (por ejemplo Contiki en [5]), así comointer-comparar los dos anteriores con el método propuesto en [4] en base a un VCO.

Una consecuencia de estar en paralelo es la carga inicial de capacitores. Al inicio, los condensadoresestán descargados y el sistema no está alimentado, el sistema no puede encender las llaves y por lo tantono puede cargar los condensadores. Para salir de este dead-lock se pensaron varios alternativas que sediscuten en la sección 5.1.

Lograr el objetivo de auto-medir el consumo resultó ser más complejo de lo que a priori se preveía.La integración presenta dos problemas serios. En primer lugar, el micro-controlador debe contar con losrecursos requeridos (comparador con capacidad de interrumpir, conversor AD y pines I/O). En segundolugar, es muy probable que se presenten conflictos en el uso compartido de éstos. Para lograr que el SEMsea plug and play hay que trabajar a nivel de documentación y de definición de constantes.

Una alternativa para auto-medir el consumo, que permitiría salvar los problemas de integración antesmencionados, sería incluir un microcontrolador dedicado en modo EEM para medir consumo (ver figura 14).La comunicación con la aplicación podría ser mediante una puerta serial, siendo éste el único requerimientoque se le pasaría a una aplicación que desee automedirse. La única desventaja, si puede considerarse tal,es el overhead de área y costo que involucra agregar un microcontrolador.

Figura 14: Nuevo enfoque: usar EEM para automedirse

20

Page 22: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

El microcontrolador utilizado en este proyecto no cuenta con un comparador con capacidad de interrum-pir, esto se solucionó utilizando un amplificador operacional (como comparador) y realimentando su salidahacia un puerto con capacidad de interrumpir. El umbral se implementó mediante el voltaje de referencia.Si bien este esquema soluciona el problema, hay una penalización desde el punto de vista del consumoque es significativa; en efecto, el Vref consume 500µA y el operacional 200µA, y estos consumos se re-gistran todo el tiempo. La alternativa a este problema, pasa por utilizar microcontroladores que integren elcomparador. Dentro de la propia familia MSP430, algunos dispositivos cuentan con el Comparator_A+. Sise mira la hoja de datos del microcontrolador del MSP430F20x1 se puede ver que su consumo típico esde 45µA, valor que resulta mucho más razonable.

La mayor componentes del overhead de consumo viene dado por los periféricos que se tienen todoel tiempo prendido, en una primera aproximación se trataría del comparador (45µA), las llaves (16µA), elmicro (2µA en LPM3) y las resistencias de pull up (si son de 1MΩ y trabajan de a pares, con un VCC = 3V ,el consumo promedio sería de 6µA ), lo cual totaliza 69µA. Si bien habría que hacer un estudio más deta-llado, este valor es muy prometedor.

5.1. Trabajo a futuro

El gran pendiente de este trabajo fue andar el módulo SEM para que la aplicación demo de TI seautomidiera el consumo, habría que evaluar si vale la pena retomarlo o si mejor los esfuerzos se debenenfocar en otra aplicación de pruebas. A futuro quedan planteados varios desafíos:

En virtud de los problemas que se tuvieron con las definiciones de constantes (el archivo que usá-bamos nosotros tenía conflictos con el que usa la aplicación Demo), se debería evaluar si se puedeabstraer fácilmente un poco de la plataforma, las constantes involucradas en la configuración.Habría que revisar la rutina ADC bloqueante, no funcionó cuando se quiso usar con la aplicación demode TI. No queda claro si es un problema de la rutina o consecuencia de los problemas de integración.Para optimizar un poco el consumo, se debería apagar el conversor AD cada vez que se usa (eva-luando los tiempos de set up).En el EEM, para independizarse de la deriva de la batería, conectar Vref = 1,5V al Vin del ADC yconectar V ext

CC al Vref+. Por más detalles ver sección 3.1.2.En el EEM, se debería cambiar la entrada del comparador que hoy tiene 0,6VCC por Vref = 2,5V . Pormás detalles ver sección 3.1.3.Implementar un módulo SEM timer que se encargue de loguear consumo según una condición sobreel timer (poner ejemplo medir cada un segundo o cada una hora).Para el nuevo enfoque presentado en la sección anterior habría que implementar el módulo SEMserial, que implemente los comandos de comunicación entre el micro dedicado y el micro de la apli-cación.Calibración automática del sistema. Los valores de los condensadores se midieron en forma externacon instrumental especial y son constantes del código. La solución más prolija sería implementar unsistema de calibración automática, que estime el valor de los condensadores.Estudio detallado de overhead consumo. Las consideraciones generales que se hicieron en la secciónanterior, deberían afinarse considerando todos los componentes del sistema.Comparar el método de medida utilizado en este trabajo con el presentado en [5] y con [4].Para resolver la carga inicial de condensadores se pensaron las siguientes alternativas:• Unas resistencias de pull-up en la patas de control de las llaves. Esto consideramos que debería

resolver el problema pero no logramos implementarlo en la práctica.• Circuito de arranque manual basado en un botón que imponga el voltaje de la batería directamente

para cargar los condensadores. El hecho de ser manual, podría tener la eventual desventaja, quedependiendo de la aplicación puede no ser tal, de que si el circuito se apaga (se descargan loscapacitores) no se vuelve a prender automáticamente.

• Circuito de arranque automático: por ejemplo basado en un relé, en chips que supervisan laalimentación o usando microcontroladores que brindan esta prestación. La idea sería algo quecuando los condesandores se descargan más allá de un umbral razonable conecte el sistemadirectamente a la batería, y que cuando los condensadores tienen un voltaje aceptable conectael sistema a los condensadores.

21

Page 23: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Anexos

A. Especificación Inicial del proyecto

A.1. Descripción del problema a ser resuelto

El proyecto busca agregar a un sistema embebido basado en un microcontrolador la capacidad demedir su propio consumo durante su funcionamiento normal, es decir fuera de laboratorio. Si bien podríaser de uso general se diseñará para aplicaciones en nodos de redes de sensores inalámbricos (WSN),donde los recursos son escasos, en especial: tamaño, energía y memoria.

A.2. Antecedentes

Se encuentran en la literatura alternativas para medir el consumo como un observador externo deun sistema (sistema que mide el consumo de otro) o mediante el agregado de hardware o técnicas quepermiten la auto medición del consumo. Tanto unos u otros utilizan alguna de las siguientes técnicas, lascuales se detallan más abajo:

integradores de medidas de corriente, ya sea muestreando los valores de corriente e integrando porsoftware o utilizando contadores alimentados por osciladores cuya frecuencia depende de la corrienteinstantánea;

midiendo carga consumida de capacitores;

caracterizando el consumo de módulos de software y llevando la cuenta de cuantas veces se ejecutan;

utilizando contadores de coulomb que miden la carga consumida en un intervalo de tiempo.

[2] y [1] proponen la medida de consumo utilizando dispositivos externos. [2] plantea un sistema quemide el consumo mediante la caída de voltaje sobre una resistencia, esa señal de voltaje es amplificada,digitalizada y transmitida a un concentrador (Linux en un Linksys NSLU2), que lleva la cuenta del consumode varios nodos. [1] presenta una herramienta denomina Energy Bucket, diseñada para apoyar la progra-mación o el debugging, la misma necesita bastante circuitería externa y un PC. El principio de medida sebasa en la descarga de un condensador (o un par alternados) que alimenta el dispositivo que se quieremedir. La caída de voltaje en esos capacitores es directamente proporcional a su consumo.

Por su parte, [3] y [4] presentan sistemas para auto-medir el consumo. Mientras [3] plantea la idea enun contexto similar al de este proyecto (WSN), [4] la presenta como parte del battery management deun marcapaso implantable. El principio de medida de ambos trabajos toma la caída de voltaje por unaresistencia, la conectan a un VCO y después a un contador binario. La cuenta de este contador resultadirectamente proporcional al consumo.

[5] propone resolver el problema exclusivamente mediante software. En efecto, el trabajo propone carac-terizar el consumo de módulos de software de un sistema operativo (contiki), y después cuenta la cantidadde veces que esos módulos son ejecutadas, a partir de eso estima el consumo.

A nivel local, un proyecto de fin de curso de SISEM [6] intentó utilizar un contador de coulombs [7], elproyecto no prosperó porque el chip obtiene un valor de corriente aproximadamente cada 3.5 segundoscon una resolución de 15 bits y 0.88 segundos con 13 bits, siendo esto muy lento para la frecuencia con lasque se querían recoger dicha información. Además de esto, también pasaron la mayor parte del proyectoimplementando la comunicación one wire con el chip y no pudieron trabajar sobre el problema de fondo.

También, mediante un módulo de taller, se diseñó una placa [8] que utiliza el método planteado en [1],esta placa está a disposición de este proyecto.

A.3. Objetivos del proyecto

Estudiar alternativas e implementar un método para que un microcontrolador pueda medir su propioconsumo y el de todo el sistema embebido que forma parte.

Se entregará el hardware, el microcontrolador y circuitos auxiliares, y el módulo de software que permi-tirá medir el consumo del sistema.

22

Page 24: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

A.4. Alcance del proyecto

La solución se implementará sobre un sistema basado en el microcontrolador MSP430F2274 de TexasInstruments.

Del estudio de antecedentes, se concluyó que para el problema propuesto, el mejor mecanismo demedida de consumo es el basado en la medición de consumo de carga de capacitores. Nos basaremos enlos trabajos [1] y [8], implementando una mejora de la solución propuesta en [1].

El software estará implementado en forma modular para permitir su incorporación en forma sencilla ypoco invasiva a aplicaciones existentes o futuras.

Se mostrará su uso entregando una aplicación de ejemplo.

A.5. Descripción funcional del sistema

A.5.1. Hardware de medición

El sistema sobre el cual se desean realizar las medidas se alimentará desde capacitores en lugar dealimentarse directamente de una fuente. La caída de voltaje en el capacitor utilizado para alimentaciónentre cambios permite conocer el consumo del circuito en ese intervalo de tiempo. En efecto, si el voltajeen un capacitor de capacidad C vale V0 en un instante T0 y luego de un tiempo T1 pasa a V1, la cargaconsumida (Q1-Q0) durante el intervalo T1-T0 es: Q1-Q0=C(V1-V0).

Para obtener una medición continua se agregan llaves (ver figura 1). Las llaves permiten manipularlos capacitores para que en un momento dado el sistema se alimente de un capacitor, mientras el otrose carga. Cuando el módulo de software lo determine, se cambiarán los capacitores para alimentarse delcapacitor que se cargaba y poner a cargar el que se utilizaba para alimentación.

La alimentación proporcionada por los capacitores, estará monitoreada todo el tiempo por un compa-rador contra un voltaje de umbral a definir (ver figura 2). Una vez que el voltaje cae hasta ese voltaje, seproducirá una interrupción y el módulo de software intercambiará los capacitores e incrementará la cuentade cuantos cambios de capacitores han habido. Para conocer el consumo en un intervalo de tiempo dado,basta con tener el número de veces que se intercambiaron los capacitores.

Esta medida tiene un error pues podría suceder que en el intervalo de tiempo de interés, el últimocambio se haya realizado pocos instantes antes, con lo cual se computará el consumo de ese capacitoraunque probablemente esté muy cerca de plena carga. Para subsanar este error, se agrega un conversorAD para medir el voltaje del capacitor al momento de finalizar el intervalo y calcular la carga consumidaefectivamente (ver figura 3).

A.5.2. Módulo de control software

El módulo software implementará un API que permitirá insertarlo de la forma menos invasiva posible auna aplicación ya diseñada.

El módulo será capaz de llevar la cuenta del consumo histórico (el total desde el reset del sistema) yparcial (desde que se indica comenzar una medición).

El módulo podrá llevar una bitácora con medidas parciales. Estas medidas contarán con un timestampy un identificador que podrá ser suministrado por la aplicación que hace uso del módulo.

Desde la aplicación se podrá solicitar en todo momento:

consumo histórico

consumo parcial

almacenar en la bitácora el consumo en determinado momento con un identificador.

obtener el historial de marcas de medición con su time stamp e identificador.

También es deseable que se pueda inhabilitar el mecanismo hardware de medida y que el sistema pasea alimentarse directamente de la fuente.

A.6. Restricciones

El microcontrolador a utilizar deberá contar con un comparador contra un umbral interno capaz deinterrumpir y un conversor AD.

El módulo deberá de implementar las funcionalidades utilizando el menor tiempo de procesador posiblede forma de que su consumo no afecte en forma significativa la medida.

23

Page 25: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Deben determinarse los valores de capacitores y consumos máximos del sistema para determinar losparámetros de funcionamiento.

A.7. Planificación

1. Estudiar antecedentes y definir método de medida. (8 hs)

2. Diseño del módulo de software para la medida (interfaz pública para medir y obtención de datos,arquitectura, almacenamiento). (12 hs)

3. Definir los parámetros del sistema (máxima corriente) y de la medida (resolución temporal o de co-rriente) que influirán en los parámetros del sistema de medición. (3hs)

4. Diseño e implementación del hardware y drivers.

Armado de hardware (5hs)drivers (implementar y probar) (5hs)

5. Implementación del módulo de software para la medida. (20 hs)

6. Desarrollar y probar en una aplicación de ejemplo (la aplicación de contiki?). Medir el incremento deconsumo.

diseñar/entender aplicación de ejemplo (6 hs)integración con modulo medición y pruebas de validación (12 hs)

7. Documentación y presentaciones (12 hs)

Trabajo a futuro

Estudiar el incremento de consumo que aporta cada funcionalidad. Time stamp, ADC, etc. (12 hs)

Calibración

• diseño de método (3hs)• implementar método diseñado (9 hs)

Hitos

Avance 1: sistema diseñado y hardware con driver funcionando

Avance 2: sistema implementado, aplicación de prueba, aplicación de ejemplo elegida y resultadospreliminares.

24

Page 26: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

B. Planificación del proyecto

En la figura 15 se presenta el Diagrama de Gantt del proyecto elaborado al comenzar cuando se redactóla especicación inicial (ver sección A). En la tabla B se listan las tareas planificadas en la especificacióninicial y se compara su grado de avance en los dos hitos intermedios y al finalizar el proyecto.

Nro Gantt Tarea Fin 2do hito 1er hito1.1 Estudio de antecedentes 100 % 100 % 100 %1.2 y 1.3 Diseño de SW 100 % 90 % 90 %1.4.1 HW 95 % 90 % 30 %1.4.2 SW: Implementación drivers 95 % 90 % N/C1.5.1 SW: Implementación Núcleo SEM 100 % 25 % N/C1.5.2 SW: Implementación SEM Logger 100 % 0 % N/C1.6 Prueba en Aplicación de 3ero. 75 % 0 % N/C1.7 Documentación 50 % N/C N/C

Cuadro 3: Avance de tareas en cada hito

Se destaca que lo relativo a implementación en Hardware (1.4.1) y las pruebas en la aplicación de untercero (1.6) fue muy subevaluadas, tomando bastante más tiempo del planificado.

25

Page 27: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Figura 15: Diagrama de Gantt del proyecto

26

Page 28: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

C. Configuración Microcontrolador

C.1. Introducción

Esta sección está destinada a documentar los detalles de configuración del microcontrolador MSP430F2274que se utilizaron durante el desarrollo del presente proyecto.

C.2. Reloj

La placa de desarrollo que se utilizó (eZ430-RF2500) no tiene soldado un cristal de 32kHz como parautilizar el RTC desarrollado durante el curso. Con lo cual optamos por utilizar el VLO del microcontrolador(Internal Very Low Power, Low Frequency Oscillator). Si tomamos un reloj de 12kHz y un prescaler de 8para el TIMERA, el umbral para realizar un tic cada 250ms queda en 375.

Para usar este reloj, hay que modificar el registro del umbral (TACCR0) y agregar la siguiente linea enla rutina de inicialización del sistema:

BCSCTL3 = LFXT1S_2;

La hoja de datos plantea que la frecuencia de este oscilador puede variar entre un mínimo de 4kHz, unvalor típico de 12kHz y un valor máximo de 20kHz. Estos extremos parecen ser los extremos de operaciónentre temperatura (-40oC a 85oC) y alimentación (entre 1.8V y 3.6V). Este error en el reloj no debería in-terferir demasiado en nuestro proyecto, aunque quizás pueda afectar la calibración y seguramente afectaráa cualquier proceso que dependa críticamente de un reloj preciso. A los efectos de visualizar este efecto,ver la siguiente tabla:

MIN -10 % TIP +10 MAXfclk real (Hz) 4000 11000 12000 13000 200001 tic real (s) 0.75 0.27 0.25 0.23 0.151 segundo real (s) 3.00 1.09 1.00 0.92 0.60

Cuadro 4: Reloj VLO del MSP430F2274

Los valores MIN y MAX corresponden a los peores casos, los valores +/-10 % corresponden a unescenario más realista de variación de 30oC y 0.8V.

Alternativas: La placa tiene un cristal de 26MHz conectado al CC2500. Por otra parte, las patas paracristal externo del micro están conectadas al CC2500 y están conectadas al peine externo.

C.3. Conversor AD

El ADC que tiene ese micro es de 10 bits y puede muestrar 200 ksps y maneja hasta 12 canales. Laecuación de conversión es:

Nadc = 210−1 Vin − Vref−Vref+ − Vref−

(7)

donde:

Nadc es el valor digital convertido.Vin es el voltaje analógico de entrada al conversor.Los Vref pueden tomar los valores: 0, 1.5V, 2.5V, Vdd o una referencia externa.

Se configuró de la siguiente forma:

Vref− = 0 (gnd)Vref+ = Vdd (Vbatt)Vin = 1,5V (ref interna)Nadc = 1023 ∗ 1,5/V batt→ V batt = 1,5 ∗ 1023/Nadc

Seteando el bit ADC10ON el ADC empieza el proceso de conversión, cuando termina se genera lainterrupción ADC10IFG y el valor de Nadc se carga en el registro ADC10MEM. ADC10IFG se reseteaautomáticamente cuando la interrupción es atendida o puede ser reseteada por sw.

27

Page 29: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

C.3.1. Consideraciones sobre ruido

La hoja de datos recomienda colocar condensadores entre AVdd y AVss, y entre DVdd y DVss, unoelectrolítico de 10µF y otro cerámico de 100nF. Por más detalles ver pag. 556 de [9].

C.3.2. Parámetros de interés

Vdd = [2.2V 3.6V]

Idd(tip) = 0.6 mA

C.3.3. Registros

ADC10CTL0: ADC10 control register 0 (Configuración)

SREFx = 000 (VR+=VCC and VR-=VSS)

ADC10SHTx = 00 (4x ADC10CLKs) queremos que demore lo menos posible en el sample

ADC10SR= 1 (Setting ADC10SR reduces the current consumption of the reference buffer.)

REFOUT = 1, REF externally on pin VREF+.

REFBURST = 0. Lo ideal sería dejarlo en 1, de modo que el buffer de la referencia se prenda sola-mente durante el sampleo y la conversión, pero eso nos dejar sin Vref para comparador. Si se disponede un micro que tenga comparador se debería evaluar poner este bit en 1.

MSC= 0 The sampling requires a rising edge of the SHI signal to trigger each sample-and-conversion.

REF2_5V = 0, the reference is 1.5 V.

ADC10IE= 1 Interrupt Enable

ADC10CTL0: ADC10 control register 0 (Operación)

REFON = 1 enables the internal reference.

ADC10ON = 1 es ON (Evaluar si se puede prender cada vez que se vaya a convertir ¿tiempos destartup? o se deja siempre prendido)

ADC10IFG= 0 No interrupt pending (flag). It is automatically reset when the interrupt request is accep-ted, or it may be reset by software. When using the DTC this flag is set when a block of transfers iscompleted.

ENC= 1 adc enable

ADC10OSC= 1 start conversion

ADC10CTL1: ADC10 control register 1 (Configuración)

INCHx = 0100, Input = A4

SHSx = 00, ADC10SC bit

ADC10DF = 0, Straight binary

ISSH = 0, The sample-input signal is not inverted.

ADC10DIVx = 000 /1, sin prescaler, tan rápido como sea posible

ADC10SSELx= 00, seleccionar el oscilandor interno del ADC: ADC10OSC

CONSEQx = 00, single-channel-single-conversion

ADC10CTL1: ADC10 control register 1 (Operación)

ADC10BUSY, solo read (0 = No operation is active.)

ADC10AE0: ADC10 input enable register 0

Hay que setear los bits de entrada, en este caso el bit 4.

28

Page 30: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

C.3.4. Conexionado

Verificar que A4 esté suelto en el esquemático.

C.4. Comparador

El microcontrolador que usaremos no cuenta con un comparador con capacidad de interrumpir. Porotro lado, cuenta con dos amplificadores operacionales (OA0 y OA1) que pueden configurarse como com-paradores, que no tienen capacidad de interrumpir, pero permiten sacar al exterior su salida mediante unpuerto I/O. Lo que se hará es realimentar esta salida hacia un puerto de entrada que pueda interrumpir almicro.

El ADC necesita 2.2V para funcionar. El umbral, inmediato superior que soporta el Comparador seubica en 2.4V

C.4.1. Registros

OA0 control register 0

OANx= XX para comparador

OAPx= 00 OAI0 (entrada de comparador en pin 3 de la placa de desarrollo) Entra Vref 1.5

OAPMx= 11 salida habilitada y fast (00 la pone en Z)

OAADCx= 01 (OAxOUT connected to external pins and ADC input A12, pin 8)

OA0 control register 1

OAFBRx= 011 (10R/6R = 0.6 con OARRIP=0)

OAFCx=011 comparator

OANEXT= 0 OAx inverting input not externally available

OARRIP= 0 (RTOP is connected to AVSS and RBOTTOM is connected to AVCC when OAFCx = 3)

C.4.2. Conexionado

Conectar Vref1.5 (A4, pin 7) a OAI0 (pin 3) Out de comparador esta en Pin 8 (A12) y entra a pin 4 parainterrupción por I/O(P2.1)

C.5. Puertos I/O

Para generar interrupción del comparador y comandar llaves.La salida del comparador entra al pin 4 de la placa que es el pin 1 del puerto 2 (P2.1)La salidas P2.2 (pin 5), P2.3 (pin 6), P2.6 (pin 13), P2.7 (pin 14)

C.5.1. Registros

P2DIR: 1111 1101 pin1 como entrada, resto salida P2IFG: flags de interrupción (1 int pendiente) P2IES:XXXX XX0X , 0 genera int con una transición low to high P2IE: 0000 0010 – 1 enable

C.5.2. Pines sin usar

Unused I/O pins should be configured as I/O function, output direction, and left unconnected on the PCboard, to prevent a floating input and reduce power consumption. The value of the PxOUT bit is irrelevant,since the pin is unconnected. Alternatively, the integrated pullup/pulldown resistor can be enabled by settingthe PxREN bit of the unused pin to prevent the floating input. See the System Resets, Interrupts, andOperating Modes chapter for termination of unused pins.

29

Page 31: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

bit P2SEL P2SEL2 Uso pin0 X X OAIO (entrada de comparador) 31 0 0 IO_in interrupción de comparador 42 0 0 IO_out capacitor 53 0 0 IO_out capacitor 64 X X Vref+ (1.5v) 75 - - no disponible6 0 0 IO_out capacitor 137 0 0 IO_out capacitor 14

Cuadro 5: Utilización del puerto de IO 2 del MSP430F2274

30

Page 32: SEM: Automedida de consumo - eva.fing.edu.uy · Driver para conversor A/D ... capacitores y comparador ... y el módulo de software que permitirá ...

SEM: Automedida del consumo Sistemas Embebidos para Tiempo Real

Referencias

[1] J. Andersen and M. Hansen, “Energy bucket: A tool for power profiling and debugging of sensor nodes,”in Third International Conference on Sensor Technologies and Applications, 2009.

[2] I. Haratcherev, G. Halkes, T. Parker, O. Visser, and K. Langendoen, “Powerbench: A scalable testbedinfrastructure for benchmarking power consumption,” in International Workshop on Sensor NetworkEngineering (IWSNE), 2008.

[3] X. Jiang, P. Dutta, D. Culler, and I. Stoica, “Micro power meter for energy monitoring of wireless sen-sor networks at scale,” in 6th International Symposium on Information Processing in Sensor Networks(IPSN), pp. 186–195, April 2007.

[4] L. S. Y. Wong, S. Hossain, A. Ta, J. Edvinsson, D. H. Rivas, and H. Nääs, “A very low-power cmosmixed-signal ic for implantable pacemaker applications,” IEEE Journal of Solid-State Circuits, vol. 39,pp. 2446–2456, December 2004.

[5] A. Dunkels, F. Osterlind, N. Tsiftes, and Z. He, “Software-based on-line energy estimation for sensornodes,” in 4th Workshop on Embedded Networked Sensors, 2007.

[6] N. Botto, C. Guastavino, and I. Schinca, “Modulo medidor de consumo,” documentación, Sistemas Em-bebidos para Tiempo Real, IIE, 2008.

[7] Maxim, DS2740 High-Precision Coulomb Counter Reference Design.

[8] S. Brum and L. Steinfeld, “Circuito para automedida de consumo de un microcontrolador,” documenta-ción, Módulo de Taller (2 créditos), IIE, 2010.

[9] Texas Instruments, MSP430x2xx Family User’s Guide.

31