개발자 작업을 용이하게 해주는 32비트 MCU 선택
  • 2012-05-17
  • 편집부

대부분의 MCU 업체가 비슷한 크기의 메모리와 다수의 I/O, 직렬 주변장치를 갖춘 동일한 코어를 사용하는 32비트 디바이스 제품군을 보유하고 있다. 따라서 디자이너는 임베디드 디자인의 MCU를 선택하는데 별 문제가 없다고 생각하기 쉽다. 그래도 처음부터 개발자 작업의 편의성을 고려하여 설계된 유연한 아키텍처를 기반으로 하는 32비트 MCU를 선택할 것을 권장한다.

글 | 샤흐람 타다욘 (Shahram Tadayon)
        마이크로컨트롤러 마케팅 매니저, 실리콘랩스(Silicon Labs)

기존에 32비트 마이크로컨트롤러(MCU)를 선택하는 과정에서 중요시 되는 부분은 중앙처리장치(예: 코어 CPU)를 선택하는 것이었다. 최근까지 32비트 MCU는 경우에 따라 독자 개발 아키텍처를 비롯해 다양한 코어를 기반으로 제작되었기 때문에, 임베디드 디자이너는 하나의 코어에 충실하거나 개발시간을 대폭 늘려 복잡한 새 하드웨어를 익히고 기존 소프트웨어 코드를 이식해야 했다. 하지만 지난 몇 년간 MCU 제품에 ARM 코어텍스(ARM Cortex) 코어가 등장하면서 임베디드 분야의 전망이 바뀌었다. 개발자들은 독자 개발 32비트 코어에서 ARM 코어텍스 프로세서를 기반으로 하는 MCU로 옮겨감에 따라 해당 MCU와 관련하여 더 이상 단일 공급업체에 얽매이지 않게 되었다. 현재 업계 전반에서 ARM 프로세서 기반 MCU를 중심으로 컴파일러용 서드파티 툴, 실시간 운영체제(RTOS), 소프트웨어 스택, LCD 그래픽 등, 많은 다양한 제품들이 개발되고 있다. 또한 이제는 대부분의 주요 MCU 공급업체들이 ARM 프로세서 기반 제품을 선보이고 있어 ARM 코어텍스 코어는 실질적인 32비트 MCU의 표준으로 자리 잡고 있다.
표준 코어를 기반으로 하는 32비트 MCU를 선택하면, 그 어느 때보다 넓어진 선택 폭을 누릴 수 있게 된다. 따라서 특정 애플리케이션에 적합한 MCU를 선택하는 일은 많은 변수를 고려해야 하는 까다로운 작업이 될 수 있다. 먼저, 디자이너는 메모리 크기, I/O 핀 수, 통신 인터페이스 같은 다양한 “체크박스” 항목에 따라 선택 가능한 MCU 수를 줄여야 한다. ARM 프로세서 기반 MCU를 공급하는 여러 업체가 기본 요건 목록을 충족할 가능성이 매우 높으므로 개발자는 혼합신호 통합, 구성 가능성, 전력 소모량 및 개발 편의성 같은 그 밖의 주요 요소에 중점을 두어 선택을 구체화해야 한다.



일반적으로 사용되는 부품이 통합된 32비트 MCU를 사용하면 개발자 입장에서는 전체 시스템 비용, 디자인 복잡도, 개발시간 등을 줄일 수 있다. 예를 들어, 실리콘랩스의 Precision32™ 혼합신호 MCU(본지 4월호 30p 참조)는 USB 오실레이터, 5 V 레귤레이터, 6개의 프로그램 가능한 하이 드라이브(High-Drive) 핀 같은 다른 MCU에서 흔히 볼 수 없는 다양한 통합 사양을 제공하도록 설계돼 있어 터치 버튼 또는 슬라이더에 대해 16개의 정전식 감지 입력 채널과 최대 300 mA의 전류를 제공할 수 있다. 이처럼 높은 통합 수준은 여러 디스크리트 부품에 대한 필요성을 없애고 전력 도메인의 유연성을 높이므로 BOM을 줄이고 개발 프로세스를 간소화하는 데 도움이 된다.
고집적 혼합신호 MCU를 사용할 경우에 이점을 이해하기 위해 일반적인 바코드 스캐너를 살펴보기로 하자. 바코드를 판독하기 위해 스캐너는 모터로 구동되는 오실레이팅 미러(Oscillating Mirror)에 레이저를 비춘다(그림 1). 이 빛이 바코드를 비추면 CCD 센서를 통해 이미지가 캡처된다. CCD 센서는 한 번에 한 줄의 픽셀(예: 1×1024 픽셀)을 캡처하는 카메라다. 아날로그 빛 레벨은 아날로그-디지털 컨버터(ADC)를 통해 변화 및 캡처된다. 높은 전류를 공급할 수 있는 MCU를 사용하면 레이저와 모터를 구동하는 데 사용되는 전력 트랜지스터가 필요없게 된다. 또한 클록 동기화를 위해 CCD 센서와 상호 작용하도록 디자인된 MCU를 선택하면 디자이너의 작업이 간단해질 수 있다.
생성되는 결과를 최적화하기 위해 MCU의 ADC는 CCD 카메라의 빠른 속도(보통 >1 MSPS)를 따라잡을 수 있어야 한다. 5 V CCD 센서의 경우 대부분의 디자인에서 센서에 대한 입력 전압을 제공하기 위한 전력관리 IC가 필요하며, MCU를 비롯한 그 밖의 부품에 대해 3.3 V의 입력 전압이 필요하다.



이 바코드의 예에서 Precision32 SiM3U1xx USB MCU는 센서에 대해 동기화된 클록을 구동하고, 빠른 CCD 샘플링 속도를 손쉽게 따라잡으며, 센서 구동을 위한 3.3~5 V DC-DC 부스트 컨트롤러를 제공하여 시스템의 부품 수를 추가로 줄여준다. 그뿐만 아니라, USB 구동 스캐너에 사용되는 Precision32 MCU는 USB 전력으로 바로 MCU를 실행하기 위한 전압 레귤레이터와 USB 신호를 자동 추적하는 혁신적인 클록 복구 회로가 통합된 48 MHz 오실레이터가 내장돼 있어 0.25% 높은 정확도를 구현하고 크리스털 없이 USB를 작동할 수 있도록 한다. 바코드 스캐너에 통합된 그 밖의 요소로는 스캔 성공 시 사용자에게 경고하는 버저(Buzzer)를 직접 구동하는 기능, 기계식 버튼을 대체하는 정전식 터치 버튼, 데이터를 안전하게 전송해야 하는 무선 스캐너에 대한 HW 암호화 등이 포함된다.
다른 중요한 디자인 고려사항은 개발 비용을 들이지 않고도 쉽고 빠르게 변경 사항을 수용하는 유연성이다. 디자이너는 개발 속도를 높이기 위해 대개 이전 프로젝트로 시작하고 설정을 수정하여 새 요구사항에 맞추는 경우가 많다. 하지만 디자인의 용도를 효과적으로 변경하기 위해 사용되는 MCU 주변장치와 해당 배치를 선택하고 수정할 수 있다는 점이 중요하다. 대부분의 MCU는 대체 옵션이 고정된 주변장치에 대해 미리 설정된 위치를 제공한다. 미리 설정된 핀 아웃은 대개 핀 충돌을 발생시켜 디자이너가 디자인을 변경하거나 더 크고 비싼 패키지로 옮겨갈 수밖에 없도록 한다. 실리콘랩스의 특허 기술인 대체 듀얼 크로스바(Dual-Crossbar) MCU 아키텍처(그림 2 참조)를 사용하는 개발자는 먼저 필요한 주변장치를 선택한 후 핀 배치를 지정할 수 있어 더 큰 유연성을 누리게 된다.
필요한 주변장치만 “선별” 할 수 있게 되면, 대개 더 작고 경제적인 패키징 옵션을 구현할 수 있게 된다. 예를 들어, 흐름 제어(16핀) 및 2개의 SPI(6핀)가 포함된 UART 4개가 필요한 통신 허브에서 개발자는 22개 남짓한 I/O를 포함하는 MCU를 선택할 수 있어야 한다. 하지만 표준 고정 아키텍처, UART 4개, SPI 3개를 사용하려면 정확한 주변장치 혼합을 얻기 위해 64핀 또는 심지어 100핀 패키지가 필요해진다. 개발자는 구성 가능한 유연한 특성의 크로스바 기술을 사용하여 여분의 여러 I/O가 포함된 40핀 패키지에 이 주변장치 혼합을 손쉽게 맞출 수 있다. 또한 주변장치 위치를 최적화함으로써 주변장치를 연결 회로 가까이에 배치하여 경로를 더 짧게 설정하고 잠재적으로 디자인에 필요한 PCB 층의 수를 줄일 수도 있다. 무엇보다도 디자인의 마지막 변경 사항을 소프트웨어에 손쉽게 적용할 수 있다. 예를 들어, 통신 허브에 SPI 인터페이스를 갖춘 다른 IC가 필요한 경우에는 문제가 되지 않는다. 소프트웨어를 수정하기만 하면 같은 풋프린트에 세 번째 SPI 포트를 손쉽게 추가할 수 있기 때문이다.
유연한 크로스바 아키텍처의 이점을 감안할 경우 구성 가능성이 매우 높은 크로스바 기술이 적용된 MCU를 사용할 때 단점이 있을까? 일부 개발자는 크로스바 아키텍처가 프로그래밍을 복잡하게 만들 가능성을 우려하고 있다. 실리콘랩스는 초기화와 구성을 간소화하도록 디자인된 무료 소프트웨어 개발 툴인 앱 빌더(App Builder)를 만들어 이 문제를 해결했다. 개발자는 GUI 기반 앱 빌더 툴을 사용해 데이터 시트를 읽지 않고도 주변장치 혼합을 그래픽으로 빠르게 선택하고, 클록킹 모드를 설정해 핀아웃을 맞춤식으로 구성할 수 있다. 또한 앱 빌더는 Keil, IAR, GCC 등 널리 알려진 컴파일러와 함께 사용할 수 있는 소스코드도 생성한다.
32비트 MCU를 선택할 때 마지막으로 고려할 중요한 사항은 전력 효율이다. 실제로, 다양한 임베디드 애플리케이션에서 극도로 낮은 전력이 중요 문제로 자리 잡아가고 있다. 오늘날처럼 “친환경”을 강조하며 에너지 소모량을 최소화해야 하는 상황에 처한 디자이너는 총 전력 예산에 세심한 주의를 기울여야 한다. 에너지를 대폭 줄이는 방식에는 여러 가지가 있다. 가장 효율적인 방식은 최종 애플리케이션에 따라 달라진다. 일례로 혈당 측정기는 하루에 몇 차례만 사용됨으로 대부분의 시간은 딥 슬립 모드를 유지하게 된다. 따라서, 이 애플리케이션에서는 슬립 모드의 전력 소모량을 최소화하는 것이 가장 중요하다.
반면에 센서 노드 디바이스는 발생하는 이벤트에 대한 모니터링을 끊임없이 수행해야 한다. 그렇다면 이벤트를 지속적인 모니터링하기 때문에 항상 능동 모드여야 할까? 사실은 그렇지 않다. 센서 노드는 슬립 모드에서 빠르게 재가동하여 연기 감지 같은 이벤트의 발생 여부를 확인한 후 슬립 모드로 돌아갈 수 있다. 이 유형의 시스템에서는 ‘100마이크로초마다’와 같이 내부 레귤레이터의 재가동을 위한 실시간 클록(RTC)을 포함하는 저전력 슬립 모드를 구성하는 것이 중요하다. 이벤트의 발생 여부를 확인하는 일정 수의 명령을 신속하게 실행하는 프로세서와 빠른 재가동 시간을 갖추는 일도 중요하다.
공장 생산 라인의 장비 같은 일부 애플리케이션은 절대 슬립 모드로 전환되지 않는다. 이러한 애플리케이션에서는 반드시 저전력 액티브 전류(active current)를 사용하는 MCU를 활용해야 한다. 또한 해당 작업에 필요한 처리 속도만 사용하기 위해 작동 중에 주파수 속도를 줄이는 등의 전력 절감을 위해 활용할 수 있는 기법도 나와 있다.
슬립 모드, 액티브 모드, 재가동 시간, 작동 중 주파수 변경 측면에서 탁월한 성능을 나타내는 32비트 MCU를 찾는 일은 까다로울 수 있다. Precision32 MCU 제품군은 그림 3에서처럼 여러 저전력 옵션을 제공하여 이러한 과제를 해결할 수 있다. 이 MCU는 100 nA 미만으로 작동하며 전압 저하 검출기 및 4 kB의 RAM 보존 사양을 포함할 수 있다. 추가 250 nA의 전류에 대해 실시간 클록도 사용할 수 있다. 추가 400 nA를 비롯해 저전력 타이머/펄스 계수기에 대한 아날로그 비교기 옵션이 있다. 이 MCU는 저전력 슬립 모드에서 마이크로초 단위로 재가동될 수 있다. 또한 Precision32 MCU는 275 μA/MHz의 매우 낮은 액티브 모드를 갖추고 있으며, 개발자가 작업에 사용되는 전력을 수동으로 최적화하도록 하여 주파수를 1~80 MHz로 묶어둘 수 있는 정교한 PLL이 특징이다.
대부분의 주요 MCU 공급업체가 메모리 크기가 비슷하고 다수의 I/O와 직렬 주변장치를 갖춘 동일한 코어를 사용하는 32비트 디바이스 제품군을 보유하고 있으므로 디자이너는 임베디드 디자인의 MCU를 선택하는 데 별 문제가 없다고 생각하기 쉽다. 하지만 특정 디자인에 적합한 MCU를 선택하면 시스템 디자인을 크게 변경하지 않으면서 마지막 단계의 변경 사항을 자유롭게 적용하는 동시에 개발자의 개발 시간, 전력 소모량 및 총 시스템 비용을 대폭 줄일 수 있다. 요컨대, 처음부터 개발자 작업의 편의성을 고려하여 설계된 유연한 아키텍처를 기반으로 하는 32비트 MCU를 선택하는 것이 적당하다.




저자소개

샤흐람 타다욘( Shahram Tadayon)은 실리콘랩스 임베디드 혼합신호 사업부의 MCU 제품 마케팅 매니저다.
그는 2002년 ISOmodem 제품 라인의 제품 마케팅 매니저로 입사했으며, 회사의 AM/FM 수신기 제품 라인 제품 마케팅 매니저로도 근무하고 있다. 실리콘랩스에 입사하기 전에는 휴렛팩커드(HP)에서 회로 디자인 관련 업무를 수행했다. MIT에서 전기공학 학사 및 석사 학위를 취득했다.
 

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



  • 100자평 쓰기
  • 로그인

세미나/교육/전시
TOP