MCU는 CPU나 GPU와 다르게 낯설지만, 가장 많이 사용되는 반도체 중 하나다. ST 시스템 솔루션 랩의 유지 카와노 매니저에게 MCU의 활용성과 가능성이 얼마나 큰지 들어보자.
非사용 GPIO 단자, 내부 구조 따라 다르게 처리
노이즈 애로·래치업 발생, 입력 버퍼 보호 必
마이크로암페어 수준 전류 MCU 손상 어려워
[편집자주]일반적으로 반도체라 하면 컴퓨터의 CPU와 메모리처럼 일반인에게 익숙한 반도체를 떠올리기 마련이다. 반면에 전자제품 구동을 위해서 핵심 반도체로 쓰이는 MCU(Micro Controller Unit)의 경우 일반적으로 우리가 쉽게 접하는 모든 전자제품에서 사용되고 있으면서도 일반인에게는 아직 낯선 반도체다. 이런 MCU가 최근 반도체 부족 사태로 인해 언론에 오르내리며, 일반인들에게 주목받기 시작했다. 이에 본지는 MCU 반도체 전문기업인 ST마이크로일렉트로닉스의 유지 카와노 매니저의 연재기고를 통해 MCU에 대해 전문적으로 알아보는 자리를 마련했다.
■ 질문
사용하지 않는 GPIO(general purpose I/O) 단자를 어떻게 처리할 수 있는가?
■ 답변
사용하지 않는 GPIO 단자들은 그 내부 구조에 따라 다르게 처리해야만 한다. 일반적으로 각 단자의 전압은 노이즈에 의한 변동을 방지하기 위해 일정한 값으로 고정된다. 사용하지 않는 GPIO 단자를 높은 임피던스로 설정하여 개방 상태로 두면, 이론적으로는 이로 인해 MCU 성능이 영향을 받지 않는다.
하지만, 외부 노이즈가 MCU 에러를 일으키거나 래치업을 유발하여 MCU 고장을 발생시킬 수 있다. 이 때문에 10∼100 kΩ의 풀-업(pull-up) 또는 풀-다운(pull-down) 레지스터를 사용하여 일정한 전압을 유지할 것을 권고한다(그림 1(a)).
일부 GPIO는 내장 풀-업 또는 풀-다운 레지스터를 가지고 있다. 이와 같은 레지스터를 사용하여 외부 컴포넌트 수를 줄일 수 있다(그림 1(b)). 또한 GPIO의 전압에 따라 이것의 출력을 ‘높게’ 또는 ‘낮게’ 만들 수 있지만(그림 1(c)), 단자가 사고로 인해 전원과 접촉할 가능성이 있어서 대전류(large current)가 통과하여 MCU 고장을 일으킬 수 있기 때문에, 그 대신에 레지스터를 사용할 것을 권고한다.
일반적으로 사용자 매뉴얼은 이러한 단자들을 처리하는 방법에 대해 설명하고 있다. 그렇지 않을 경우, MCU 제조업체와 상담하기 바란다.
▲그림1: 사용하지 않는 GPIO 처리방법의 예
■ GPIO 단자 구조
일반적인 GPIO 구조에 대해 설명하도록 하겠다. 그림 2(a)는 로직 다이어그램을 포함하고 있다. 풀-업 또는 풀-다운 레지스터를 소프트웨어로 온 또는 오프 상태로 전환할 수 있는 데, 일부 GPIO는 이와 같은 레지스터를 가지고 있지 않다. 입력 버퍼와 출력 버퍼는 입력 및 출력을 위한 단자에 직접 연결된다. 보호 다이오드는 단자를 정전기로부터 보호하며 MCU 로직 동작과 전혀 상관이 없다.
입력 버퍼 구조는 MCU 또는 GPIO에 따라 달라진다. 세부사항은 사용자 매뉴얼을 확인해야 한다. 그림 2(b)는 6개의 일반적인 입력 버퍼를 나타내고 있는 데, 크게 2개의 타입으로 구분할 수 있다. 스루-버퍼 타입은 항상 입력 데이터를 통과시키며, AND 또는 OR 타입은 리드 신호(lead signal)가 들어올 때만 입력 데이터를 통과시킨다. 각 타입은 슈미트 특성(Schmitt characteristic) 여부에 따라 2개의 추가적인 타입으로 구분할 수 있다.
출력 버퍼는 일반적으로 CMOS 푸시-풀 타입이다. CMOS 구조 내의 PMOS와 NMOS 각각은 독립적으로 온 또는 오프 상태로 전환되어 고출력, 저출력, 고 임피던스 등 3개의 상태를 구현한다. GPIO를 사용하지 않을 경우, 풀-업 및 풀-다운 레지스터를 차단시켜 출력 버퍼를 고 임피던스 상태로 전환한다. 이 상태는 입력 데이터를 읽지 않으며, MCU 로직 동작에도 전혀 영향을 미치지 않는다.
하지만, 이로 인해 단자 전압 수준이 불안정한 상태가 되는 데 GPIO 단자가 어떠한 것도 구동하지 않기 때문이다. 다시 말해 전압 수준이 외부 영향에 취약해진다. 이 상태에서 외부 노이즈로 인해 급격한 전압 변화가 발생하여 MCU로 유입되면 동작 에러가 발생하거나 MCU 고장을 일으키는 래치업이 발생한다. 노이즈와 같은 단자 전압의 변화를 로직 다이어그램으로 나타내기가 어렵기 때문에 CMOS 단면 다이어그램을 참고로 제공한다.
▲그림 2 : GPIO 구조
■ 유입 노이즈 경로
그림 3은 CMOS 단면 구조의 예이다. 이것은 단순화하여 표현한 입력 버퍼이다. 이 버퍼에 대한 신호 입력이 PMOS 및 NMOS 게이트에 제공된다. NMOS 게이트와 P-WELL은 산화막을 사이에 두고 있어서 커패시터를 형성하며, PMOS 게이트와 N-SUB도 마찬가지다. 이러한 커패시터를 게이트 산화막 커패시터라고 한다. 커패시터는 고주파수를 통과시키는 경향이 있다. 노이즈는 일반적으로 고주파수 성분들로 구성되어 있기 때문에 게이트가 논리적으로 닫혀있더라도 노이즈가 기생 커패시터(예를 들어 게이트 박막 커패시터)를 통과하여 MCU 깊숙이 침투하게 된다.
노이즈가 MCU에 침투하여 WELL 또는 SUB에 도달하면 MCU 동작 에러 또는 래치업이 발생한다. 따라서 입력 버퍼를 노이즈로부터 보호해야만 한다.
▲그림 3 : CMOS 단면 구조
■ 노이즈 바이패싱
MCU에 침투하는 노이즈를 차단하기 위해 GPIO 단자의 전위를 일정한 수준으로 고정시켜 전압을 안정화시킨다. 노이즈가 발생했을지라도 전원 또는 GND를 단자의 전압에 고정하여 변동을 최소화시킨다. 또한 MCU에 유입되지 않고 노이즈가 MCU를 우회하여 전원 또는 GND로 갈 수 있다.
GPIO 단자의 전압을 고정하는 가장 간편하고 효과적인 방법을 그림 1에 나타냈다. 그림 4는 노이즈가 그림 1(a), (b), (c)에 들어간 사례를 나타냈다. 그림 4(a)와 (b)에서, 풀-업 또는 풀-다운 레지스터를 사용하여 GPIO 단자 전압을 고정할 수 있는 데 전원 또는 GND 수준으로 조정되기 때문에 유입되는 노이즈에 영향을 받지 않게 된다. 심지어 많은 양의 노이즈가 MCU를 우회하여 MCU에 침투하는 대신에 전원 또는 GND로 가게 된다.
분명한 것은 레지스터를 통해 GPIO 단자 전압을 고정하거나 노이즈를 우회시키는 것이 0 저항을 사용하는 것보다는 효과적이지 않다. 따라서 이 그림에서, 그림 4(c)가 유입되는 노이즈를 차단하는 가장 효과적인 구성이다. 하지만, 고전압 노이즈가 발생하여 상당 기간 들어오게 되면, 대전류(large current)가 MCU 또는 전원 내부를 통과하게 된다. 이와 같은 대전류는 회로를 손상시킬 수 있기 때문에 반드시 방지해야 한다. 레지스터 사용을 권장한다. 노이즈가 유입되는 경로에 레지스터를 배치하여 노이즈로 인한 급격한 전압 변동을 낮출 수 있다.
레지스터의 저항 값은 표준화되어 있지 않으며, 사용자의 시스템 환경에 따라 선택할 수 있다. 일반적으로 10∼100 kΩ의 저항이 사용된다. 예를 들어 단자가 2V 전원을 단락회로로 만들었다면, 100kΩ에 대해 10μA(=3V/100kΩ)의 전류가 통과하고 10kΩ에 대해서는 100μA(=3 V/10kΩ)의 전류가 통과한다.
어떠한 경우에도 마이크로암페어 수준의 전류가 MCU를 손상시키지는 않는다. 보다 높은 저항 값을 가진 저항(예를 들어 1 MΩ)을 사용할 수 있지만, 풀링(pulling) 성능이 보다 약하기 때문에 노이즈에 대해 상대적으로 낮은 저항 특성을 제공한다.
▲그림 4 : 사용하지 않는 GPIO 처리방법의 예