마이크로컨트롤러의 저전력 모드 및 주변장치 활용
  • 2012-04-11
  • 편집부

첨단 마이크로컨트롤러(MCU)는 시스템의 전력 소비를 줄이는 데 도움이 되는 많은 주변장치와 기능들을 포함하고 있다. 따라서 임베디드 디자이너는 이러한 주변장치와 모드를 완벽하게 활용함으로써 제품의 전력 소비를 줄일 수 있도록 디바이스에 대해 세부적으로 파악하는 것이 중요하다.


글 | 브랜트 아이비(Brant Ivey), 애플리케이션 엔지니어
마이크로칩 테크놀로지

절전 모드 및 기능 활용 극대화
대부분의 마이크로컨트롤러는 다양한 절전 옵션을 제공하는 많은 모드들을 포함하고 있다. 명칭은 다를 수 있지만 거의 모든 MCU 제품이 일반적으로 제공하는 모드로는 실행(Run), 아이들(Idle) 및 슬립(Sleep) 모드를 꼽는다. 표 1은 많은 마이크로컨트롤러에서 사용할 수 있는 모드를 정리한 것이다. 경우에 따라서는 각각의 모드별로 사용 시기가 명확하게 구분된다. 기본 처리 작업에는 실행 모드를 사용해야 하며, 슬립 모드는 처리가 완료된 다음 외부 이벤트 발생 시까지 대기 시간이 긴 경우 사용해야 한다. 아이들 모드는 다른 모드에 비해 사용 시기가 다소 불분명한 편이다. 이 모드는 흔히 큰 데이터 블록을 송수신할 때 사용되며, 다른 기능은 유지한 채 CPU를 종료할 때 발생하는 짧은 대기 시간에도 사용할 수 있다.
아키텍처별로 사용가능한 수많은 모드와 기능들을 고려하면 ‘친숙함(familiarity)’이라는 개념이 중요하게 부각된다. 어떤 디자인이 위와 같은 익숙한 모드만 사용해서 허용 가능한 전력 수준에 이를 경우, 특정 애플리케이션의 전류 소비를 최소화하려면 디바이스의 고유 기능을 활용하는 것이 가장 적절하다. 하나의 예가 일부 MCU에 도입된 새로운 부류의 파워다운(power down) 모드이다. 이 모드는 MCU의 코어에서 전력을 제거함으로써 일반적인 파워다운 모드보다도 낮은 수준으로 전력 소비량을 최소화한다. 이를 흔히 ‘딥 슬립(Deep Sleep)’ 모드라고 하는데, 그림 1에 나와 있는 PIC24F16KA 16비트 MCU가 딥 슬립 디바이스의 한 예이다.
MCU의 코어에서 전력을 제거하면, RAM에서도 전력이 제거되므로 슬립 모드와 같은 다른 저전력 모드에서 보관하는 정보가 날아간다. 그렇다면 딥 슬립 모드는 언제 사용하는 것이 효과적인가? 대부분의 디바이스를 파워다운함으로써 누설전류를 극도로 낮출 수 있는 경우가 그러한 예이다. 이는 결과적으로 파워다운 전류도 더 낮게 만드는데, 표 1에서 보여주는 것처럼 어떤 경우에는 파워다운 전류가 50 nA 미만으로 대폭 낮아질 수도 있다. 누설전류가 낮으면 슬립 모드 전류를 높이는 고온 또는 고전압을 사용하는 애플리케이션에서도 딥 슬립 모드의 성능이 향상된다.
딥 슬립 모드의 또 다른 중요한 이점은 전력 소비량을 낮게 유지하면서도 성능이 더 뛰어난 미세 회로 선폭의 칩 설계로 가져갈 수 있게 해준다는 점이다. 이러한 모드를 가장 효과적으로 사용하는 방법은 파워다운 시간이 긴 애플리케이션에서 사용하는 것이다. 이러한 경우에는 파워다운 전류를 줄이는 게 애플리케이션을 다시 초기화할 때 드는 비용보다 훨씬 중요하다.
디바이스의 친숙함이 중요해지는 또 다른 이유는 저전력 모드를 통해서만 전력 소비량을 줄일 수 있는 것이 아니기 때문이다. 성능을 향상시키는 많은 기능을 사용하여 전력 소비량을 줄일 수도 있다. 예컨대 디바이스에 내장형 오실레이터가 있는 경우 메인 크리스털이 초기화 코드를 시작할 때 이 내장형 오실레이터를 사용할 수 있으며, 이를 통해 디바이스의 재가동(awake)에 소요되는 전체 시간을 줄일 수 있다.

디지털 주변장치 전력 소비량
통합 주변장치를 사용하면 MCU의 성능을 대폭 향상시키면서 필요한 외부 부품 수는 줄일 수 있다. 두 가지 모두 전력 소비를 줄이는 데 도움이 된다. 하지만 적절히 사용하지 않으면 주변장치를 실행하는 비용이 전력 절감 효과를 초과할 수 있다. 이를 막기 위해 몇 가지 간단한 기법을 통해 주변장치 자체의 전력 소비량을 최소화하여 저전력 애플리케이션을 관리할 수 있다.
일반적으로 마이크로컨트롤러 내에서 전력 소비량이 가장 큰 주변장치는 시리얼 통신 버스이다. I2C 및 SPI 통신은 모두 여러 개의 고속 라인을 사용한다. 이러한 라인을 구동하는 데는 많은 전력이 사용된다. SPI는 3개의 고속 I/O를 구동해야 하므로 고속으로 실행하면 수 밀리암페어 수준의 많은 전류가 소비될 수 있다. 이렇게 되면, 버스 구동에 따른 스위칭 손실로 인해 과도한 전류가 소비될 수 있다. I2C의 속도가 느리면 풀업(pull-up) 저항을 사용하므로 이러한 상황이 더욱 악화될 수 있으며, 이 경우 속도를 높이기 위해 낮은 저항 풀업을 활용하게 된다면 전류 사용량이 크게 늘어날 수 있다.
이러한 시리얼 통신 주변장치의 전력 소비량을 줄이는 가장 손쉬운 방법은 속도를 낮추는 것이지만, 이 같은 방법을 항상 채택할 수 있는 것은 아니다. 시리얼 통신의 실행에 따르는 대부분의 비용은 버스 구동에서 비롯되므로 절감 포인트를 여기에 맞춰야 한다. SPI는 라인의 임피던스를 최소화하도록 트레이스가 짧은 간결한 보드 레이아웃을 유지하는 것이 중요하다. 이와 반대로 I2C는 버스에 높은 값의 풀업 저항을 사용하면 전류 사용량이 줄어들며, 경우에 따라서는 최고 속도를 떨어뜨리지 않고도 사용할 수 있다. 두 경우 모두에서 칩 셀렉트(chip select)를 사용하는 대신 사용하지 않는 디바이스의 전원을 끄거나 버스에서 디바이스의 수를 줄여 전력을 최소화할 수 있다. 소프트웨어에서 애플리케이션이 시리얼 데이터를 대기 중일 때 CPU가 비활성화되도록 하면, 이러한 주변장치의 전력 사용량을 줄일 수 있다. 또한 지속해서 전송하는 대신 시리얼 전송을 클러스터로 그룹화하면 애플리케이션에서 파워다운 상태가 유지되는 시간을 늘리고 송수신 재가동(wake-up) 시간을 줄일 수 있다.

아날로그 주변장치의 전력 소비
MCU의 아날로그 주변장치는 전류 소비량에 큰 영향을 줄 수 있다. BOR (Brown-out Reset), 비교기, ADC 같은 아날로그 기능은 충분한 전력을 소비해야 정확한 결과를 얻을 수 있다. 그러므로 저전력 모드로 실행 중이면 디지털 기능만큼 전력 소비가 최적화될 수 없는 경우도 있다. 이런 이유로 애플리케이션에서는 아날로그 기능을 항상 활성 상태로 두기보다는 필요할 때만 활성화하는 것이 중요하다. ADC를 보다 낮은 샘플 레이트로 사용할 경우에는, 샘플 시간을 늘리거나 또는 필요한 샘플 레이트를 얻기 위해 ADC 클록 속도를 낮추기보다는 가능한 한 빠른 클록 및 샘플 시간을 사용하는 것이 낫다. 많은 MCU에서 이렇게 하면 전력 소비량을 낮추면서 동일한 결과를 얻게 된다. 이와 마찬가지로 BOR 기능은 디바이스가 파워다운 될 때보다는 잘못된 실행을 유발할 수 있는 소량 전압 강하를 감지하기 위해 디바이스가 실행 중일 때가 더 중요하며, 이 경우에는 RAM 손상을 유발할 만한 크기의 드롭만 감지하면 된다. 따라서 BOR 기능은 실행 모드에서 사용하는 것보다는 슬립 모드에서 저전력 상태를 사용하도록 구성하는 것이 유용하다. 이를 통해 실행 중에 높은 성능을 유지하면서 전력 집약적인 요건을 줄이고 슬립 모드에서 50 nA 이하의 낮은 전류 소비량을 유지하게 된다.

결론
모든 MCU는 디자인의 전력 소비를 개선하는 데 사용할 수 있는 많은 기능들을 갖추고 있다. 하지만 이러한 기능 중 일부만이 모든 디바이스에 적용된다. 따라서 실제로 전력에 최적화된 설계를 구현하려면 사용 중인 마이크로컨트롤러의 고유한 기능과 주변장치 모두에 익숙해야 한다.  ES

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>



  • 100자평 쓰기
  • 로그인

세미나/교육/전시
TOP