이전 글 'Arm Cortex-M 저전력 모드 기초'에서 모든 Cortex-M 프로세서에 있는 기본 저전력 상태와 WFI, WFE 명령어로 슬립에 진입하는 방법을 다뤘습니다. 다음 논리적 질문은: 실제 마이크로컨트롤러에서 이 모드들이 어떻게 구현되며, 임베디드 시스템의 전체 전력 예산에 어떤 영향을 미치는가입니다. 이 포스트에서는 NXP 키네티스-L 프리덤 보드로 실습 실험을 통해 이득과 트레이드오프를 정량화합니다.
저전력 모드 실험
저전력 동작을 평가하는 가장 신뢰할 수 있는 방법은 디바이스를 다양한 전력 상태에서 실행하고 결과 전류 소모를 측정하는 것입니다. 이 연구에서는 수많은 제품과 강의에서 사용해 온 NXP 키네티스-L 프리덤 보드를 되살려 구체적 데이터를 수집했습니다. 마이크로컨트롤러가 보드에서 일반적으로 가장 큰 전력 소비자이지만, 시스템 전체 전류를 측정하는 것이 필수적입니다. 다른 부품(전압 레귤레이터, 센서, 통신 모듈 등)도 총 소모에 크게 기여할 수 있기 때문입니다. MCU만 최적화해도 상당한 이득이 있지만, 전체적 시각이 숨은 소모를 방지합니다.
기준선 측정부터 시작
변경 전, 키네티스-L을 정상 실행 모드로 두고 모든 주변장치를 활성화한 채 1초마다 LED를 토글하며 기준선 전류 프로파일을 측정했습니다. IAR 임베디드 워크벤치와 I-Jet 디버거, I-Scope를 사용해 LED가 꺼졌을 때 약 16.9 mA, 켜졌을 때 약 18.0 mA의 안정적인 전류를 관찰했습니다(그림 1). 정확한 측정 지점이 중요합니다. 다른 테스트 포인트는 상당히 다른 결과를 낼 수 있습니다.
이미지 클릭으로 확대 그림 1. 1초마다 LED 토글하는 개발 보드의 전류 측정. (출처: 저자)
대기 모드와 딥 슬립 모드로 에너지 최적화
프로세서의 대기 모드 활성화는 전력을 아끼는 빠른 방법입니다. 키네티스-L 데이터시트에 따르면 대기 모드는 3V에서 3.7~5.0 mA를 소모합니다. CPU와 주변장치 클럭이 비활성화되고 플래시가 저누설 도즈 상태에 들어가기 때문입니다. 프로세서는 인터럽트 발생 시 12~15 클럭 사이클 내에 깨어날 수 있습니다.
이 수준에서 마이크로컨트롤러는 사실상 에너지를 소비하지 않지만, 웨이크업 지연이 크게 증가합니다.
웨이크업 지연 고려사항
낮은 전력 상태는 더 긴 웨이크업 시간을 동반합니다. 표준 스톱 모드는 약 2µs와 인터럽트 지연이 필요합니다. VLLS 모드는 53µs~115µs의 부팅 지연을 추가하며, 시간 중요 애플리케이션에는 부적합할 수 있습니다. 그림 2는 다양한 저전력 상태에서 실행 모드로의 전환 시간을 보여줍니다.
이미지 클릭으로 확대 그림 2. 키네티스-L에서 저전력 모드로부터 다양한 모드로의 전환 시간. (출처: 키네티스-L 데이터시트)
결론
모든 Arm 마이크로컨트롤러는 표준 저전력 모드를 노출하지만, 실리콘 벤더는 다양한 유스케이스에 맞춰 독자적 변형을 추가합니다. 벤더는 일반적으로 웨이크업 페널티가 거의 없는 '손쉬운' 모드와 전류를 마이크로암페어까지 줄이는 초저전력 옵션을 제공합니다. 개발자는 애플리케이션이 요구하는 응답성과 에너지 절감 사이에서 균형을 맞춰야 합니다. 단일 저전력 모드가 모든 상황에 맞는 만능 해결책은 아닙니다.
제이콥 베닝고(Jacob Beningo)는 임베디드 소프트웨어 컨설턴트, 자문위원, 교육자로 현재 십여 개국 클라이언트와 협력해 소프트웨어, 시스템, 프로세스를 획기적으로 변혁하고 있습니다. jacob@beningo.com으로 연락하거나 www.beningo.com 방문, 월간 임베디드 바이트 뉴스레터 구독 가능합니다.