automedida de consumo en dispositivos portables julián oreggioni, leonardo steinfeld xix iberchip...

Post on 24-Jan-2016

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Automedida de consumo en dispositivos portables

Julián Oreggioni, Leonardo Steinfeld

XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013

Agenda

•Problema a resolver

•Solución propuesta

•Conclusiones

•Preguntas

Problema a resolver

•Medir el consumo de energía en tiempo real.

•No utilizar instrumentos externos.

¿Para qué?

•Optimización de código fuera de un laboratorio.

•Toma de decisiones en tiempo de ejecución.

Posibles soluciones

•Medida de corriente e integrar.

•Caracterizar el consumo de tareas (SW).

•Medida de la (des)carga de capacitores.

Agenda

•Problema a resolver

•Solución propuesta

•Conclusiones

•Preguntas

(Des)Carga de capacitores

∆Q = C * ∆V

Método de medida

Mejora en el método

∆Q = C * ∆V

Claves del diseño

•Poco invasivo.

•Fácil incorporación.

•Bajo consumo.

SEM

Self Energy Meter

Configuraciones

#ifdef

sem_core.h

void sem_init(void); void sem_reset_global_meter(void);float sem_get_global_meter(void);void sem_start_partial_metering(void);void sem_get_partial_metering(void (*callback_fn)(float));

Tip: registro callback

void adc_start(void (*callback_fn)(float)){ adc_registered_callback_fn = callback_fn; // register callback // start conversion ......}

void adc_isr(){ // rutina de atencion a la interrucion del ADC Nadc=ADC10MEM; Vin = Vcc*Nadc/ADC_FSR; adc_registered_callback_fn(Vin); // Execute registered }

void sem_start_partial_metering(){ q_partial = 0; adc_start(_update_vc_initial_new_partial);}

Tip: Hardware

¡Vin == Vcc!

NADC=1023xVin/Vcc

¡I por R!

NADC=1023xf(Vcc)/Vref

:)

NADC=1023xVref/Vcc

sem_logger.h

#define MAX_LOG_ITEMS 30 typedef struct log_item_t { float q; char id; int time_stamp; } log_item_t;void sem_log_init(void);void sem_log_partial_q(log_item_t item);int sem_log_isempty(void);log_item_t sem_log_get_item(void);

Validación

Validación

•dQ = Ci x dVi

•Ci = calibrada

•dVi = osciloscopio

•dQ = I x dt => dQ = V/R x dt

•Area osciloscopio

ValidaciónQ_esp (mC) Q_med (mC) Dif. Relativa

1,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%

Q_esp = Ci x dViCi = calibradadVi = osciloscopio

Aplicación de tercero

Demo – eZ430-RF2500 Sensor Monitor de TI

Bitácora

•Consumo histórico y parcial.

•Bitácora de consumos (time stamp e ID).

•Gestión de la bitácora.

Bitácora: ejemplo

while (TRUE){if (eventoA)controlEventoA();if (eventoB)controlEventoB();{

sem_reset_log()while (TRUE){if (eventoA) sem_log(A_in)controlEventoA(); sem_log(A_out)

if (eventoB)sem_log(B_in)controlEventoB();sem_log(B_out){

Bitácora: ejemploid

time (ms)

Q_histórico (nC) ∆Q (nC)

A_in 1000 1200

A_out 1200 1400 200

B_in 1500 1700

B_out 1700 2700 2000

Control evento A: solo procesamiento (1 mA)Control evento B: usa HW entrada/salida (10 mA)

Agenda

•Problema a resolver

•Solución propuesta

•Conclusiones

•Preguntas

Conclusiones

•Integración: • conflicto por uso compartido de recursos

• falta de funcionalidades y periféricos.

•Consumo: • Periférico siempre on: Comparador

• Vref = 500uA y OA = 200uA

•Carga inicial de capacitores

Conclusiones

•Método de medida: • consumo esporádico (si se mejora tema comparador).

• simple.

•Demasiado sobre el final prueba de SELF metering.

Otro enfoque

DEMO

Trabajo a futuro

•Calibración.

•Estudio detallado de overhead consumo.

•Analizar el otro enfoque

top related