[에이콘][요약] 임베디드 시스템 아키텍처 사물인터넷을 위한 임베디드 시스템의 기초 Chapter 8 - ARM Cortex-M의 저전력 운영 모드

Embedded June·2021년 8월 8일
0

Chapter 8. Low Power Optimization

이 chapter에서 우리는 MCU의 저전력 동작을 위한 방법론ARM에서 제공하는 동작모드에 대해서 배운다.

8.1. 저전력 동작을 위한 방법론

1. HW 설계

  • Active low 회로와 풀업 저항을 사용해서 전력 낭비를 막는다.
  • 누설전류를 최소화 하는 회로를 설계한다.

2.Clock 낮추기

  • (대충 지금 고성능 MCU는 70년대 컴퓨터보다 성능 좋다는 이야기.)
    따라서 우리가 제작하는 대부분의 펌웨어는 고clock이 필요하지 않은 경우가 많음.
  • 미사용 중인 내부 모듈과 인터페이스를 끄는 것이 좋다.
  • PLL은 전력을 크게 소모하는 대표적인 모듈이다. PLL을 조절해 CPU clock을 낮추면 전력 소모를 줄이는 데 큰 도움이 된다.
  • 애플리케이션의 동작을 세부동작들로 구분한 뒤, 각 동작마다 적정한 clock을 사용하는 것도 방법이다.

3. 전압 제어

  • 시스템의 operation voltage의 하한에 가까운 낮은 전압을 인가한다.
  • 슈미트 트리거 (Schmitt Trigger)가 작동하지 않도록 확실한 Vdd와 GND를 인가한다.

4. Busy waiting loop를 인터럽트 기반의 sleep mode로 교체

  • 무한 루프를 돌면서 특정 조건이 활성화되길 기다리는 것은 CPU time과 전력 면에서 정말 큰 손해다.
  • Sleep mode와 인터럽트 트리거를 활용하면 특정 조건이 활성화될 때까지 전력 소모를 매우 크게 줄일 수 있다.
  • 정 어쩔 수 없다면 타이머를 사용해서 폴링 주기라도 느리게 하는 것도 한 가지 방법이다.

8.2. ARM Cortex-M의 저전력 운영 모드

1. Normal mode

  • 말그대로 일반 작동 모드다. MCU의 기본 클럭 주파수로 동작한다.

2. Sleep mode

  • CPU의 clock이 비활성화되며, 주변 장치는 일반적으로 작동한다.
    낮은 clock의 코프로세서가 있다면 이때 동작한다.
  • CPU가 실행되지 않기 때문에 전력 상당량이 절약된다.
  • 인터럽트를 통해 wake-up 된다.

3. Stop mode (=Deep Sleep mode)

  • CPU와 Bus의 clock이 비활성화되며, 주변 장치도 모두 꺼진다.
  • 주 전압 레귤레이터는 켜져있어서 CPU register와 RAM은 정보를 계속 유지한다.
  • 인터럽트를 통해 wake-up 된다.

4. Standby mode

  • CPU와 Bus 그리고 주 전압 레귤레이터가 비활성화된다.
  • CPU register와 RAM 모두 정보를 잃어버린다.
  • μAh 급의 아주 낮은 전력만 사용한다.
  • 외부 RTC 또는 하드웨어의 신호를 통해 wake-up 된다.
  • Wake-up 됐을 때 IVT의 부팅 과정부터 새롭게 시작한다.

8.3. Wake-up 간격

  • 저전력 모드에서 wake-up 돼 실행을 재개하기 까지 걸리는 시간을 말한다.
  • sleep mode < deep sleep mode < standby mode 순으로 길어진다.
  • 이 시간은 길어도 몇 ms 정도의 짧은 시간이지만, 만약 시스템이 자주 wake-up 된다면 무시할 수 없는 수준이다.
profile
임베디드 시스템 공학자를 지망하는 컴퓨터공학+전자공학 복수전공 학부생입니다. 타인의 피드백을 수용하고 숙고하고 대응하며 자극과 반응 사이의 간격을 늘리며 스스로 반응을 컨트롤 할 수 있는 주도적인 사람이 되는 것이 저의 20대의 목표입니다.

0개의 댓글