Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip...

29
Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013

Transcript of Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip...

Page 1: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Automedida de consumo en dispositivos portables

Julián Oreggioni, Leonardo Steinfeld

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

Page 2: 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

Page 3: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Problema a resolver

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

•No utilizar instrumentos externos.

Page 4: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

¿Para qué?

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

•Toma de decisiones en tiempo de ejecución.

Page 5: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Posibles soluciones

•Medida de corriente e integrar.

•Caracterizar el consumo de tareas (SW).

•Medida de la (des)carga de capacitores.

Page 6: 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

Page 7: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

(Des)Carga de capacitores

∆Q = C * ∆V

Page 8: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Método de medida

Page 9: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Mejora en el método

∆Q = C * ∆V

Page 10: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Claves del diseño

•Poco invasivo.

•Fácil incorporación.

•Bajo consumo.

Page 11: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

SEM

Self Energy Meter

Page 12: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Configuraciones

#ifdef

Page 13: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

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));

Page 14: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

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);}

Page 15: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Tip: Hardware

¡Vin == Vcc!

NADC=1023xVin/Vcc

¡I por R!

NADC=1023xf(Vcc)/Vref

:)

NADC=1023xVref/Vcc

Page 16: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

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);

Page 17: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Validación

Page 18: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Validación

•dQ = Ci x dVi

•Ci = calibrada

•dVi = osciloscopio

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

•Area osciloscopio

Page 19: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

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

Page 20: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Aplicación de tercero

Demo – eZ430-RF2500 Sensor Monitor de TI

Page 21: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Bitácora

•Consumo histórico y parcial.

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

•Gestión de la bitácora.

Page 22: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

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){

Page 23: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

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)

Page 24: 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

Page 25: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

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

Page 26: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Conclusiones

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

• simple.

•Demasiado sobre el final prueba de SELF metering.

Page 27: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Otro enfoque

Page 28: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

DEMO

Page 29: Automedida de consumo en dispositivos portables Julián Oreggioni, Leonardo Steinfeld XIX Iberchip Workshop, Cusco, Perú, 01/mar/2013.

Trabajo a futuro

•Calibración.

•Estudio detallado de overhead consumo.

•Analizar el otro enfoque