마이크로 컨트롤러 회로에서 배터리를 오래 지속


26

나는 작은 배터리, 아마도 코인 셀에서 오랫동안 ATtiny85V에 전원을 공급하기를 바라고 있습니다.

소프트웨어 측면을 살펴본 결과 코드는 워치 독 타이머 구동이며, 사용하지 않은 아날로그 및 디지털 변환기가 꺼져 있으며, 칩이 1MHz 등에서 실행되고 있습니다. 얼마나 많은 전류가 흐르고 있지만 기본적으로 최소화하기를 바라고 있습니다.

몇 초마다, ADC에서 전압 레벨을 점검하고, 램에 기록하고, 다시 절전 모드로 전환합니다. 직렬 회선이 연결된 것을 감지하면 데이터가 유출됩니다.

그러나 이제 회로를 전체적으로보고 있으며 회로를 전체 배터리 친화적으로 만들기 위해해야 ​​할 일이 있는지 궁금합니다.

하나의 구성 요소 (마이크로 컨트롤러)가 반복적이지만 가변적 인 전류 소모를 갖는 오래 지속되는 (간단한) 회로를 설계 할 때 기본적으로해야 할 것과하지 말아야 할 것은 무엇입니까?

예를 들어 :

  • 표시기 LED가 큰 문제입니까? 배터리가 밝을 때 배터리를 사용합니까? 어둡게 만들기 위해 거대한 저항기를 올려야합니까, 아니면 저항기가 배터리를 사용하게합니까?
  • 바이 패스 / 디커플링 커패시터를 사용하여 배터리에서 전류를 균일하게 제거해야합니까, 아니면 커패시터가 배터리의 전력을 낭비하는 것입니까?
  • 마이크로 컨트롤러에는 1.8V 만 필요하지만 1.8V 배터리는 없습니다. 1.x 배터리 2 개를 사용하고 너무 많은 전압을 보내야합니까? "볼트를 많이 사용하지 않음"으로써 배터리 수명을 연장 할 수 있습니까? 어떻게합니까?
  • 핀이 HIGH 또는 LOW인지 확인하려면 추가 전원이 필요합니까? 무 작동 또는 일부 산술과 비교하여 GP I / O 핀 중 하나의 상태를 확인하는 데 추가 전력 사용량이 있습니까?

전류, 전압, 전력을 계산하는 방법 (및 더 모호한 측정 방법)을 모호하게 알고 있지만, 배터리 수명과 어떤 것들이 실제로 어떤 것인지 잘 모르겠습니다. Coulombs에서 배터리 수명을 측정하는 것이 중요합니까?

나는 배터리가 다음과 같은 것들로 가득하다는이 모호한 생각을 가지고 있습니다.

  • 암페어 시간과 같이 충전
  • 와트시와 같은 에너지
  • 와트와 같은 전력

그러나 회로가 실행될 때 회로가 무엇을 먹는지 확실하지 않습니다. 나는 많은 양의 EE101과 물리 교과서를 읽었지만 실습 경험이 없습니다. 다시 말해서, 나는 배터리에 대해 많은 것을 읽었지만 실제로 실제로 그것이 무엇을 의미하는지 잘 모르겠습니다.

저항은 배터리 수명을 소모합니까? 커패시터를 사용합니까? 다이오드를 사용합니까? 나는 그들 모두가 의심하지만 어떤 숫자가 중요한가? 임피던스? 전력 소모? 흐름? 전압?

배터리를 낭비하지 않고 전압을 낮추는 방법이 있습니까? 배터리 수명을 늘리면서 전압을 낮추는 방법이 있습니까?


6
이것은 매우 광범위한 질문입니다. 거의 여러 가지 질문을해야합니다. 나는 LED 전원 질문에 대한 완전한 질문을 줄 수 있습니다.
Kortuk

1
쿨, 근무 시간 후에 분할하겠습니다. 어쩌면 이것은 광범위한 일과하지 않은 것일 수 있습니다. 그런 답변은 배터리를 최대한 활용하려는 사람들에게 도움이 될 것이라고 생각하지만 권위있는 또는 교육적인 답변을 제공하려면 더 좁은 질문이 필요합니다.
Jack Schmidt

그래, 나는 당신의 질문에 의해 내 대답을 나누어야한다는 것을 깨달았고 한 시간이 걸릴 것입니다.
Kortuk

BTW 내 아내는 makezine.com/makeitlast 를 발견 했는데, 이것이 기본적으로 이런 종류의 일을 만들기위한 경쟁이기 때문에 결국 유용 할 것입니다. 나는 오늘 시작한다고 생각하므로 어떻게 해야하는지에 대한 힌트가 없습니다. 어쨌든 내 프로젝트는 독립적이며 어쨌든 참가할 시간이 없을 것입니다. :) 마음에 들지 않으면 콘테스트가 끝날 때까지 기다리십시오.
Jack Schmidt

답변:


20

무작위 목록, 당신이 당신의 회로도를 게시하면 아마 더 쉬울 것입니다 :

1.8V 리튬 코인 셀은 쉽게 찾을 수 있지만 직렬 인터페이스에 3.3v가 필요할 가능성이 더 큽니까? 수신단이 1.8V를 처리하지 않는 한.

누설 전류는 일반적으로 전압이 증가함에 따라 증가하므로 일반적으로 낮을수록 좋습니다. 또한 배터리 특성과 시스템의 브라운 아웃 지점을 고려하십시오. 배터리의 '죽음'특성은 사용하는 배터리 화학에 따라 결정됩니다. 예를 들어, uC가 1.7V에서 브라운 아웃되는 경우 실제로 일부 배터리에서와 같이 더 높은 전압의 배터리를 사용하려고 할 수 있습니다. 배터리가 죽으면 출력 전압이 느려집니다. 죽기 시작하면 출력이 천천히 떨어지고 1.8V까지 계속 작동 할 수 있기 때문에 3.3V 배터리에서 더 많은 수명을 얻을 수 있습니다. 1.8V 배터리를 사용하는 경우 배터리가 소진되면 상당히 빨리 종료됩니다. 이것은 모두 직렬 인터페이스 또는 다른 구성 요소가 넓은 전압 범위를 처리 할 수 ​​있다고 가정합니다 (AVR이 알고 있음).

LED는 매우 낮은 전력의 LED를 사용하고 전류 소모를 제어하지 않는 한 AVR보다 훨씬 많은 전류를 소비하지 않는 한 많은 전력을 사용합니다. 디버그 용으로 만 있다면 프로덕션 용으로 채우거나 시간 또는 시간을 최소화하기 위해 한 번만 깜박이고 현재 드로우를 제어하십시오.

가능하면 직렬 인터페이스의 극성 / 휴지 상태를 선택하여 가능한 한 적은 전력을 소비하십시오. 휴지 상태는 전력을 끌어 오지 않아야합니다. 풀업이 필요한 경우 신호 무결성을 유지하면서 전류 사용량을 최소화하기 위해 가능한 최대 저항을 사용하십시오. 전력이 큰 관심사라면 전력을 소비하지 않는 비트를 선호하는 신호 체계를 사용하십시오. 예를 들어 풀업이있는 경우 신호에서 1을 많이 발생시키는 프로토콜을 사용하면 대부분의 시간 동안 전력을 많이 소비하지 않는 상태로 직렬 인터페이스가 유지됩니다. 이러한 최적화는 직렬 버스를 많이 사용하는 경우에만 가치가 있습니다. 매우 가볍게 사용하는 경우 휴식 상태가 전력을 소비하지 않는지 확인하십시오.

일반적으로 모든 명령 (GPIO 읽기 등)에 동일한 양의 전력이 필요하다고 가정 할 수 있습니다. 실제로는 아니지만 전력 차이는 최소화됩니다.

전원 사용량은 전원을 켠 주변 장치의 수 / 유형 및 마이크로가 활동하는 데 소요되는 시간과 잠자기 시간에 따라 달라집니다. 따라서 ADC는 더 많은 전력을 사용하고 EEPROM 쓰기는 상당한 양의 전력을 사용합니다. 특히 EEPROM 쓰기와 같은 것은 일반적으로 상당히 큰 '청크'로 수행되므로 EEPROM에 쓰기를하기 전에 가능한 한 많은 정보를 축적해야합니다 (물론 사용하더라도). 마이크로 컨트롤러가 2 개의 슬립 상태 동안 ADC 읽기를 지원하는 ADC의 경우, ADC 변환은 비교적 오랜 시간이 걸리기 때문에 슬립하기에 좋은 시간이다.

당신은 아마 마이크로 컨트롤러의 데이터 시트에 사용하여 전원 관리, 절전 상태를 최소화 전원 섹션을 읽어야 linky 35 페이지에. AVR을 가능한 한 가장 깊은 수면 상태로 유지하십시오. 이에 대한 유일한 예외는 시작 및 종료 시간을 고려해야한다는 것입니다. 다시 깨우는 데 25 등이 걸리면 10주기 동안 잠을 자지 않아도됩니다.

저항은 배터리 수명을 소모합니까? 커패시터를 사용합니까? 다이오드를 사용합니까?

그들은 모두 어느 정도 수행합니다. 저항기는 대부분의 응용 분야에서 가장 많이 소실됩니다.

P = V * I

P = V ^ 2 / R 또는 P = I ^ 2 * R (여기서 V는 저항의 전압 강하)

다이오드는 (상대적으로) 고정 전압 강하가 있으므로 전력 소비는 거의 독점적으로 다이오드를 통과하는 전류와 관련이 있습니다. 예를 들어 0.7V 순방향 전압 강하를 갖는 다이오드는 전류가 다이오드를 통해 앞으로 이동하는 경우 P = 0.7 * I입니다. 이것은 물론 단순화 된 것이며 다이오드의 IV 특성에 따라 작동 모드를 확인해야합니다.

커패시터는 이론적으로 어떤 전력도 소산해서는 안되지만 실제로는 직렬 저항이 유한하고 누설 전류가 0이 아니기 때문에 일반적으로 저전압으로 걱정할 필요가없는 일부 전력을 소산합니다. 누설 전류와 ESR이 최소 인 커패시터를 선택하는 것이 전력 승리입니다.

배터리 사용을 원활하게하기 위해 그것들을 사용하는 한, 이것은 실제로 전력 사용량에 도움이되지 않으며 필터링에 더 좋습니다. 또한 배터리 화학이 여기에 등장하고 일부 화학 물질은 일정한 인발로 더 행복하고 일부 화학 물질은 날카로운 전류 인발로 더 잘 처리됩니다.


1
P = V ^ 2 / R의 중요한 부분은 R이 고정 전압으로 올라 갈수록 전력 사용량이 감소한다는 것입니다.
Kortuk

차갑기 때문에 더 많은 배터리를 사용하려면 아마도 더 높은 전압이 필요할 것입니다. 직렬 회선의 전압이 얼마나 낮은 지 확인하기 위해 몇 가지 실험을 수행합니다. 또한 사용하지 않는 핀을 출력으로 설정해야합니다. 시리얼은 가끔씩 만 사용되므로 나머지 상태 만 확인하겠습니다. 가능한 모든 주변 장치를 종료하려고했습니다.
잭 슈미트

커패시터의 경우 : 아마도 배터리를 돕기 위해 커패시터가 필요하지 않습니다. 배터리의 화학적 성질을 확인하되, 그것이 가지고있는 전류 드레인의 패턴을 처리 할 수 ​​있다고 가정하면 조정하려고 할 필요가 없습니다.
잭 슈미트

P에 감사드립니다. 나는 지금 이해하고 있다고 생각합니다. P = I * V 여기서 V는 전압 강하이므로 전압을 변경할 수없는 한 P 또는 I (또는 P 시간 또는 I 시간) 단위로 배터리 소모를 측정 할 수 있습니다. V를 "무료로"변경할 수 있는지 확실하지 않습니다.
Jack Schmidt

1
앤드류가 언급 한 벅 부스트 레귤레이터는 실제로 최고의 솔루션입니다. 그러한 회로의 레이아웃이 일반적으로 중요하기 때문에 언급하지 않았습니다. 펑키 한 성능이나 수많은 EMI를 방출하지 않으면 브레드 보드하기가 어렵습니다. 데이터 시트를주의 깊게 읽으십시오. 중요한 경로의 레이아웃 및 식별에 대한 권장 사항이 일반적으로 포함됩니다. 사용 된 일부 부품에는 더 엄격한 구속 조건이 있습니다. 낮은 ESR 커패시터 등
Mark

12

Mark는 가장 훌륭한 답변을했으며 내가 만들려고하는 많은 포인트를 쳤다. 내가 기여하고 싶은 몇 가지가 있습니다.

전류를 측정하기 위해 배터리로의 일반적인 복귀와 직렬로 저 저항 저항기가있는 오실로스코프를 사용하십시오. 마이크로 컨트롤러를 사용한 전류 소모는 간단하지 않으며 일반적으로 미터는 너무 느려서 무슨 일이 일어나고 있는지 잘 알 수 없습니다. "낮은 저항"의 의미는 예상되는 전류 소모에 따라 다릅니다. 1 옴 저항은 100mA를 끌어 당길 때마다 100mV를 발생 시키며 이는 아마도 너무 많은 양일 것입니다. 나는 10ohm 1 % 또는 0.5 % 저항을 시도했다; 전류 10mA마다 100mV가 표시됩니다. 18 옴은 5.5mA마다 100mV를 제공합니다. 실제로 저전력을 사용하는 경우 1k로 도망 갈 수 있습니다. I = V / R : 100uA의 전류가 공급 될 때마다 100mV가 표시됩니다. 그래도 조심하십시오. 충분한 전류를 끌어 내면 션트에서 너무 많이 떨어지게되고 측정 값이 꺼집니다. 회로가 작동하지 않을 것입니다. :-)

'스코프가 연결된 상태에서 마이크로 컨트롤러의 몇 가지 작동 주파수를 사용해보십시오. "깨어있는"시간이 훨씬 적게 걸리기 때문에 더 높은 클럭 속도로 더 적은 전력을 소비한다는 사실에 놀랄 수도 있습니다.

풀업 / 다운을 최대한 제거하십시오. 대부분의 경우 유휴 상태로 구동 할 수 있으므로 출력에 아무 것도 없어야합니다. Mark가 말한 것처럼 가능한 높은 값을 사용하여 입력이 의미가있는 것에 연결되어야합니다.

마이크로 컨트롤러가 가능한 한 많이 종료되었는지 확인하십시오. 사용하지 않는 핀을 출력으로 바꾸고 상태를 높이거나 낮게 설정하십시오. LED를 켜두 지 마십시오. 다른 구성 요소의 전원을 끄거나 시계를 중지 할 수있는 경우 수행하십시오. 예를 들어 SPI 플래시 메모리에는 종종 '절전'명령이있어 이미 낮은 전력 소비를 가져와 더 낮게 구동합니다.

다른 사람들은 전압 측면에 대해 언급했으며 이에 대해서도 언급하고 싶습니다. 배터리와 회로 사이에 고효율 벅 / 부스트 레귤레이터를 사용하면 배터리 사용률이 훨씬 높아질 수 있습니다. 배터리 수준이 필요한 1.8V보다 높으면 레귤레이터는 벅 모드 (전압 감소)가되고 배터리 수준이 1.8V 아래로 떨어지면 부스트 모드 (전압 증가)로 전환됩니다. 이를 통해 배터리가 완전히 방전 될 때까지 회로를 작동시킬 수 있으며, 이는 배터리를 사용할 때 얻을 수있는 몇 퍼센트의 효율 손실 가치가 있습니다. 사용하려는 전체 범위에 대한 효율을 기준으로 조정기를 선택하고 조정기의 크기를 적절하게 조정하십시오. 98 % 효율로 1A를 제공 할 수있는 레귤레이터는 아마도 50mA를 제공하는 60 % 효율 일 것이다. 데이터 시트를주의해서 읽으십시오.


시원한. 이전에 스코프를 사용하지는 않았지만 지역 연구소에서이 사실을 보여줄 수있을 것 같습니다 (현재 멀티 미터를 직렬로 사용하여 전류를 측정하고 있습니다. – 또한 적절한 부품을 찾을 수 있다고 가정 할 때 1-10mA 만 사용하더라도 레귤레이터를 권장 하시겠습니까? 90 %의 효율성이 충분합니까 (저는 그 범위에서 값이 싼 것을 찾는 것을 기억합니다), 아니면 저보다 더 많은 전류를 사용합니까?
Jack Schmidt

1
주파수를 가지고 놀기에 아주 좋은 점은 휴대 전화의 wifi 라디오가 셀룰러 모뎀보다 더 많은 전력을 사용하는 방법을 생각 나게하지만 wifi는 너무 빠르므로 더 많이 잠을 잘 수 있고 그로 인해 전반적인 전원 상태가 좋아집니다.
Mark

2
전류 소모가 "버스트 (burst)"하는 시나리오에서 시간 평균 마이크로 컨트롤러 전류 사용량을 추정하는 또 다른 방법은 실제로 큰 커패시터를 충전하고 배터리 전압을 시뮬레이션하기 위해 대기 전류가 낮은 전류 레귤레이터를 공급하는 것입니다. 100,000uF 커패시터는 밀리 암페어 / 초당 0.01 볼트를 떨어 뜨립니다. 5 분 (300 초) 내에 0.3 볼트로 떨어지면 평균 전류 소모량은 100uA입니다.
supercat April

레귤레이터의 효율성은 매우 중요합니다. 따라서 해당 범위 내에서 적절한 레귤레이터를 선택하려면 전류 소비 범위를 추정해야합니다.
gustavovelascoh

4

회로를 사용하여 전류 소비를 측정하기 위해 마이크로 암페어 범위에서 멀티 미터를 사용하는 것이 좋습니다. 그런 다음 배터리 특성이 주어지면 수명을 계산할 수 있습니다. 배터리는 부하마다 방전 특성이 다르기 때문에 반드시 암페어 / 전류 일 필요는 없습니다. 그러나 근사치로 유용 할 수 있습니다.

1 MHz에서 PIC 마이크로가 비교할만한 것이 있다면 적어도 100µA의 약간의 전력을 빨아 들일 것이라고 생각합니다. 그러나 이것은 LED를 통과하는 5mA ~ 20mA로 압도 될 것이므로 먼저 제거해야합니다.


차갑고 LED가 지워졌습니다. 정확한 측정을 얻는 데 어려움을 겪고 있습니다. 지금 0.9mA처럼 보이므로 내 소프트웨어가 생각했던만큼 전원이 꺼지지 않을 수 있습니다. Arduino (및 하트 비트 LED)와 관련하여 8-9mA와 비슷하므로 최소한 작은 것이 도움이됩니다.
Jack Schmidt

1

요즘에는 정확한 전류 측정을 위해 매우 유용한 개발 키트와 브레이크 아웃 보드가 있으며, 경우에 따라 nA 범위까지 내려가기도합니다. 아직 µCurrent Gold를 확인하지 않았다면 . 이는 정적 측정에는 좋지만 시간이 지남에 따라 측정을 로깅하는 경우에는 적습니다.

여전히 µCurrent를 사용할 수있는 한 가지 방법은 차동 증폭기를 출력에 연결하는 것입니다. 그런 다음 아날로그 입력이있는 오실로스코프 또는 로직 애널라이저에이를 공급할 수 있습니다. 나는 그것에 대한 완전한 너트와 볼트 튜토리얼 을 썼다. 나는 그것이 적절한 도구를 가지고 있지 않은 예산에 사람들에게 도움이 될 것이라고 생각한다.

전압이 회로 내에서하는 일뿐 만 아니라 전류의 모든 작은 스파이크에 어떻게 반응하는지 배울 수있는 것은 놀라운 일입니다. 배터리 기술과 검증 테스트를 선택할 때 엉덩이가 몇 번 절약되었습니다. 😎


0

모든 답변에는 이미 중요한 점이 있습니다. 내 경험에서 하나를 추가하겠습니다.

딥 슬립 모드에서 10uA 미만, 심지어 1uA 미만의 전력을 소비하는 장치를 개발할 때 보드를 청소하면 차이가있었습니다. 예상 소비 전류가있는 보드 10 개 중 7 개가있었습니다. 모두 동일했고 모두 정상적으로 작동했습니다. 초음파 세척기로 청소 한 후 모든 보드가 예상 한 결과를 얻었습니다.

마지막으로, 모든 요소의 데이터 시트를 확인하여 예상 / 목표 소비량을 추정하십시오. 당신이 그들을 잘 처리하면, 당신은 당신의 추정에 도달합니다. 여기에는 마이크로 컨트롤러에서 사용하지 않는 모든 핀이 포함됩니다. ADC를 끄더라도 외부 연결에 따라 꺼져있는 동안 핀 구성이 최상의 지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.