Fazendo a bateria durar muito tempo em um circuito de microcontrolador


26

Espero alimentar um ATtiny85V por um bom tempo em uma bateria pequena, provavelmente uma célula tipo moeda.

Eu olhei para o lado do software, e meu código é controlado por timer de vigilância, os conversores analógicos e digitais não utilizados foram desligados, o chip está funcionando a 1 MHz, etc. quanta corrente ele está consumindo, mas espero que o tenha minimizado.

A cada poucos segundos, ele acorda, verifica seu nível de tensão nos ADCs, grava-o em memória RAM e volta a dormir. Se detectar que uma linha serial está conectada, os dados são transmitidos.

No entanto, agora estou olhando para o circuito como um todo e me perguntando se há coisas que devo fazer para tornar o circuito como um todo mais amigável à bateria.

Quais são os prós e contras básicos quando se trata de projetar um circuito (simples) duradouro em que um componente (o microcontrolador) possui um consumo de corrente repetitivo, mas variável?

Por exemplo:

  • Um LED indicador é um grande negócio? Está usando a bateria quando está brilhante? Devo colocar um resistor gigante para torná-lo fraco ou isso apenas faz o resistor usar a bateria?
  • Devo usar capacitores de desvio / desacoplamento para uniformizar o consumo de corrente da bateria ou o capacitor apenas desperdiçará a energia da bateria?
  • O microcontrolador precisa apenas de 1,8V, mas eu não tenho nenhuma bateria de 1,8V. Devo usar duas baterias 1.x e enviar muita tensão? Posso prolongar a vida útil da bateria "não usando tantos volts"? Como faço isso?
  • É preciso energia extra para verificar se um pino é ALTO ou BAIXO? Como comparado a uma operação não operacional ou aritmética, há muito uso de energia adicional na verificação de um dos pinos de E / S do GP quanto ao seu estado?

Eu sei vagamente como calcular (e mais vagamente como medir) corrente, tensão, potência, mas não tenho muita certeza de quais dessas coisas equivalem à vida útil da bateria. A medida importante da vida útil da bateria é Coulombs?

Tenho uma vaga idéia de que as baterias estão cheias de coisas como:

  • carga, como em amp-horas
  • energia, como em watts-hora
  • potência, como em watts

mas não sou muito claro sobre o que meu circuito "come" quando é executado. Eu li uma boa quantidade de livros didáticos sobre física EE101, mas não tenho nenhuma experiência de laboratório. Em outras palavras, eu li muito sobre baterias, mas não tenho muita certeza do que isso significa na prática.

Os resistores consomem a bateria? Capacitores? Faça diodos? Suspeito que todos façam isso, mas quais são os números que importam? Impedância? Dissipação de energia? Atual? Voltagem?

Existe uma maneira de diminuir a tensão sem desperdiçar a bateria? Existe uma maneira de diminuir a tensão enquanto aumenta a vida da bateria?


6
Esta é uma pergunta muito, muito ampla. Você quase precisa fazer várias perguntas. Eu poderia fazer uma pergunta completa para a questão de energia do LED.
Kortuk

11
Legal, vou dividir depois do expediente. Talvez este seja apenas um amplo prós e contras. Eu acho que essas respostas seriam úteis para as pessoas que estão apenas tentando tirar o máximo proveito de uma bateria, mas acho que fornecer qualquer tipo de resposta autoritativa ou educacional requer uma pergunta mais restrita.
Jack Schmidt

Sim, percebi que teria que seccionar minha resposta com sua pergunta e levaria uma hora.
Kortuk

BTW, minha esposa encontrou makezine.com/makeitlast que pode ser útil, pois é basicamente um concurso para fazer esse tipo de coisa. Acho que começa hoje, para que eles não tenham nenhuma dica sobre como fazê-lo. De qualquer forma, meu projeto é independente e duvido que tenha tempo para participar de qualquer maneira :) Fique à vontade para esperar até que o concurso termine, se você não gostar dessas coisas.
Jack Schmidt

Respostas:


20

Apenas uma lista aleatória, se você postar seu esquema, provavelmente seria mais fácil:

As células da moeda de lítio de 1,8V são muito fáceis de encontrar, mas é mais provável que sua interface serial precise de 3,3v? A menos que o seu lado receptor receba 1,8V.

A corrente de fuga geralmente sobe à medida que sua voltagem aumenta, portanto, geralmente é mais baixo. Considere também o ponto de interrupção do sistema versus as características da bateria. As características de 'morte' da bateria serão determinadas pela química da bateria usada. Por exemplo, se o seu uC escurece a 1,7V, você pode realmente querer usar uma bateria de voltagem mais alta, pois em algumas baterias a voltagem de saída diminui lentamente à medida que a bateria morre. Você obteria mais vida útil de uma bateria de 3,3V, pois quando ela começa a morrer, sua saída diminui lentamente e você pode operar até 1,8V. Se você usar uma bateria de 1,8V, você será desligado rapidamente, quando a bateria acabar. Isso tudo pressupõe que sua interface serial ou outros componentes possam lidar com uma ampla faixa de tensão (eu sei que o AVR pode).

Os LEDs consomem muita energia, a menos que você use um LED de energia muito baixa e esteja controlando o consumo atual, provavelmente está consumindo muito mais corrente do que o AVR. Se estiver disponível apenas para depuração, não o preencha para produção ou apenas faça-o piscar de vez em quando ou algo para minimizar o tempo de execução e, definitivamente, controle o seu desenho atual.

Se puder, escolha o estado de polaridade / repouso da sua interface serial para consumir o mínimo de energia possível, o estado de descanso não deve consumir energia. Se forem necessários pull ups, use o maior resistor possível para manter a integridade do sinal, mas minimizar o uso atual. Se o poder é uma grande preocupação, use um esquema de sinalização que favorece os bits que não extraem poder. Por exemplo, se você tem flexões, o uso de um protocolo que resulta em muitos 1s no sinal deixará a interface serial em um estado que não consome tanta energia na maioria das vezes. Tais otimizações só valem a pena se você estiver fazendo uso pesado do barramento serial. Se for muito pouco usado, verifique se o estado de descanso não está consumindo energia.

De um modo geral, você pode assumir que todas as instruções (leitura de GPIO, etc.) requerem a mesma quantidade de energia. Não é realmente verdade, mas a diferença de poder é mínima.

O uso de energia é muito mais dependente do número / tipo de periféricos em que você ligou e da quantidade de tempo que o micro passa ativo versus adormecido. Assim, o ADC usa mais energia, as gravações da EEPROM usam uma quantidade razoável de energia. Especificamente, algo como as gravações da EEPROM geralmente são feitas em 'pedaços' razoavelmente grandes; portanto, você deve acumular o máximo de informações possível antes de fazer a gravação na EEPROM (se você estiver usando, é claro). Para o ADC que o micro suporta a leitura do ADC durante dois de seus estados de sono, como a conversão do ADC leva um tempo relativamente longo, é um bom momento para dormir.

Você provavelmente deve apenas ler as seções sobre gerenciamento de energia, estados de suspensão e minimização de energia usando a folha de dados do microcontrolador: linky página 35. Mantenha o AVR no estado de sono mais profundo possível pelo maior tempo possível. A única exceção é que você deve considerar o tempo de inicialização e desligamento. Não vale a pena dormir por 10 ciclos se acordar de volta leva 25, etc.

Os resistores consomem a bateria? Capacitores? Faça diodos?

Todos eles fazem até certo ponto. Os resistores se dissipam mais na maioria das aplicações:

P = V * I

P = V ^ 2 / R ou P = I ^ 2 * R (onde V é a queda de tensão no resistor)

Os diodos têm uma queda de tensão (relativamente) fixa, portanto a dissipação de energia está quase exclusivamente ligada à corrente que passa pelo diodo. Por exemplo, um diodo com uma queda de tensão direta de 0,7V, P = 0,7 * I, se a corrente estiver avançando através do diodo. Esta é uma simplificação, é claro, e você deve verificar o modo de operação com base nas características IV do diodo.

Teoricamente, os capacitores não devem dissipar nenhuma energia, mas, na realidade, eles têm uma resistência em série finita e uma corrente de fuga diferente de zero, o que significa que eles dissipam alguma energia, geralmente algo que você não deve se preocupar com tensões tão baixas. Dito isto, escolher capacitores com corrente de fuga mínima e ESR é uma vitória em termos de potência.

Quanto a usá-los para suavizar a carga da bateria, isso realmente não ajuda no uso de energia, é mais na filtragem. Também a química da bateria entra em jogo aqui, algumas químicas ficam mais felizes com um consumo constante, outras lidam melhor com os consumos de corrente pontiagudos.


11
a parte importante de P = V ^ 2 / R é que, à medida que R sobe com uma tensão fixa, o uso de energia diminui.
Kortuk

Legal, para usar mais bateria, provavelmente vou precisar de uma voltagem mais alta (possivelmente usando o regulador sugerido por Andrew). Vou fazer algumas experiências para ver quão baixa tensão a linha serial levará. Também terei certeza de definir os pinos não utilizados para a saída. Serial é usado apenas ocasionalmente, então vou verificar o estado restante. Eu definitivamente tentei desligar todos os periféricos que puder.
Jack Schmidt

Para capacitores: provavelmente não preciso de nenhum capacitor para ajudar a bateria. Verifique a química da bateria, mas supondo que ela possa lidar com o padrão de consumo de corrente que tenho, então não há necessidade de tentar ajustá-la, certo?
Jack Schmidt

Obrigado pela coisa P. Eu acho que agora entendo. P = I * V, em que V é a queda de tensão, para que eu possa medir o consumo de bateria em P ou I (ou P-horas ou I-horas), desde que a tensão não possa ser alterada. Ainda não tenho certeza se posso alterar o V "de graça".
Jack Schmidt

11
O regulador de impulso buck andrew mencionado é realmente a melhor solução. Eu não mencionei isso porque o layout desses circuitos geralmente é crítico. Eles são difíceis de se adaptar sem desempenho desagradável ou irradiando toneladas de EMI. Leia a folha de dados com atenção, geralmente são incluídas recomendações de layout e identificação de caminhos críticos. Também haverá restrições mais rígidas em algumas das peças usadas. Capacitores ESR baixos e tal.
Mark

12

Mark deu uma resposta excelente e acertou em muitos dos pontos que eu ia fazer. Há alguns que eu gostaria de contribuir também.

Use um osciloscópio com um resistor de baixo ohm em série, com o retorno da bateria comum para fazer medições de corrente. O consumo atual de um microcontrolador não é simples e, como regra geral, os medidores são MUITO lentos demais para dar uma boa idéia do que está acontecendo. O que significa "baixo-ohm" depende do consumo de corrente esperado. um resistor de 1 ohm desenvolverá 100mV para cada 100mA consumido, e isso provavelmente é demais para você. Eu tentaria um resistor de 10 ohm 1% ou 0,5%; você verá 100mV para cada 10mA de consumo atual. 18 ohms daria 100mV para cada 5,5mA. Se você está realmente buscando energia baixa, poderá conseguir 1k; I = V / R: você verá 100mV para cada 100uA de corrente consumida. Cuidado, porém; se você consumir corrente suficiente, acabará caindo demais na derivação e suas medidas serão desativadas, para não mencionar o circuito provavelmente não vai funcionar. :-)

Com o escopo conectado, tente algumas frequências de operação diferentes para o microcontrolador. Você pode se surpreender ao saber que consome menos energia com uma velocidade de clock mais alta porque gasta muito menos tempo "acordado".

Elimine pull-ups / downs, tanto quanto possível. Você não deve ter nenhuma saída, pois pode conduzi-las para um estado inativo na maioria dos casos. As entradas devem estar vinculadas ao que faz sentido, usando o maior valor possível, como Mark disse.

Verifique se o seu microcontrolador está o mais desligado possível. Transforme pinos não utilizados em saídas e leve-os a um estado (alto ou baixo, não importa). Não deixe os LEDs acesos. Se você puder desligar outros componentes ou parar os relógios, faça-o. As memórias SPI Flash, por exemplo, costumam ter um comando de 'desligamento' que absorve o consumo de energia já baixo e o reduz ainda mais.

Outros abordaram o aspecto da tensão, e eu também gostaria de comentar. Você provavelmente acabará com MUITO melhor uso da bateria se usar um regulador buck / boost de alta eficiência entre a bateria e seu circuito. O regulador estará no modo buck (redução de tensão) quando o nível da bateria for maior que os 1,8V necessários e alternará para o modo de aumento (aumento da tensão) quando o nível da bateria cair abaixo de 1,8V. Isso permitirá que você execute o circuito até que a bateria esteja totalmente descarregada, o que vale a pena a pequena perda de eficiência percentual que você terá ao usá-los. Certifique-se de selecionar o regulador com base em sua eficiência em toda a faixa que você deseja usar e dimensione-o adequadamente; um regulador que pode fornecer 1A com 98% de eficiência provavelmente está com 60% de eficiência, fornecendo 50mA. Leia as folhas de dados com atenção.


Legal. Eu não usei um escopo antes, mas suspeito que nosso laboratório local ficará feliz em me mostrar isso (agora estou usando o multímetro em série para medir a corrente; não é muito bom). - Além disso, você recomendaria o regulador mesmo se eu estiver usando apenas 1-10mA, supondo que eu possa encontrar uma peça apropriada? A eficiência de 90% é boa o suficiente (lembro-me de encontrar uma barata nessa faixa) ou está usando mais corrente do que me poupa?
Jack Schmidt

11
ponto muito bom em tocar com a frequência, me lembra de como o rádio wifi no meu celular usa mais energia do que o modem celular, mas o wifi é muito mais rápido que pode dormir mais e acaba sendo melhor em termos gerais de energia por causa disso.
Mark

2
Outro truque para estimar o uso atual do microcontrolador com média de tempo em cenários onde o consumo de corrente será "estourado" é carregar um capacitor realmente grande e alimentar um regulador de corrente quieta baixa para simular a tensão da bateria. Um capacitor de 100.000 uF cairá 0,01 volts por miliampere de segundo. Se cair 0,3 volts em cinco minutos (300 segundos), o consumo médio atual é de 100uA.
supercat

O ponto da eficiência dos reguladores é muito importante. Então você tem que estimar a sua gama de consumo atual para selecionar um regulador apropriado dentro desse intervalo
gustavovelascoh

4

Com seu circuito, eu recomendaria o uso de um multímetro na faixa de microamperes para medir o consumo de corrente. Dadas as características da bateria, é possível calcular a longevidade. Não é necessariamente amp-horas / corrente, pois a bateria terá características de descarga diferentes para cargas diferentes. Mas, pode ser útil como uma aproximação.

Em 1 MHz, acho que você estará consumindo um pouco de energia - pelo menos 100µA, se os micros PIC forem algo a comparar. Mas isso será sobrecarregado pelos 5mA a 20mA que passam pelo LED, então você deve se livrar disso primeiro.


Frio, LED apagado. Dificuldade em obter uma medida precisa. Parece 0.9mA agora, então talvez meu software não esteja desligando tanto quanto eu pensava. Com o Arduino (e o LED de batimento cardíaco) envolvido, é mais parecido com 8-9mA, então pelo menos o menor está ajudando.
Jack Schmidt

1

Atualmente, existem kits de desenvolvimento e placas de interrupção prontamente disponíveis que são extremamente úteis para fazer medições precisas de corrente, em alguns casos até a faixa de nA. Se você ainda não tiver definitivamente conferido o conferido µCurrent Gold . Isso é bom para medições estáticas, mas menos para registrar medições ao longo do tempo.

Uma maneira de você ainda usar o µCurrent é conectar um amplificador de diferença à saída. Em seguida, você pode alimentar isso com um osciliscópio ou um analisador lógico com entradas analógicas. Eu escrevi um tutorial completo sobre parafusos e porcas que acho que pode ajudar pessoas com orçamento limitado que não possuem as ferramentas certas.

É incrível o que você pode aprender não apenas com o que a tensão está fazendo dentro do seu circuito, mas também como ela reage a cada pequeno pico de corrente. Isso me salvou algumas vezes ao escolher tecnologias de bateria e testes de validação. 😎


0

Todas as respostas já têm pontos importantes. Vou adicionar um da minha experiência.

Quando eu estava desenvolvendo dispositivos com consumo inferior a 10uA, até menos de 1uA no modo de suspensão profunda, a limpeza da placa fazia a diferença. Uma vez eu tinha 7 de 10 placas com o consumo atual esperado. Todos eram iguais e todos funcionavam bem. Após limpá-los em um limpador ultrassônico, todas as placas foram para o resultado esperado.

E, finalmente, estime seu consumo esperado / direcionado, verificando as folhas de dados de todos os seus elementos. Se você lidar com eles ok, você alcançará sua estimativa. Isso inclui todos os pinos não utilizados no microcontrolador. Mesmo se você desligar o ADC, verifique se a configuração dos pinos está desativada, dependendo da sua conexão externa.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.