IoT. Medir corriente (parte 1): Multímetro.

En estas entradas del blog se va a hablar de como podemos visualizar (o medir) el consumo de corriente de los dispositivos alimentados por baterías, como puede ser el caso de los dispositivos diseñados para IoT, usaremos un osciloscopio para visualizar y medir el consumo de corriente.

Cuando queremos saber la corriente que consume un dispositivo o circuito, lo normal es usar un multímetro para realizar la medida de corriente, pero en el caso de algunos circuitos alimentados por baterías y con larga autonomía, las limitaciones de los multímetros pueden hacer que no sean los equipos adecuados para realizar esta medida.

Las limitaciones de los multímetros que vamos a encontrar a la hora de medir el consumo de corriente de dispositivos alimentados por baterías son principalmente dos: el burden voltage y que no pueden medir con precisión algunas corrientes con forma de pulsos.

Burden voltage: para medir corriente la mayoría de los multímetros ponen una resistencia interna de pequeño valor en serie con el circuito a medir, midiendo el voltaje que cae en su resistencia interna al pasar la corriente por esta el multímetro puede calcular el valor de esa corriente.

Ese voltaje que cae dentro del multímetro al pasar la corriente por su interior (resistencia de medida, fusible, conectores, etc..) es el denominado burden voltage, y produce un error en la medida, ya que el circuito está alimentado a un voltaje menor que el voltaje de la batería (el consumo del dispositivo es función de la alimentación que recibe) debido a los voltios que caen internamente en el multímetro al pasar la corriente a medir por su interior, como se ve en la siguiente imagen.

burden voltage

Burden voltage. Voltaje que cae internamente en el multímetro.

Ese burden voltage que perdemos en el interior del multímetro produce un error en la lectura de corriente, en función del diseño del dispositivo la corriente leída por el multímetro puede ser menor o mayor que la corriente que pasaría por el dispositivo si no tuvieramos el multímetro en serie con este para realizar la medida, y a veces ese error puede ser grande.

Dentro de las especificaciones de cada multímetro encontramos su burden voltage para sus distintos rangos de corriente, por ejemplo vamos a mirar el burden voltage de un DMM6500, multímetro que comentaré al final de esta entrada, ya que es una opción interesante para medir el consumo de este tipo de dispositivos.

Burden voltage DMM6500

En función del rango de medida, el multímetro pone una resistencia de distinto valor en serie con el circuito a medir, y esa resistencia (más otros elementos internos del multímetro) provocan una caída de tensión en el interior de este.

En la imagen superior en rojo vemos la caída de tensión máxima que podemos tener en cada rango de medida del DMM650. Si tenemos seleccionado el rango de medida de 1A, y por el multímetro pasa una corriente de 0.999A, la caída de tensión en el multímetro será de 0.55V (si en el rango de 1A pasan 0.5A por el multímetro, la caída de tensión en este será de aproximadamente la mitad de 0.55V).

Esos 0.55V nos pueden provocar un error significativo en la medida de corriente. Si tenemos un circuito que se alimenta a 3V y queremos medir la corriente que pasa por él en el rango de 1A del multímetro, y por ejemplo obtenemos una medición con el multímetro 1A, al realizar esa medida al circuito lo estamos alimentando con 2.45V en lugar de 3V (por el voltaje que cae dentro del multímetro), lo que provocará un error en la corriente que consume el circuito y mide el multímetro, respecto a la corriente real que pasaría por el circuito si no estuviera el multímetro en serie con él y se alimentase a 3V en lugar de 2.45V (ya que la corriente que consume el circuito es función de su tensión de alimentación).

Claro está que podemos seleccionar en el multímetro su rango de 10A para realizar la medida anterior, en este rango tendríamos un burden voltage de 50 mV (que posiblemente podemos despreciar) cuando pasa una corriente de 1A por él. Minimizamos el burden voltage cambiando el rango de medida a cambio de perder resolución, en este caso para el rango de 10A tenemos una resolución de 10 uA que va a ser más que suficiente para muchos casos, pero no siempre vamos a contar con un multímetro de 6.5 dígitos como el DMM6500.

Si miramos multímetros más económicos, por ejemplo la versión antigua del Amprobe 37XR-A que tengo aquí, en su manual vemos que nos indica el siguiente burden voltage.

Burden voltage 37XR

Burden voltage 37XR

Tenemos 3 rangos de medida: uA, mA y A y nos indican el burden voltage para cada uno de ellos. Por ejemplo si vemos el rango de mA nos indican que por cada 1 mA que pase por el multímetro va a caer una tensión de 10 mV en su interior. Es decir si por ejemplo tenemos un circuito funcionando a 3V del que queremos medir su consumo, ponemos el multímetro en serie en el rango de mA para realizar la medida y nos da 30 mA, el circuito ya no se estaría alimentando a 3V, si no a 2.7V (3V – 0.3V que caen en el multímetro). Lo que nos va a provocar un error en la medida de corriente, ya que la tensión de alimentación del circuito y por tanto su consumo, se han modificado al meter el multímetro entre el circuito a medir y su alimentación para realizar la medida.

En la siguiente imagen conectamos este multímetro a una fuente de alimentación, y ponemos la fuente en modo control de corriente para que de una salida de 30 mA (seleccionamos o limitamos la corriente que da la fuente y la tensión de la fuente es función de la carga que conectamos).

Conectamos los dos terminales del multímetro a las salidas de la fuente y seleccionamos la escala de mA. Para que la fuente pueda hacer pasar por el multímetro 30 mA tiene que generar un voltaje de 0.35V, de los cuales 0.3V caen en el interior del multímetro que es el burden voltage indicado según las especificaciones del multímetro (10 mV por cada 1 mA), y los 0.05V restantes caerán en los cables que conectan la fuente con el multímetro al pasar por ellos los 30 mA.

En el multímetro caen 0.3V cuando pasan 30 mA por él

En el multímetro caen 0.3V cuando pasan 30 mA por él

Como en el caso anterior, podemos seleccionar la escala de Amperios del multímetro en lugar de la de mA, donde nos dicen que el multímetro tiene un burden voltage de 35 mV por cada 1A que pasa por él, es decir para 30 mA tendríamos un burden voltage de 35 mV * 0.03A  = 1.05 mV, lo que sería una caída de tensión en el interior del multímetro despreciable, pero si tomamos la medida anterior en este rango de Amperios perdemos resolución/precisión, como se puede ver en la siguiente imagen.

Medida de 30 mA en la escala de Amperios.

Medida de 30 mA en la escala de Amperios.

En la imagen superior, al usar el rango de A en lugar del de mA, el multímetro es menos preciso y nos da una medida de 28 mA cuando pasa por él una corriente de 30 mA. Minimizamos el burden voltage aumentando la escala de medida, pero perdemos resolución (y aquí no tenemos 10 uV de resolución en la escala de Amperios como con el DMM6500).

Por lo que siempre que usamos un multímetro para medir la corriente que consume un dispositivo, tenemos que tener en cuenta su burden voltage, y ver cómo puede afectar al consumo de corriente del dispositivo ese burden voltage que cae en el multímetro y lo pierde de su alimentación el dispositivo. Ver si ese burden voltage provoca un error significativo en la medida o consumo de corriente del dispositivo, o si provoca un error despreciable y por tanto podemos usar el multímetro para realizar la medida, y tener una buena aproximación de la corriente que consumiría el dispositivo cuando no está el multímetro en medio para realizar la medida.

No todos los multímetros ponen una resistencia en serie con el circuito a medir para realizar la medida de corriente, hay multímetros con circuitos especiales que no incluyen esta resistencia para minimizar el burden voltage, como usa el Fluke 8808A en sus rangos de medida de corriente más bajos.

Burden voltage Fluke 8808A

Burden voltage Fluke 8808A

Como se puede ver en la tabla superior, el Fluke 8808A no usa una resistencia en serie para los rangos de 200uA y 2 mA, siendo su burden voltage de 5 mV y por tanto despreciable en casi todos los casos, lo que nos permite usarlo para medir corrientes pequeñas, sin que lo de meter el multímetro para medir entre batería/alimentación y dispositivo modifique el consumo de este de una manera apreciable.

Corrientes con forma de pulsos: los dispositivos alimentados con baterías van a tener dos estados de funcionamiento: un estado de bajo consumo o durmiendo, en el que permancerá la mayor parte del tiempo, y durante el que tienen un consumo medio del orden de uA. Y un estado en el que se despierta y que dura unos pocos ms o segundos, donde realizan la tarea para la que han sido diseñados, y durante el que tienen un consumo medio del orden de varias decenas o centenas de mA, y una vez realizada la tarea volverán al estado previo de bajo consumo.

Por lo general los dispositivos para IoT alimentados con baterías van a tener una de las siguientes configuraciones:

Opciones de alimentación dispositivos con baterías.

Opciones de alimentación dispositivos con baterías.

  1. Dispositivos que se alimenta directamente desde una batería: los componentes electrónicos de estos dispositivos admitiran un rango de voltaje que comprende los niveles de voltaje que proporciona la batería a lo largo de su vida. Por ejemplo si en nuestro dispositivo tenemos componentes electrónicos que pueden funcionar entre un voltaje de 1.8V y 3.3V. Esos componentes los podemos conectar directamente a dos pilas AA en serie, las pilas cuando estén nuevas darán u voltaje de 3.2V, y cuando estén gastadas su voltaje final será de 2V aproximadamente. Nuestros componentes electrónicos funcionan con todos los niveles de voltaje que da la batería a lo largo de su vida. Esta es la forma mas eficiente de alimentar un dispositivo desde una batería.
  2. Dispositivos que se alimentan desde un regulador disipativo (LDO): en este caso se usa un regulador de tensión disipativo o LDO, que desde una batería proporciona un voltaje constante al dispositivo o circuito. El nivel de voltaje de la batería a lo largo de su vida tiene que ser mayor que el voltaje mínimo de entrada del LDO, voltaje necesario para que el LDO pueda generar su voltaje de salida constante.
  3. Dispositivos que se alimentan desde una fuente conmutada o DC-DC: tenemos varios tipos de DC/DC, por lo general veremos el caso en el que se necesita una salida de voltaje mayor a la que pueden proporcionar las baterías a lo largo de su vida. Por ejemplo si queremos alimentar un circuito con componetnes que funcionan a 3V desde una batería AA, debemos añadir un DC/DC que convierta el rango de voltaje de entre 1V-1.6V (aprox.) que la batería AA tiene a lo largo de su vida, a un voltaje constante de 3V con el que alimentar al dispositivo. Cuanto menor sea el voltaje de la batería, mayor será la corriente que el DC-DC coge de la batería para poder generar los 3V de salida.

Voy a mostrar como sería el consumo de corriente de las distintas opciones de alimentación anteriores, en sus dos estados de funcionamiento habituales (durmiendo y despierto) de los dispositivos con baterías, para poder explicar como con un multímetro no vamos a poder ver lo que está ocurriendo en el dispositivo, y en algunos casos no podemos medir con precisión la corriente que está consumiendo el dispositivo en sus distintos estados de funcionamiento.

Para ello voy a usar un osciloscopio y una resistencia para medir la corriente (en la parte 2 de esta entrada explicaré cómo hacerlo) que consume una placa compatible con Arduino y con LoRa, placa enfocada a los aficionados de IoT, que documentaré y compartiré para quien la quiera replicar a través de este blog. Placa que servirá para hablar un poco sobre como crear hardware sencillo para IoT y animar a “hacer” Arduinos (o similares) en lugar de “consumirlos” :).

Placa compatible con Arduino con módulo LoRa

Placa compatible con Arduino con módulo LoRa

Esta placa se alimenta desde 2 baterías AAA, en la parte inferior izquierda en un cuadrado en rojo podemos ver que la batería se conecta a un DC/DC, este DC/DC alimenta los componentes electrónicos de la placa con un voltaje a su sallida constante de 3.3V, para todos los voltajes que nos da la batería en su vida útil.

Si miramos el consumo de esta placa con un DC/DC en el osciloscopio, vemos lo siguiente (click en la imagen para mayor tamaño):

Consumo con DC/DC

Consumo con DC/DC

El consumo de corriente no es un valor fijo o continuo durante los distintos estados de funcionamiento del dispositivo, si hacemos zoom en la zona donde el dispositivo duerme vemos lo siguiente:

Consumo de corriente durmiendo con DC/DC

Consumo de corriente durmiendo con DC/DC

Cuando el dispositivo está durmiendo el consumo de su electrónica es mínimo, el DC/DC para generar los 3.3V constantes en su salida, coge pequeños pulsos de corriente. En la imagen superior podemos ver como cada 23.65 mS en DC/DC coge un pulso de corriente con una amplitud máxima de 120 mA, ese pulso tiene una duración de 5 uS. El multímetro en continua nos da el valor promedio de la señal que muestrea (tomando n muestras por segundo), si tenemos una señal con pulsos de 5 uS de ancho y un período de 23.65 ms, es probable que el multímetro nos de un valor medio de voltaje muy inferior al real (si los llega a ver). En la parte 2 de esta entrada del blog explicaré un método para medir y calcular la corriente en esta situación.

Con el dispositivo despierto vamos a hacer zoom en sus distintas zonas, la zona donde se envían los datos y otras zona de ese espacio.

Dispositivo despierto

Dispositivo despierto, pulsos de corriente.

Ahora vemos como con el dispositivo despierto el DC/DC sigue cogiendo pulsos de corriente para generar la tensión de 3.3V constantes a su salida, pero ahora el consumo de la electrónica del dispositivo es mayor que en el caso anterior, por lo que el DC/DC tiene que coger pulsos de corriente con mayor frecuencia, en este caso sigue cogiendo un pulso de 5 us de ancho, pero los coge cada 43.71 us (durmiendo los cogía cada 23650 us). Si este fuese el patrón de consumo de corriente (pulsos de 5 us con un período de 43 us) durante todo el tiempo que el dispositivo se encuentra despierto, aquí algunos multímetros si podrían acertar con el valor de corriente medido, ya que el ancho de pulsos de 5 us está más próximo al período de la señal, pero si nos vamos a otra zona del espacio donde el dispositivo está despierto vemos lo siguiente:

Dispositivo despierto, pulsos de corriente

Dispositivo despierto, pulsos de corriente

En otra zona en la que el dispositivo está despierto, este requiere un mayor consumo de corriente, y ahora tenemos pulsos de 90 mA de amplitud máxima, 5 us de ancho y un período de 12 us, es decir el consumo cambia respecto a la zona anterior. Y si nos vamos a la zona donde se realiza el envío de datos (la radio se enciende para enviar datos) vemos lo siguiente:

Dispositivo despierto, pulsos de corriente

Dispositivo despierto, enviando datos.

En la zona donde se envían datos el DC/DC sigue cogiendo pulsos, está vez pulsos más cortos con un período de 1.8 us, podemos ver su rizado sobre una corriene de 110 mA. Tenemos 110 mA de consumo continuos ya que a la entrada del DC/DC y en paralelo con la batería tenemos un condensador, que le proporciona corriente con un camino de baja impedancia al DC/DC, y ese condensador es el que se está cargando de manera continua a 110 mA durante el tiempo de 51 ms en el que la radio envía datos, situación donde el dispositivo requiere un mayor consumo de energía para poder enviar esos datos.

Este sería el patrón o perfil de consumo de corriente que sigue un dispositivo alimentado por un DC/DC, que un multímetro normal nos mida el valor medio del consumo de corriente en el estado despierto es difícil (sin tener en cuenta el otro problema que puede afectar a la medida del burden voltage), necesitaríamos multímetros con un digitalizador (multímetros especiales diseñados para la tarea).

Ahora vamos a quitar el DC/DC, lo vamos a puentear para conectar directamente la batería a la electrónica, y poder ver como sería el consumo de una placa con su electrónica conectada directamente a la batería, que sería igual que si se alimentase por un LDO, ambos casos darían el mismo patrón o perfil de consumo de corriente.

Si tenemos el LDO el burden voltage del multímetro no nos afectaría, mientras no se baje de la tensión mínima que el LDO necesita a su entrada para funcionar, ya que el voltaje que se pierde en el interior del multímetro se perdería de igual manera en el LDO.

Quitamos el DC/DC

Quitamos el DC/DC

Quitando el DC/DC y conectando la electrónica directamente a la batería, podemos ver que el consumo del dispositivo durmiendo y del dispositivo despierto es el siguiente:

Consumo sin DC/DC

Consumo sin DC/DC. Directamente a la batería.

Aquí medir el consumo es más sencillo que en el caso anterior (sobre como medir estos consumos hablo en la siguiente entrada).

Cuando el dispositivo está durmiendo vemos que su valor de corriente es constante (con la electrónica de esta placa no hay pulsos de corriente cuando el dispositivo duerme, lleva un IC de bajo consumo (15 nA) para despertarlo periódicamente), aquí podríamos usar un multímetro para medir el consumo con el dispositivo durmiendo, siendo el único error a considerar en la medida, el que pudiera producir la variación del voltaje de alimentación del circuito por el burden voltage que introduce el multímetro.

Cuando el dispositivo está despierto, vemos que sobre un valor de corriente continuo tenemos varios pulsos de corriente, el mayor de ellos de unos 106 mA y 51 ms de duración se corresponde con el envío de datos. Aquí el multímetro nos mediría el valor medio de corriente continua, y el valor de corriente que agregan los pulsos probablemente no lo añadiría en su totalidad a la medida. Además nosotros mirando la pantalla del multímetro y su frecuencia de actualización, no podemos percibir estos pulsos, con suerte simplemente veríamos que se movería un poco el display un instante.

Para saber lo que está haciendo nuestro dispositivo o si queremos saber la corriente máxima que el circuito coge de la batería, debemos ver de manera gráfica su consumo de corriente, en función del estado en que se encuentre el dispositivo, del código que ejecute, el dispositivo tendrá un consumo de corriente u otro.

Además si queremos optimizar el consumo de corriente del dispositivo para alargar la vida de la batería lo máximo posible, es recomendable poder visualizarlo, para poder detectar posibles fallos en el código que estén incrementando dicho consumo. Y esto es algo que no podemos hacer con un multímetro normal.

Hay multímetros que nos permiten visualizar las medias de voltaje o corriente en su pantalla, como el DMM6500 (o el DMM7510) que enlazaba al principio de esta entrada, si miramos su hoja de características podemos ver la siguiente imagen:

DMM6500

DMM6500

Este multímetro cuenta con un digitalizador que nos permite muestrear una señal a una frecuencia de 1 millón de muestras por segundo, y tiene una memoria interna de 7 megas. Por lo que nos permitiría capturar cambios en el consumo de corriente como los vistos en los dispositivos anteriores, y verlos en su pantalla para realizar los cálculos oportunos.

Pero con este multímetro tenemos que considerar varias cosas que nos pueden introducir un error en la medida: el ya hablado burden voltage, el rango de medida con el que hacemos la captura (si contamos con la resolución suficiente para todos los valores que vamos a tener de corriente, podemos tener consumos de 1 uA cuando el dispositivo duerme y de varios cientos de mA cuando este se despierta) y la frecuencia de muestreo.

El burden voltage ya lo hemos comentado y puede ser una fuente de error importante en la medida de corriente.

Burden DMM6500

Burden voltage DMM6500 función digitalizador.

Otro aspecto importante es la frecuencia de muestreo, en las imagenes anteriores de nuestra captura de corriente con el dispositivo alimentado mediante el DC-DC, estabamos muestreando a una frecuencia de 25 MS/s, es decir cada 1 uS el osciloscopio tomaba 25 muestras de la corriente que pasaba por una resistencia en serie con la batería, muestras que usará más tarde para reconstruir la señal de corriente y mostrarla en la pantalla, o para hacer cálculos sobre ella.

El DMM6500 muestrea a 1 MS/s, que si bien puede ser más que suficiente para ver el consumo de corriente de muchos dispositivos, puede ser un poco justo o insuficiente para el caso de tener un DC-DC con una frecuencia máxima de conmutación de 1 MHz, como es el caso del DC-DC que tenemos en la placa anterior.

En la siguiente imagen podemos ver la misma señal (el pulso de corriente anterior que cogía el DC-DC cuando el dispositivo estaba durmiendo) muestreada a una frecuencia de 25 MS/s y a una frecuencia de 1 MS/s.

Muestreo 1MS/s y 25 Ms/s

Parte superior muestreo a 1 MS/s, parte inferior muestreo a 25 MS/s.

Como se puede ver en la imagen superior, muestreando a 1 MS/s tenemos menos muestras para reconstruir el pulso de corriente, perdiendo información sobre este a la hora de reconstruirlo, lo que puede dar error en el cálculo de su valor medio.

Según su hoja de características el DMM6500 (no he probado ninguno) me parece un equipo muy útil para trabajar con este tipo de dispositivos, y si tuviera que comprar un multímetro de banco, probablemente este fuese mi primera opción a día de hoy.

Aquí termino la primera parte de esta entrada, en la siguiente parte hablaré sobre cómo visualizar la corriente que consume nuestro dispositivo (e intentar calcularla) con un osciloscopio de 8 bits y una resistencia de pequeño valor en serie (más unas plaquitas que usaré con la resistencia para reducir el ruido de la medida) con la batería.

PCB captura

PCB en serie con la batería para visualizar en el osciloscopio el consumo de corriente.

Hablaré sobre el osciloscopio y su ancho de banda, frecuencia de muestreo,  memoria, resolución,  ruido, rango dinámico, osciloscopios con buena relación prestaciones/precio, etc..

Si alguien no conocía lo que era el burden voltage de los multímetros, y ha llegado hasta aquí, espero que la entrada le haya sido de utilidad.