Página 1 de 1
Consumo alto em sleep

Enviado:
22 Nov 2008 22:45
por hermes
Pessoal,
Um pic 16F877 em sleep está consumindo 2mA num projeto meu...
nao tem nada conectado nele, a nao ser 2 LM35 desligados... tipo, o pic chaveia a alimentação dos sensores e tb os lê...
mas em sleep os sensores estao desligados...desligo ate o AD e nada...
O consumo nao deveria ser da ordem de uA?
Ah, fica rodando o timer1 com um cristal de 32Khz por fora em sleep...mas acho q nao consome tanto assim...
Obrigado.

Enviado:
24 Nov 2008 12:37
por lpagano
hermes,
No datasheet desse PIC está escrito que o Timer1 consome por volta de 20uA.
Portanto veja se realmente ele está entrando em sleep pois 2mA é muito para o sleep.

Enviado:
24 Nov 2008 13:21
por Cláudio
Dicas do manual:
Para redução de corrente em modo sleep:
- Colocar todos os pinos pra VCC ou terra
- Assegurar que nenhum circuito externo está "drivando" corrente através de um pino de I/O
- Desligar A/D
- Desativar clocks externos
- Considerar corrente dos Pull-ups do portb
- O oscilador do timer1 adiciona 20uA no cálculo

Enviado:
24 Nov 2008 17:53
por hermes
Cláudio,
Li isso no manual, porém veja minhas dúvidas:
Para redução de corrente em modo sleep:
- Colocar todos os pinos pra VCC ou terra
Como faço isso??? Pelo q li isso deve ser feito colocando-se os pinos em vcc ou terra externamente...so imagino ser possível definir pinos como saida e impor um desses niveis...
- Assegurar que nenhum circuito externo está "drivando" corrente através de um pino de I/O
Td q tem ligado é um led, 2 lm35, 1 botao no port b e referencia de tensao. qdo entra em sleep as saidas ficam em 0.
- Desligar A/D
Isso eu não fazia... fiz qdo li o manual antes de postar aqui...mas nao deu mta diferença...
- Desativar clocks externos
Como que eu desativo o cristal externo?
- Considerar corrente dos Pull-ups do portb
Sim, sim...me lembrei disso ainda antes de ler o datasheet...nao reduziu mto tb...mas reduziu....
- O oscilador do timer1 adiciona 20uA no cálculo
Quem me dera adicionasse coisas da ordem de dezenas de uA...
Ipagano,
Testei o programa sem a instrução sleep e consumia mais...perto de 70% mais...por isso acho q o sleep tá funcionando.
Resumindo, ainda não sei como baixar esse consumo...
Obrigado e fico no aguardo de mais idéias...[/i]

Enviado:
24 Nov 2008 20:38
por RobL
Obviamente o consumo mínimo anunciado pela Mchip só poderá ser atingido em condições ideais. Nas condições reais temos sempre algo nas portas.
Mas isso nos dá uma sugestão. Por exemplo, se há um drive no qual seu menor consumo será com um dos 3 estados da porta, alto, baixo, ou alta impedância (porta como entrada) antes do sleep temos que colocar a porta em uma desta condição. Da mesma forma como fazemos com os resistores de pullups internos.
Por exemplo para retirar um clock externo, passe antes para um clock interno de 32K. Desconfigure essa entrada de clock, procure setar ela em um dos 3 estados (saída baixo ou alto ou entrada) no qual seja o menor consumo.
Deixar todas as portas como digitais nesse momento (antes do sleep)
Se possível, antes do sleep, passar para o oscilador interno de 32Khz (já sugerido acima) e sair por ele, enfim mudar tudo antes de dormir. Ao acordar reconfigurar tudo e numa sequência estudada para não destruir o hardware. Saia desligando todos os periféricos que seu chip permitir.
Aí dá para reduzir bastante. Dependendo o chip chega fácil a 100uA com penduricalhos e com mais reduções chega a bem menos (dependendo do hardware).
Não sei se a família 18F já tem vários meios de se retirar a alimentação por programa de todos periféricos que possam ser desligados, procedimento muito comum em outros chips como os AVRs.

Enviado:
25 Nov 2008 07:12
por otavio luiz
Fiz um projeto que precisava de baixo consumo o grande vilão era o BOD, mesmo assim não chegava em 2mA, da em torno de 75uA. Agora fala uma coisa esse consumo é só do micro ou voce esta mendiando antes do regulador pois esse consumo pode ser a corrente quiescente do proprio regulador.

Enviado:
25 Nov 2008 08:36
por hermes
Pessoal,
Obrigado pelas dicas.....vou ver oq consigo implementar...
Otávio Luiz, não tem regulador...a alimentação é com pilhas...

Enviado:
25 Nov 2008 08:57
por Cláudio
Hermes,
- Pra forçar o nível lógico em um pino, coloque-o como entrada para não queimá-lo.
- Por "clocks externos", julgo que seja de outros circuitos (CI´s, etc) senão o do oscilador do PIC, que já é desligado com o SLEEP.
- Tenta desligar tudo quanto é treco! WDT, BOD, POR...
- Já trocou de PIC?
Descobre e conta pra gente, rsrs!

Enviado:
25 Nov 2008 22:24
por lpagano
hermes,
Ligue o PIC somente com a alimentação e nada nos pinos I/O. Veja o que dá no seu consumo quando ele entra em sleep.
Outra coisa é testar ele com um programa bem simples, ou seja, após a configuração ele já vai para sleep.

Enviado:
26 Nov 2008 07:13
por ffcprog
por default.
A maioria dos PIC´s, pós reset tem suas portas todas como INPUT.
Experimente o seguinte:
Reset....
Configure o oscilador externo com cristal de 32.768 conforme comentou, e sleep;
Faça a medição de corrente, e observe a corrente.
Depois.
Reset... "utilizando o ck interno"
Configure o oscibits se tiver.
Sleep;
Faça a medição de corrente, e observe a corrente.
Com isto, você irá sanar a duvida de consumo com CK interno e utilizando o oscilador externo do TMR1.
Abraços..

Enviado:
26 Nov 2008 10:18
por hermes
Pessoal,
Vo coloca o bixim no proto com e sem sleep e sem nada nos I/O's pra ver o consumo...
Mas no geral, oq da menos consumo para pinos que nao são utilizados? Deixá-los como saida em nível alto, baixo ou alta impedancia?
Obrigado.

Enviado:
26 Nov 2008 11:45
por Djalma Toledo Rodrigues
Ele deve é estar saindo do Sleep através do TImer 1 ou do W dog

Enviado:
26 Nov 2008 12:42
por turuna
Desenvolvi um data logger na empresa que trabalho utilizando um pic 16f77 alimentado com baterias de hidreto, percebi que o regulador consumia mais que todo o sistema, para resolver isso coloquei 3 diodos em série para reduzir a tensão, e antes de por o pic em sleep passo todos os ports como entrada, o consumo fica em poucos míseros microamperes(3uA se ñ me engano), o detalhe é que esse consumo baixo só consegui quando antes do sleep os ports estejam todos como entrada........há e toda a eletrônica digital necessário externo ao controlador eeprom, display, sensorres, RTC etc é alimentado por um port do pic e não diretamente ligado ao vcc.
Turuna

Enviado:
27 Nov 2008 12:14
por Djalma Toledo Rodrigues
Porque não fabricam uC de 6 - 9 - 12 Vdc ?