MCU는 CPU나 GPU와 다르게 낯설지만, 가장 많이 사용되는 반도체 중 하나다. ST 시스템 솔루션 랩의 유지 카와노 매니저에게 MCU의 활용성과 가능성이 얼마나 큰지 들어보자.
대전류 포트 지원 MCU, LED 구동
MCU 최대 정격 값·데이터 시트 준수 必
PMOS 대전류 포트 제공, 스위치 사용 可
[편집자주]일반적으로 반도체라 하면 컴퓨터의 CPU와 메모리처럼 일반인에게 익숙한 반도체를 떠올리기 마련이다. 반면에 전자제품 구동을 위해서 핵심 반도체로 쓰이는 MCU(Micro Controller Unit)의 경우 일반적으로 우리가 쉽게 접하는 모든 전자제품에서 사용되고 있으면서도 일반인에게는 아직 낯선 반도체다. 이런 MCU가 최근 반도체 부족 사태로 인해 언론에 오르내리며, 일반인들에게 주목받기 시작했다. 이에 본지는 MCU 반도체 전문기업인 ST마이크로일렉트로닉스의 유지 카와노 매니저의 연재기고를 통해 MCU에 대해 전문적으로 알아보는 자리를 마련했다.
■ 질문
어떻게 MCU가 고휘도 LED를 직접 구동할 수 있게 할 수 있는가?
■ 답변
MCU GPIO(general purpose I/O) 중에서 소위 대전류 포트라고 하는 형태가 있다. 이름이 나타내는 바와 같이, 이러한 형태는 대전류를 통과시킬 수 있으며; 이와 같은 GPIO는 MCU가 일반적으로 수십mA의 전류를 요구하는 고휘도 LED를 포함해 LED를 직접 구동할 수 있도록 설계되었다. 단일 대전류 포트는 15mA에서 25mA까지의 전류를 통과시킬 수 있으며; 최대 전류는 MCU 데이터시트에 제시되어 있다. 2개 또는 3개의 대전류 포트를 병렬로 동시에 제어함으로써 50mA 또는 75mA의 전류를 출력 회로를 통해 통과시킬 수 있다.
하지만 절대 최대 정격 레벨은 MCU를 위한 전원으로부터 인가될 수 있는 최대 전류를 지정하고 있으며; 이 값을 초과하는 전류는 절대 통과할 수 없다. 그림 1은 대전류 포트를 사용하는 2개의 LED 드라이버 회로의 예제를 나타내고 있다. 그림 1(a)의 회로는 1개의 대전류 포트를 사용하고 있으며, 그림 1(b)의 회로는 2개의 포트를 사용하고 있다.
▲그림1 : LED 분배기 회로의 예
■ 설명
○ LED 드라이버 회로 설계
우선, MCU 대신에 스위치를 사용하여 LED를 온 또는 오프시키는 회로를 구성해 보자. 전원으로 2개의 1.5-V 건전지를 사용하여 3V를 공급한다. 그림 2는 이 회로를 나타낸 것이다. 전기 회로를 설계하기 위해서 LED의 전기적 특성에 대한 데이터가 필요하며; 이 경우에 해당 전류에 대한 정격 전류 수준(mA)과 순전압Vf(V)가 필요하다. 적색 LED는 25mA의 정격 전류와 1.4V에서 2.0V까지의 순전압을 가진다. LED를 안정적으로 사용하기 위해서 LED 전류를 정격 값의 70%에서 80% 수준으로 설정한다. 따라서 실제 전류 I는 25mA의 80%인 20mA라는 것을 계산할 수 있다. Vs=3.0V, Vf=1.4V, I=20mA일 경우, 전류 제한 저항 R은 (Vs-Vf) / I을 통해 구할 수 있으며, 이를 통해 R = (3.0V-1.4V)/20mA=80Ω라는 것을 계산할 수 있다. 그러므로 80Ω의 저항과 LED를 연결해 충분히 안정적으로 적색 LED를 구동할 수 있다. 스위치를 켜면, LED가 켜지고; 스위치를 끄면 LED가 꺼진다.
▲그림2 : LED 드라이버 회로 예제
○ MCU를 이용한 LED 드라이버 회로 설계
다음으로 스위치 대신에 MCU의 GPIO를 사용하여 LED를 온 또는 오프시키는 회로를 구성해 보자. 그림 3은 GPIO의 NMOS를 스위치로 사용하는 드라이버 회로를 나타낸 것이다.
기본적인 회로 구조는 이전 설계와 동일하지만, 회로의 전기적 특성을 검사해야만 한다. 스위치의 ON 저항이 0일지라도 NMOS의 ON 저항은 0 Ω이 아니며; NMOS는 온 상태에서 수 Ω의 저항을 가진다. NMOS의 ON 저항을 이전 설계에서 획득한 값인 80Ω으로부터 빼야만 한다. 그렇지 않을 경우, 이 ON 저항으로 인해 작은 LED 전류가 20mA보다 작아지게 되어 LED 밝기가 충분하지 않게 될 것이다.
▲그림3 : LED 드라이버 회로의 예(1개의 MCU GPIO 사용)
대전류 포트 NMOS의 ON 저항은 어떻게 확인할 수 있는가? MCU 데이터시트에 정리되어 있다. 먼저 MCU가 대전류 포트 지원 여부를 확인해야 하며; 없을 경우, MCU는 고휘도 LED를 구동할 수 없다. 데이터시트의 GPIO 특성 표에 대전류 포트에 대한 정보가 포함되어 있다. GPIO 통과 전류는 IOL 또는 IOH로 표시된다. IOL은 NMOS가 ON 상태로 전환되어 LOW를 출력할 경우에 GPIO를 통과할 수 있는 전류를 말하며; IOH는 PMOS가 ON 상태로 전환되어 High를 출력할 경우에 GPIO를 통과할 수 있는 전류를 말한다. IOH=25mA 또는 IOL=25mA 등과 같은 데이터를 찾았다면, GPIO는 대전류 포트이다. 전류 값은 MCU와 GPIO에 따라서 달라진다. 일반적으로 LED 구동을 위한 전류는 15mA∼25mA 사이이다.
다음으로 GPIO의 NMOS가 ON 상태로 전환되면, GPIO는 Low를 출력하고; 이 출력 전압을VOL(voltage output low)이라고 한다. PMOS가 ON 상태로 전환되면, GPIO는 High를 출력하고; 이 출력 전압을 VOH(voltage output high)라고 한다. 본고에서는 NMOS를 스위치로 사용할 것이기 때문에 VOL과 IOL에 대해서 중점적으로 살펴본다.
GPIO 특성 표를 살펴보자. VOL 열의 측정 조건은 IOL 값을 나타낸다. 예를 들어 ST마이크로일렉트로닉스의 32비트 MCU STM32의 데이터시트에는 IOL=20mA일 경우에 VOL=1.3V라고 설명하고 있다(그림 4(a) 참조). 옴의 법칙에 따라서 NMOS의 ON 저항은 VOL/IOL=1.3V/20mA=65Ω으로 주어진다.
스위치를 사용한 이전 설계의 전류-제한 레지스터 값은 80Ω이었다. 85Ω에서 65Ω을 빼면 15Ω이고, 이것은 20mA의 전류를 달성하기 위해 필요한 전류 제한 저항으로 사용할 수 있으며 스위치를 사용한 설계의 값과 동일하다.
GPIO가 Low를 출력하면, LED는 온 상태로 전환되고, High를 출력하면 오프 상태로 전환된다.
○ 다른 계산 방법(참고)
20mA의 전류가 NMOS를 통과할 경우, 단자는 1.3V의 전압을 출력하고, 이 경우 레지스터와 LED를 통과하는 전압은 3.0V-1.3V=1.7V이다. 앞에서 설명한 R에 대한 공식을 대입하여 3.0V에 대해 1.7V를 빼면, R=(1.7V-1.4V)/20mA=15Ω이 되어 결과는 같다.
▲그림 4 : STM32 데이터시트
○ 2개의 대전류 포트를 사용하는 LED 드라이버 회로
일부 고휘도 LED는 25mA보다 큰 전류를 사용하지만, 단일 대전류 포트로 이러한 형태의 LED를 구동할 수는 없다. 예를 들어 50mA의 정격 전류를 사용하는 LED에 대해 살펴보자. 정격 값의 80%를 지원한다고 가정하면, 50mA×0.8=40mA이다. 이것으로 I=40mA가 된다. 순방향 전압 Vf가 1.4V라고 가정하면, 이전과 마찬가지로 전류-제한 레지스터 값(R)은 (Vs -Vf)/I로 구할 수 있으며, 따라서 R=(3.0V-1.4V)/40mA=40Ω이다. 본고에서는 2개의 NMOS를 병렬로 사용하기 때문에 1개의 NMOS를 통과하는 전류는 40mA/2=20mA이고, 이것은 이전 설계와 동일하기 때문에 ON 저항은 65Ω이다. 2개의 NMOS 통합 저항은 65Ω/2=32.5Ω이다. 직렬연결 시의 저항은 7.5Ω으로, 이것은 R=40Ω로부터 32.5Ω를 빼서 구한 것이다. 이들 2개의 GPIO가 동시에 Low을 출력하면, LED가 온 상태로 전환되고, High를 출력하면 오프 상태로 전환된다. 따라서 2개의 대전류 포트 GPIO는 50mA LED를 구동할 수 있다.
▲그림5 : LED 드라이버 회로의 예(2개의 MCU GPIO 사용)
○ 주의 사항
(1) 절대 최대 정격 값 준수하기
IVDD 파라미터는 STM32 절대 최대 정력 값 표에 포함되어 있으며(그림 4(b)), 이전 예제에서 사용되었다. 이 파라미터는 MCU의 전원 단자를 통과할 수 있는 최대 전류이다. 이 표에서 값이 150mA라는 것을 알 수 있다. 대전류 포트를 복수의 LED를 동시에 구동하기 위해 사용할 경우, 전체 전류가 이 값을 초과해서는 안 된다. 이 값을 초과하는 전류로 인해 MCU가 손상되거나 래치업이 발생할 수 있다.
(2) PMOS 사용하기
본고에서는 스위치로 NMOS를 사용했지만, MCU가 PMOS 대전류 포트를 제공한다면 PMOS를 사용할 수도 있다. 계산 방법은 동일하며 ; VDD-VOH 및 IOH는 PMOS ON 저항을 구하는 데 사용한다.
(3) 실제 회로 설계
본고에서 우리가 사용한 파라미터 값은 단지 예제일 뿐이다. 실제로 회로를 설계할 때에는 관련 데이터시트와 사용자 매뉴얼을 사용해 LED와 MCU GPIO의 특성을 결정해야 한다. 다양한 형태의 LED와 MCU GPIO가 있기 때문에 알맞은 값을 사용하지 않는다면 MCU 또는 LED 고장이 발생할 수 있다.