내장된 특징을 이용한 MCU의 성능과 전력 소비 사이의 균형 조정
DigiKey 북미 편집자 제공
2017-05-10
오랫동안 개발자는 주변 장치 및 코어 자체까지 비활성화하여 시스템의 전력 요구 사항을 줄일 수 있도록 저전력 작동 상태를 갖는 MCU를 사용해 왔습니다. 그러나 일부 응용 분야에서 개발자는 중요 기능 요구 사항을 충족하기 위해 시스템의 특정 부분에 대한 전력 공급이 유지되도록 전력 사용을 더 직접적으로 제어할 필요가 있습니다.
과거에 설계자는 독립형 전력 관리 장치를 사용하여 정밀한 전력 제어를 구현했습니다. 이와 반대로, Analog Devices ADuCM3029 MCU는 개발자가 센서 데이터 취득, 웨어러블 및 기타 사물 인터넷(IoT) 응용 분야를 위한 설계 시 전력 소비를 최소화하면서도 더 쉽게 최대 성능을 달성할 수 있도록 돕는 내장 솔루션을 제공합니다.
MCU의 전력 관리 처리
저전력 설계 시 엔지니어는 절전 옵션을 제공하도록 설계된 다양한 고급 MCU를 사용할 수 있습니다. 전력에 민감한 응용 분야를 대상으로 하는 장치는 일반적으로 엔지니어가 성능을 낮추어 전력 소비를 줄일 수 있도록 하는 주파수 비율 조정 기능을 제공합니다.
일반적으로 저전력 모드는 MCU를 활성화하는 데 필요한 최소한의 회로망이 작동 상태를 유지하는 수준이 될 때까지 MCU 서브 시스템의 작동을 점점 중단하여 점진적인 전력 소비 감소 기능을 제공합니다. 더 나은 전력 관리를 위해 초저전력 MCU에는 장치의 코어에 대한 전력과 주변 장치에 대한 전력을 개별적으로 관리하는 특수 작동 모드가 추가됩니다. 이러한 경우에도 이러한 특수 모드는 주변 장치의 작동을 집단적으로 중단하거나, 개발자가 전력 할당의 세부사항을 거의 제어할 수 없는 자동화된 메커니즘을 사용합니다.
MCU 전력 관리는 일반적으로 다양한 저전력 작동 모드를 제공하지만, 더 낮은 전력 모드로 전환하면 기능성이 크게 낮아지는 것이 일반적입니다. 많은 경우, 애플리케이션은 제한된 시간 동안의 기능성 손실을 허용할 수 있습니다. 그러나 일부 경우 전력 소비의 정밀한 제어는 작동 유지에 필수적인 부분입니다. Analog Devices ADuCM3029 프로세서는 초저전력 응용 분야의 복잡한 전력 관리 요구 사항을 지원할 수 있도록 특별히 설계되었습니다.
ARM® Cortex®-M3 코어를 기반으로 하는 ADuCM3029는 256kB의 오류 정정 부호(ECC) 플래시 및 멀티 패리티 비트 보호 기능을 갖춘 64kB의 구성 가능 SRAM을 제공합니다. 변형 제품인 ADuCM3027에는 128kB의 플래시가 있지만 그 외의 특징 및 기능은 ADuCM3029와 동일합니다.
이러한 장치에는 하드웨어 암호화 가속기가 내장되어 있으며 8채널 12비트 아날로그 디지털 컨버터(ADC)와 SPI, I2C, UART, GPIO, 동기식 직렬 포트(SPORT) 및 25채널 DMA 컨트롤러 등의 여러 디지털 주변 장치가 포함되어 있습니다. 이러한 장치는 다양한 기능을 갖추고 있지만 일반적으로 활성화 모드에서 30μA/MHz 미만의 전력을 소비합니다. 그러나 ADuCM3029를 사용하면 설계자는 기능적 성능과 전력 소비 사이의 균형을 더욱 정밀하게 조정할 수 있습니다.
전력/성능 조정
대부분의 고급 MCU와 마찬가지로 ADuCM3029는 활동이 적을 때 전력 소비를 줄이도록 설계된 여러 전력 모드를 제공합니다. 최대 절전 모드에서 이러한 장치는 프로그램을 통해 선택되는 SRAM 영역에 대한 전력 공급을 유지하면서 프로세서 코어 및 대부분의 주변 장치의 작동을 중단하여 일반적으로 750nA 미만의 전력을 소비합니다. 애플리케이션의 활동이 없는 기간 동안 장치는 전원차단 모드에서 단 60nA의 전력만 소비합니다.
그러나 개발자는 프로세서가 활동하지 않는 상태에서 주변 장치가 어느 정도 활동해야 하는 시나리오에 자주 직면하게 됩니다. 이러한 문제를 해결하기 위해 ADuCM3029는 유연한 절전(Flexi) 모드라는 추가적인 전력 모드를 제공합니다. Flexi 모드는 활성화 모드와 최대 절전 모드 사이의 기능을 제공하면서도 300μA까지 전력 소비를 낮출 수 있습니다. Flexi 모드에서 장치의 코어는 절전 모드를 유지하지만 개발자가 지정한 특정한 주변 장치는 활성화 상태를 유지합니다(표 1).

표 1: 특정한 온칩 블록에 대한 전력 공급을 자동으로 활성화(녹색) 또는 비활성화(빨간색)하면서도 개발자가 특정한 주변 장치(주황색)에 대한 전력 공급을 제어하거나 최대 절전 모드에서 유지되는(*) SRAM의 용량을 구성할 수 있도록 하는 Analog Devices ADuCM3029 MCU의 전력 모드. (표 출처: Analog Devices)
개발자는 장치의 PMG_PWRMOD 레지스터에서 MODE 비트를 0으로 설정하고 인터럽트 대기(WFI) 명령을 실행하여 MCU를 Flexi 모드로 전환할 수 있습니다. 개발자는 MCU의 CLKG_CLK_CTL5 레지스터에서 각 주변 장치에 해당하는 비트에 0을 기록하여 프로세서 코어가 비활성화된 상태에서도 특정한 주변 장치의 기능을 유지할 수 있습니다. 이 모드에서 장치는 명령을 실행할 수 없지만, 주변 장치와 메모리 사이의 DMA 전송 등의 활동은 계속하여 수행할 수 있습니다.
주변 장치의 작동을 유지할 수 있는 Flexi 모드는 프로세서가 관여하기 전에 일정한 기간 동안 하나 이상의 센서를 샘플링해야 하는 센서 응용 분야의 일반적인 문제에 대해 전력 효율이 높은 해결책을 제공합니다. 이러한 경우 개발자는 내장된 ADC의 자동 사이클 모드를 사용하여 1회 이상의 변환을 선택된 채널에서 수행하고 DMA 컨트롤러가 자동으로 샘플을 SRAM으로 전송하도록 설정할 수 있습니다. 프로그래머가 지정한 횟수의 변환을 수행하고 이와 연관된 DMA 전송이 완료된 후, DMA 컨트롤러는 샘플링된 데이터의 후속적인 처리를 위해 코어를 활성화 상태로 전환하기 위한 인터럽트를 실행합니다(그림 1).

그림 1: Flexi 모드에서 Analog Device ADuCM3029의 코어 프로세서는 절전 상태를 유지하지만 일부 주변 장치는 계속 작동하므로, 작동 완료 후 프로세서를 활성화 상태로 전환하는 다중 채널 ADC 샘플의 DMA 전송과 같은 작동이 가능. (이미지 출처: Analog Devices)
캐시와 클록
더 높은 성능을 위해 기능성을 낮추는 경우, Flexi 모드 및 다른 저전력 모드는 설계자가 전력 소비를 크게 줄일 수 있는 강력한 메커니즘을 제공합니다. 그러나 배터리로 작동하는 시스템과 같은 여러 응용 분야에서 설계자는 전력 소비를 더 세밀하게 제어해야 하는 경우가 많습니다. ADuCM3029를 사용하면 설계자는 기존의 방식과 새로운 방식의 결합을 통해 얻을 수 있는 장점을 활용하여 전력 소비를 더 줄일 수 있습니다.
일반적인 기존의 방식 중에서도 명령어 캐시를 사용하는 방식은 오프칩 메모리 또는 많은 전력을 소비하는 온칩 메모리(플래시 등)에 대한 액세스를 줄일 수 있습니다. ADuCM3029를 기반으로 하는 시스템에서 개발자는 최대 4kB의 SRAM을 할당하여 캐시로 사용할 수 있습니다. 실제로 특정한 절전 방식은 캐시 적중률에 의존하지만 Analog Devices는 몇몇 일반적인 벤치마크 애플리케이션에서 캐시를 사용하여 전력 소비를 크게 줄일 수 있었다는 점을 언급합니다(표 2).
|
표 2: SRAM의 일부를 캐시로 사용하도록 Analog Device ADuCM3029를 구성하는 경우, 전력을 더 많이 소비하는 플래시 액세스보다는 저전력 SRAM 액세스에 가까운 전력 수준에서 일반적인 벤치마크 애플리케이션을 실행 가능. (표 출처: Analog Devices)
전력 소비를 줄이기 위해 오랫동안 사용되어 온 또 다른 접근법은 주파수 비율 조정입니다. 프로세서의 클록 속도를 낮추면 명령 실행 속도가 느려지지만 전력 소비가 감소하기도 합니다(그림 2). 그러나 다른 많은 접근법과 달리 ADuCM3029를 사용하면 개발자는 프로세서에 대한 클록 주파수와 주변 장치에 대한 클록 주파수를 동적으로 각각 수정할 수 있습니다. 이러한 경우 장치는 26MHz의 내부 발진기 또는 외부 수정을 통해 구동되는 위상 고정 루프 및 클록 분할기를 사용하여 프로세서, 메모리 및 인터페이스 등의 온칩 자원에 대한 클록을 생성합니다. 32kHz의 내부 발진기 또는 외부 수정은 장치의 실시간 클록(RTC)과 감시 타이머를 구동합니다. 개발자는 애플리케이션 요구 사항의 변화에 맞추어 또는 전력 소비를 줄이기 위해 클록 주파수를 변경할 수 있도록 런타임 중에 장치의 각 클록 레지스터를 수정할 수 있습니다.

그림 2: 설계자는 Analog Device ADuCM3029의 레지스터 몇 개를 설정하여 MCU의 클록 주파수 비율을 즉시 조정함으로써 그만큼의 전력 소비를 낮추는 것이 가능. (이미지 출처: Analog Devices)
강화된 전력 경로
ADuCM3029는 더 일반적인 전력 소비 감소 방식을 지원할 뿐만 아니라 특수 장치 하드웨어 특징을 기반으로 하는 더 새로운 접근법 또한 제공합니다. ADuCM3029의 전력 경로 설계에 적용된 온칩 벅 컨버터는 장치의 공급 전압 범위인 VBAT(1.74V ~ 3.6V)와 내부 디지털 영역의 작동 전압(1.2V) 사이의 차이를 메웁니다.
정상 작동 시 내장 저 드롭아웃(LDO) 조정기에는 이러한 내부 전압이 공급됩니다. 일반적인 LDO와 마찬가지로 LDO의 공급 전압과 부하 전압 사이의 차이가 큰 경우 기본 전력 경로는 단순히 초과 에너지를 소비하므로 전력이 낭비됩니다. 그러나 이 MCU를 사용하면 설계자는 단 몇 개의 외부 커패시터를 통해 더 높은 공급 전압에서 이러한 손실을 줄일 수 있습니다(그림 3). 소프트웨어 측면에서 개발자는 벅 컨트롤러 레지스터(PMG_CTL1)에 기록하기만 하면 벅 컨버터를 활성화할 수 있습니다.

그림 3: 장치의 LDO 조정기에 인가되는 전압 수준을 낮추기 위해 개발자는 단 몇 행의 코드 및 몇 개의 외부 커패시터를 사용하여 Analog Device ADuCM3029의 온칩 벅 컨버터를 활성화 가능. (이미지 출처: Analog Devices)
커패시터 기반 고효율 충전 펌프 토폴로지를 바탕으로 하는 벅 컨버터는 LDO에 공급되는 전압 수준을 낮춥니다. 따라서 MCU는 VBAT 범위 내의 가장 높은 전압 수준에서 전력 소비를 크게 줄일 수 있습니다(그림 4). 2.3V 미만의 전압 수준에서 벅 컨버터는 바이패스 모드에 진입한 후 VBAT 전압을 따릅니다.

그림 4: 약 3V 이상의 공급 전압(VBAT) 수준에서 ADuCM3029의 온칩 벅 컨버터는 MCU의 전력 소비를 줄여 그림에 나타난 것과 같이 활성화 모드 및 Flexi 모드에서 50%의 상대적인 전력 소비 감소를 달성. (이미지 출처: Analog Devices)
낮은 전력 소비에 최적화된 샘플링
캐싱, 주파수 비율 조정 및 온칩 DC-DC 변환 등의 특징은 전력 소비를 줄이기 위해 시스템 수준에서 작동합니다. 애플리케이션 수준에서 Flexi 모드 등의 특징은 센서 샘플링과 같은 주변 장치 작동에 대한 전력 소비를 줄이는 데 도움이 됩니다. 하지만 일부 응용 분야에서는 이러한 방식으로 전력 소비를 충분히 줄이지 못할 수 있습니다. 예를 들면, 배터리로 작동하는 IoT 장치는 매우 낮은 취득 속도로 센서 샘플링 작업을 수행하거나 어떠한 외부 프로세스를 주기적으로 모니터링하는 작업을 수행하는 경우가 많습니다.
주기적으로 느리게 실행되는 응용 분야의 경우 개발자는 일반적으로 MCU의 RTC를 사용하여 일정한 시간축을 유지하고 카운트다운 타이머를 구동하여 미리 지정된 시간에 정밀하게 MCU를 활성화합니다. 따라서 고급 MCU는 일반적으로 매우 낮은 전력 모드에서도 RTC의 기능을 유지하는 전력 모드를 제공합니다. ADuCM3029를 사용하면 개발자는 전력과 성능 사이의 균형을 조정하기 위한 추가적인 옵션을 제공하는 두 개의 분리된 RTC(RTC0 및 RTC1)를 사용할 수 있습니다.
표 1에 표시된 것과 같이 두 RTC는 활성화 모드, Flexi 모드 및 최대 절전 모드에서의 작동을 지원하지만, 가장 낮은 전력 차단 모드에서는 RTC0만 사용할 수 있습니다. 그러나 다른 모드에서 개발자는 두 클록 사이의 분명한 차이를 통해 더 복잡한 타이밍 애플리케이션을 유연하게 구현할 수 있습니다. 예를 들면, RTC0은 1Hz 빈도의 초 단위로 시간을 카운트하므로 절전 해제 시간을 초 단위로만 지정하도록 제한됩니다. RTC1은 넓은 범위에 걸쳐 주파수 비율을 조정할 수 있으며 30.7μs까지의 절전 해제 시간을 제공할 수 있습니다. 각 클록의 전력 소비 또한 다릅니다. RTC0은 주 공급 전압(VBAT)을 통해 작동하지만 RTC1은 내부의 1.2V 전력 영역을 통해 작동합니다. 그러므로 선택적으로 벅 컨버터를 사용하면 RTC1의 실효 전력 소비를 더 줄일 수 있습니다. 아마도 더 중요한 점은 ADuCM3029에 내장된 차별화된 저전력 샘플링 특징인 Analog Device의 SensorStrobe 메커니즘을 RTC1이 지원한다는 점일 것입니다.
SensorStrobe는 MCU의 RTC1_SS1 핀에 펄스를 출력하는 특수한 RTC1 경보입니다. 개발자는 ADuCM3029의 SensorStrobe 출력을 Analog Devices ADXL363 등의 외부 멀티 센서 장치에 연결하여 소수의 부품으로 매우 낮은 전력의 샘플링 솔루션을 개발할 수 있습니다(그림 5).

그림 5: ADuCM3029의 SensorStrobe 메커니즘은 안정적이고 동기화된 경보를 외부 장치에 제공하므로 Analog Devices ADXL363 등의 통합형 센서와 결합하여 단순한 데이터 취득 시스템을 구현 가능. (이미지 출처: Analog Devices)
Analog Devices는 그림 5에 표시된 구체적인 서브 시스템을 ADuCM3029 EZ-KIT 개발 키트인 ADZS-UCM3029EZLITE에 포함하여 제공합니다. 하드웨어 구성이 단순하므로 이러한 접근법을 사용하면 단 몇 행의 코드를 통해 연관 장치 레지스터를 설정하고 SensorStrobe 메커니즘을 시작할 수 있습니다(목록 1).
#define PRD_VAL 255
void SensorStrobe_Cfg()
{
// SensorStrobe Pin Mux
*pREG_GPIO2_CFG |= (0x3 << BITP_GPIO_CFG_PIN11);
// Reset the RTC counter
while(*pREG_RTC1_SR1 & 0x0180); //wait until sync
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 0;
while(!(*pREG_RTC1_SR0 & 0x0080 )); //wait for sync
// SensorStrobe configuration
// Initial trigger and auto reload value = 255 RTC counts
// RTC runs at 32KHz ideally, 1 RTC count = 30.7us
while(*pREG_RTC1_SR5 != 0);
*pREG_RTC1_SS1ARL = PRD_VAL;
// SensorStrobe to be triggered after 255 RTC counts
*pREG_RTC1_CR4SS = (1 << 9); //Enable Autoreload
*pREG_RTC1_SS1 = PRD_VAL; // Initial Compare Value
// Enable SensorStrobe
*pREG_RTC1_CR3SS = 1;
while(*pREG_RTC1_SR4 != 0x77FF);
// Initialize the counter value to zero
while(*pREG_RTC1_SR1 & 0x0600);
*pREG_RTC1_CNT0 = 0;
*pREG_RTC1_CNT1 = 0;
while(!(*pREG_RTC1_SR0 & 0x0400));
// Enable (start) the counter
while(*pREG_RTC1_SR1 & 0x0180); //wait until sync
*pREG_RTC1_SR0 = 0xFF;
*pREG_RTC1_CR0 = 1;
while(!(*pREG_RTC1_SR0 & 0x0080)); //wait for sync
return;
}
목록 1: 개발자는 단 몇 개의 장치 레지스터를 설정하여 Analog Devices ADuCM3029 MCU의 SensorStrobe 특징을 활용 가능. (이미지 출처: Analog Devices)
SensorStrobe가 작동하는 동안 개발자는 확장된 샘플링 프로세스 동안 MCU의 전력 소비를 최소화하도록 ADuCM3029를 최대 절전 모드로 전환할 수 있습니다. MCU가 최대 절전 모드를 유지하는 동안 RTC1은 SensorStrobe 설정 중에 정해진 레지스터 값에 지정된 원하는 값에 맞추어 카운팅할 수 있습니다. SensorStrobe 카운팅 조건이 충족되면 SensorStrobe 신호가 ADXL363의 인터럽트 입력 핀에 인가되어 장치의 절전 모드를 해제합니다. 이후 ADXL363은 자체적인 데이터 샘플링 루틴을 실행합니다. 루틴이 완료되면 ADXL363은 MCU의 인터럽트 핀에 신호를 보내 MCU가 최대 절전 모드에서 해제된 후 샘플링된 데이터의 처리를 시작하도록 합니다.
과거에 개발자는 일반적으로 외부 RTC, 타이머 또는 단순한 발진기를 사용하여 이러한 종류의 확장된 샘플링 설계를 구현했습니다. 외부 클록 소스를 사용하면 설계 복잡성이 증가할 뿐만 아니라 샘플링된 데이터와 MCU 자체의 시간축 사이의 시간 동기화가 끊어집니다. 따라서 이전의 접근법을 사용하던 개발자는 MCU의 시간 스탬프에 맞추어 샘플의 시간 스탬프를 정규화하기 위해 데이터를 효과적으로 리샘플링해야 했습니다. 그러나 SensorStrobe 모드에서 RTC1을 사용하면 개발자는 샘플의 시간 스탬프와 ADuCM3029 기반 시스템 사이의 동기화를 유지할 수 있습니다.
개발자는 ADuCM3029의 내장된 전력 관리에 필적하는 개별적인 메커니즘을 다수 발견할 수도 있습니다. 그러나 ADuCM3029의 내장된 기능을 활용하면 엔지니어는 전력과 성능 사이의 더 나은 조화를 더 쉽게 달성할 수 있습니다.
결론
더 낮은 전력을 소비하는 시스템에 대한 요구로 인해 개발자는 더 작고 전력 효율이 높은 설계를 통해 최대한의 성능을 달성해야 하는 과제에 지속적으로 직면하고 있습니다. 이러한 과제에 더하여 각 응용 분야에서는 기능적 성능과 전력 소비 사이의 고유한 균형을 요구합니다.
Analog Devices ADuCM3029 MCU의 내장된 전력 관리 특징은 개발자가 이러한 균형을 더 쉽게 발견하는 데 필요한 유연성을 제공합니다. ADuCM3029를 사용하면 개발자는 각 특정 응용 분야에 필요한 높은 성능과 낮은 전력의 고유한 조합을 제공할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


