TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: Agustina en 21 de Octubre de 2008, 20:42:23

Título: Bajar el consumo
Publicado por: Agustina en 21 de Octubre de 2008, 20:42:23
Buenas! bueno, les cuento, esoty haciendo una placa que debe medir ciertas variables y almacenarlas en una memoria, seria una especie de datalogger. El problema con el que me he encontrado es la duracion de la bateria, ya que el circuito consume unos 15mA!!!! ... es demasiado y no se porque es.

Sin el pic, el circuito consume 4mA que corresponden al regulador (7805, el cual voy a cambiar por un LDO), pero con el pic, consume mas de 15mA. El circuito es muy comun, es un 16F88 con oscilador interno a 8mhz, una memoria i2c y un DS1307. Aparte tiene un par de pulsadores y 2 leds, (apagados por ahora). Tambien tiene un MAX232, que es apagado cuando no se lo necesita, lo apago por software con setup_usart(0) y poniendo a 0v el pin de salida del F88 que alimenta al MAX.

Tambien he probado colocarlo en modo SLEEP pero no varia mucho.... sigue en 15mA... alguien tiene alguna sugerencia?

gracias!!  :g)
Título: Re: Bajar el consumo
Publicado por: Gonzalo_BlackHawk en 21 de Octubre de 2008, 22:11:07
Hola Agustina, podrias subir el esquematico? De todas formas aunque sin el pic el circuito consuma 4mA en forma continua me parece excesivo, salvo que la bateria sea recargable. Los led's descartalos si quieres mantener bajo el consumos, pero me asombra que el PIC consuma estando en sleep lo mismo que despierto, hay algo que tal vez se nos esta escapando  :mrgreen:

Saludos.
Título: Re: Bajar el consumo
Publicado por: Agustina en 22 de Octubre de 2008, 02:57:49
Si gonzalo... es bastante raro, he hecho algunos circuitos con 18F252 y el consumo no supera los 8mA con varios perifericos...

Los 4mA son del 7805, ya que este de por si consume 4 mA, esto se mejora usando un regulador LDO (low drop out), es decir, baja perdida, segun tengo entendido. Pero esto no me preocupa por el momento, lo que me preocupa son esos 15mA.... no se de donde vienen. Mañana subire el esquematico.

gracias!! :g)

Título: Re: Bajar el consumo
Publicado por: Javicho en 22 de Octubre de 2008, 04:07:29
Mas parece un problema de software, tal vez la instrucción sleep está ahi pero por alguna otra razón sale del sleep, tal vez alguna interrupción o algo asi, prueba algo como esto:

...
sleep
bsf    PORTB,2   ;led arbitrario de prueba

si el led se prende es porque el sleep no está trabajando, si el led no se prende el sleep está bien, si estas usando interrupciones prueba lo mismo con un led arbitrario en tu RSI para que descartes.

Javicho.
Título: Re: Bajar el consumo
Publicado por: Gonzalo_BlackHawk en 22 de Octubre de 2008, 14:22:40
Mas bien Javicho yo probaria con:

Código: [Seleccionar]
SLEEP
NOP
BSF    PORTB,2   ;led arbitrario de prueba

Título: Re: Bajar el consumo
Publicado por: jacrmr en 22 de Octubre de 2008, 15:48:52
Dices que tienes dos pulsadores. Supongo que están con resistencias pullup a Vcc. Si es así ¿de cuánto valor son esas resistencias? Otra cosa, busca un regulador que aparte de LDO sea de muy baja corriente quiescent, que no es lo mismo.
Un saludo.
Título: Re: Bajar el consumo
Publicado por: Agustina en 02 de Diciembre de 2008, 13:30:31
Coloque un regulador con baja corriente de quiesent y sacando la memoria de su zocalo, el RTC de su zocalo, y sin el pic (osea, el circuito SOLO), consume 1mA... sin NADA conectado a el...  :? :? :?

Los pulsadores estan con resistencias de pullup de 10k, pero si no esta conectado el PIC, el circuito no se cierra, por lo que no deberia circular corriente...

Alguna sugerencia?  :?

 :g)
Título: Re: Bajar el consumo
Publicado por: Gonzalo_BlackHawk en 02 de Diciembre de 2008, 14:40:29
Agustina, de que tipo y cuanto voltaje es la batería? porque puedes evitarte los reguladores colocando diodos en serie hasta bajar la tensión hasta los 5V. SI, ya se, es una mersada, pero si el voltaje de la batería es estable puedes ahorrarte esos mA que el regulador si o si te va a consumir.

Saludos.
Título: Re: Bajar el consumo
Publicado por: Leon Pic en 02 de Diciembre de 2008, 15:11:58
¿El circuito está montado sobre una PCB? Si es si, prueba limpiar el pcb con un cepillo. Una vez tube el mismo problema, revisé todas las conecciones y cada componente y nada. Cuando la limpie, adios problema. De seguro era una pequeñísima gotita de estaño o algo conductor.
Título: Re: Bajar el consumo
Publicado por: Agustina en 02 de Diciembre de 2008, 16:01:14
El regulador no consume practicamente nada. su consumo es de unos pocos uA. Por ahora lo estoy alimentando con una fuente de 12v, pero estará alimentado con una bateria de 9v.

Probare limpiar el PCB.

grcias!
Título: Re: Bajar el consumo
Publicado por: Gonzalo_BlackHawk en 02 de Diciembre de 2008, 17:57:53
El regulador no consume practicamente nada. su consumo es de unos pocos uA.

Pero habias dicho que:

Coloque un regulador con baja corriente de quiesent y sacando la memoria de su zocalo, el RTC de su zocalo, y sin el pic (osea, el circuito SOLO), consume 1mA... sin NADA conectado a el...  :? :? :?

No entiendo. Algo me perdí.
Título: Re: Bajar el consumo
Publicado por: todopic en 02 de Diciembre de 2008, 19:05:14
Hola, creo que tienes perdida en alguno de los capacitores de la fuente... tienen la tensión suficiente?

Norberto
Título: Re: Bajar el consumo
Publicado por: Agustina en 02 de Diciembre de 2008, 19:29:02
Revisando la placa encontre un par de "errores" de diseño... asique los quite y tengo un consumo (en el circuito sin el PIC) de pocos uA (que provienen del regulador).  :mrgreen:

Otra cosa curiosa, es que cuando coloco el PIC en modo SLEEP, este consume unos 260uA... algo alto... pero cuando LO TOCO CON EL DEDO CONSUME 60uA!!!! como puede ser??? que estoy haciendo mal??

Esta es la parte de la configuracion de puertos y hardware


//configuracion0110001 de puertos
set_tris_a (0b00110001);   //Ra7-Ra6-Ra5-Ra4-Ra3-Ra2-Ra1-Ra0
set_tris_b (0b11000100);   //Rb7-Rb6-Rb5-Rb4-Rb3-Rb2-Rb1-Rb0

setup_uart(FALSE); // did the trick with me
setup_spi(false);
setup_adc(false);
setup_comparator(NC_NC_NC_NC);
setup_CCP1(CCP_OFF);
SETUP_ADC(ADC_OFF);


output_low(PIN_A0) ;
output_low(PIN_A1) ;
output_low(PIN_A2) ;
output_low(PIN_A3) ;

output_low(PIN_B0);
output_low(PIN_B3);

init_ext_eeprom();
ds1307_init();


sleep();



gracias! :g) :g)
Título: Re: Bajar el consumo
Publicado por: jacrmr en 02 de Diciembre de 2008, 20:26:36
Citar
Otra cosa curiosa, es que cuando coloco el PIC en modo SLEEP, este consume unos 260uA... algo alto... pero cuando LO TOCO CON EL DEDO CONSUME 60uA!!!! como puede ser??? que estoy haciendo mal??

Revisa que cualquier pin de entrada (incluyendo TOCKI) estén conectados a algún nivel de voltaje sea HI o LO.
Título: Re: Bajar el consumo
Publicado por: Agustina en 03 de Diciembre de 2008, 11:56:52
Puse todos los puertos que no usaba a tierra y aparte los configure como salida y a LOW... el consumo bajo, pero se mantiene inestable entre 75 y 90 uA. Pero cuando toco el pic con el dedo esto baja a unos 20uA y cuando saco el dedo se va a 130uA y empieza a oscilar por ese valor...

Me esta rompiendo la cabeza esto  :x

Les dejo el codigo completo por si tienen alguna sugerencia.

Código: [Seleccionar]
#include <16F88.h> //aca pongo el pic que voy a usar


#fuses INTRC_IO, NOPROTECT, PUT, NOMCLR, NOWDT, NOBROWNOUT, NOLVP

#use delay(clock=2000000) // le digo al compilador que voy a usar un cristal de
//20 MHZ para que calcule solo los retardos cuando uso la funcion DELAY.

#use rs232(baud=9600, xmit=PIN_B5, rcv=PIN_B2)  // configuro los pines que voy a
//usar como puerto serial. 19200 es la velocidad del puerto, esto despues lo vemos.

#use standard_io(A)
#use standard_io(B)

#use i2c(master, sda=pin_B1, scl=pin_B4)


#define EEPROM_SDA  PIN_B1
#define EEPROM_SCL  PIN_B4

#define RTC_SDA  PIN_B1
#define RTC_SCL  PIN_B4

#include <24256.c>
#include <DS1307.c>

#define led1_on output_high(PIN_A6)
#define led1_off output_low(PIN_A6)

#define led2_on output_high(PIN_A7)
#define led2_off output_low(PIN_A7)

#define buzer_on output_high(PIN_B0)
#define buzer_off output_low(PIN_B0)


#define rs232_on output_high(PIN_B3)
#define rs232_off output_low(PIN_B3)

#define start input(PIN_B6)
#define reset input(PIN_B7)

 
void main(void) // esto va siempre
{

set_tris_a (0b00000000);   //Ra7-Ra6-Ra5-Ra4-Ra3-Ra2-Ra1-Ra0
set_tris_b (0b11000100);   //Rb7-Rb6-Rb5-Rb4-Rb3-Rb2-Rb1-Rb0


setup_uart(FALSE); // did the trick with me
setup_spi(false);
setup_adc(false);
setup_comparator(NC_NC_NC_NC);
setup_CCP1(CCP_OFF);
SETUP_ADC(ADC_OFF);


output_low(PIN_A0) ;
output_low(PIN_A1) ;
output_low(PIN_A2) ;
output_low(PIN_A3) ;
output_low(PIN_A4) ;
output_low(PIN_A5) ;
output_low(PIN_A6) ;
output_low(PIN_A7) ;

output_low(PIN_B0);
output_low(PIN_B1);
output_low(PIN_B2);
output_low(PIN_B3);
output_low(PIN_B4);


init_ext_eeprom();


ds1307_set_date_time(dia,mes,ano,dow,hora,minutos,segundos);
ds1307_init();


sleep();



   while(true)
   {


   }//fin while (programa principal)
}//fin main

Título: Re: Bajar el consumo
Publicado por: pablomanieri en 03 de Diciembre de 2008, 12:14:45
si configuras los pines como salidas, no bebes conectarlos, solo debes conectarlos a masa o a positivo si los configuras como entradas. Debes tener cuidado con eso ya que si por alguna razón los pines como salida lo conectas a masa vas a tener un cortocircuito. Te aconsejo que los configures como entrada si los conectas a masa
Título: Re: Bajar el consumo
Publicado por: pablomanieri en 03 de Diciembre de 2008, 12:18:12
Además verifica que cada uno de los pines que están configurados como entradas no estén al aire.
Título: Re: Bajar el consumo
Publicado por: WillyP en 03 de Diciembre de 2008, 13:40:44
Lo de tocar el Pic con el dedo se debe a que se altera la frecuencia de funcionamiento, incluso muchas veces se detiene la oscilación, seguramente altera el consumo. Esto yo lo he comprobado reiteradas veces más cuando se trabaja por encima de los 10 Mhz. Se puede observar esta alteración con un osciloscopio.
Título: Re: Bajar el consumo
Publicado por: Agustina en 03 de Diciembre de 2008, 14:26:41
 :-/ :-/ :-/

al parecer quedo solucionado... eran dos cosas que se me pasaron...

el pin de MCLR no estaba conectado a anda... si bien estaba definido como puerto de IO y no como MCLR al dejarlo "flotando" causaba esto y el otro problema es que en el 16F88, este pin es solo de entrada y estaba definido como salida...

Ahora con esos cambios, el circuito consume 3,1uA.... practicamente NADA... asique creo que ya esta bien.

Ahora tengo que despertarlo  :mrgreen:

gracias a todos
Título: Re: Bajar el consumo
Publicado por: MLO__ en 03 de Diciembre de 2008, 16:35:16
Hola.

Si quieres bajar el consumo debes tener en cuenta tambien los pulsadores, que se activen al rising edge y no al falling edge, es decir que normalmente esten conectados a tierra.

(http://img217.imageshack.us/img217/5380/pulsadorfr1.png)

Si lo haces a la inversa (con resistencias de pull up) puede haber un consumo.

Saludos
Título: Re: Bajar el consumo
Publicado por: Gonzalo_BlackHawk en 03 de Diciembre de 2008, 21:35:57
Porque debería de haber diferencia de consumo colocando una pull-up o una pull-down? No lo entiendo MLO.
Título: Re: Bajar el consumo
Publicado por: MLO__ en 03 de Diciembre de 2008, 22:07:21
Hola.

Cuando la resistencia es de pull up, la resistencia esta conectada a Vcc, y de ahi entra al pic, que, aunque tenga una impedancia alta de entrada, hace que se cierre el circuito y fluya una corriente. Cuando se coloca una de pull down, la resistencia esta conectada a GND y por ende no hay consumo de corriente .. bueno ... eso es lo que he visto y he aplicado en aparatos con pilas ... si no es asi por favor corrijanme

Saludos.
Título: Re: Bajar el consumo
Publicado por: jacrmr en 03 de Diciembre de 2008, 22:43:24
En ambos casos hay consumo, el cual ciertamente puede ser diferente. También varía si la entrada es de tipo TTL, ST, o CMOS. Son valores mucho muy pequeños pero para aplicaciones críticas se pueden tomar en cuenta. No todos los fabricantes de circuitos integrados incluyen éstos parámetros.
Título: Re: Bajar el consumo
Publicado por: MLO__ en 03 de Diciembre de 2008, 22:51:34
Hola.

En el caso de la resistencia pull down, por donde es el consumo de corriente?

Saludos
Título: Re: Bajar el consumo
Publicado por: jacrmr en 03 de Diciembre de 2008, 23:23:41
Citar
En el caso de la resistencia pull down, por donde es el consumo de corriente?

De acuerdo a lo que TI explicaba en algunos de sus textos, mismos que tal vez ya estén descontinuados (por los años), dicho consumo se derivaba de una circulación hacia Vcc a través de los diodos y multiemisores de la entrada (sic). Dicha corriente se mantenía en una escala u orden de magnitud muy apartado de los niveles habituales para el switcheo de estados manteniendo los parámetros de mínimos y máximos de VIL y VIH.
Con certeza no creo que nadie fuera de los fabricantes lo sepa con exactitud, ya que ésa información no es obligación que la proporcione el fabricante para que el cliente diseñe con su producto. Aquí no tendría mucho sentido especular respecto a las diferentes topologías de entrada, ya que muchas de las utilizadas en la actualidad se mantienen como secreto comercial por las mejoras que se han hecho y tienen muy poco que ver con lo que aparece en los libros de texto sobre TTLs y CMOS, aunque compartan los mismos principios. Quién sabe, tal vez alguien con mucho tiempo libre pueda comprobarlo con un nanoamperímetro, aunque los valores deben ser tan despreciables que no creo que valga la pena ocuparse de ellos.
Título: Re: Bajar el consumo
Publicado por: PalitroqueZ en 04 de Diciembre de 2008, 13:03:25
Según recuerdo de unos manuales de la texas instruments y unas guias de la microchip, dejar una entrada al aire, causa un estado de indeterminación que puede hacer switchear los driver internos, por consiguiente aumentar mas el consumo que si por ejemplo se forzara la entrada a una condición lógica (pull-down o pull-up)

Título: Re: Bajar el consumo
Publicado por: reiniertl en 04 de Diciembre de 2008, 15:17:40
Efectivamente Palitroquez, dejar las entradas al aire no es una buena idea, sobre todo porque el ruido puede afectar mucho el funcionamiento del circuito. Luego entonces, ¿como conectar el pin de modo que se consuma la menor cantidad posible de corriente?

Allí es donde está el detalle, pero nada difícil de solucionar.

Para resolverlo nos llegamos hasta el datasheet y miramos cuales son las corrientes que maneja el dispositivo por sus pines, tanto en estado alto como en estado bajo. Lo correcto es configurar las entradas que no se utilizan como entradas. Luego miras las corrientes de entrada IIL y IIH de Input Current Low e Input Current High, la deseignación puede cambiar, y conectas el pin a la que sea menor. No olvidarnos de los resistores, si los lleva, para cada entrada, no vaya a ser que en lugar de consumir menos corriente matemos al circuito de un corrientazo.

Saludos
Reinier
Título: Re: Bajar el consumo
Publicado por: MLO__ en 04 de Diciembre de 2008, 19:40:44
Ok.

Muy buenos los datos.

Pero en si, hay diferencia entonces en conectar los pulsadores con pull up o pull down? o el consumo en los dos seria el mismo?

Yo pensaria que conectados en pull down seria menor el consumo no? ya que esta conectada el pin a GND y no a Vcc.

Saludos
Título: Re: Bajar el consumo
Publicado por: jacrmr en 04 de Diciembre de 2008, 19:47:27
Sólo midiendo experimentalmente para ver la diferencia, pero creo que éste ha de ser en la mayoría de dispositivos un parámetro caracterizado, más no testeado, por lo cual no creo que aún la medición sea significativa.
Título: Re: Bajar el consumo
Publicado por: PalitroqueZ en 05 de Diciembre de 2008, 13:19:22
...
Pero en si, hay diferencia entonces en conectar los pulsadores con pull up o pull down? o el consumo en los dos seria el mismo?
...

es que eso es algo que no se puede saber, a menos que sepas que circuiteria hay conectada como entrada, no es lo mismo poner a cero voltios una entrada con un transistor NPN que con uno PNP, pero una cosa si es segura (según las recomendaciones del fabricante), forzando la entrada a una condición el consumo será menor, a que dejandola al aire.


Título: Re: Bajar el consumo
Publicado por: reiniertl en 08 de Diciembre de 2008, 15:18:00
Exacto Palitorquez, no es lo mismo ni por mucho conectar la entrada a uno u otro tipo de transitor, además por lo general las salidas digitales de los CI son del tipo Totem pole, OC (open collector), OD (Openn drain) y así por el estilo, así que no hay nada como leer esas tablas enormes que tienen los datasheets y que no solemos mirar, porque por allí podemos comenzar a darnos cuenta cuanto consume una entrada cuando le imponemos un estado lógico determinado.

Esos consumos normalmente están dados para determinadas condiciones que suelen expresarse en el datasheet, porque esos valores cambian según el circuito que se les conecte, pero por allí es por donde hay que comenzar.

Saludos
Reinier
Título: Re: Bajar el consumo
Publicado por: PalitroqueZ en 08 de Diciembre de 2008, 15:52:46
...
Esos consumos normalmente están dados para determinadas condiciones que suelen expresarse en el datasheet, porque esos valores cambian según el circuito que se les conecte, pero por allí es por donde hay que comenzar.
...

es cierto Reiniert, no me percaté que lo venias diciendo desde el post anterior, en la datasheet éste parámetro se conoce como IoL e IoH (corriente máxima de salida en nivel bajo y corriente máxima de salida respectivamente)