MCU는 CPU나 GPU와 다르게 낯설지만, 가장 많이 사용되는 반도체 중 하나다. ST 시스템 솔루션 랩의 유지 카와노 매니저에게 MCU의 활용성과 가능성이 얼마나 큰지 들어보자.
“MCU 100V 연결시, 3V·5V 인가 회로 구성”
회로 상수 계산 전 MCU GPIO 규격 확인 必
단락 회로 고장 가능성 고려 10배 마진 설정
[편집자주]일반적으로 반도체라 하면 컴퓨터의 CPU와 메모리처럼 일반인에게 익숙한 반도체를 떠올리기 마련이다. 반면에 전자제품 구동을 위해서 핵심 반도체로 쓰이는 MCU(Micro Controller Unit)의 경우 일반적으로 우리가 쉽게 접하는 모든 전자제품에서 사용되고 있으면서도 일반인에게는 아직 낯선 반도체다. 이런 MCU가 최근 반도체 부족 사태로 인해 언론에 오르내리며, 일반인들에게 주목받기 시작했다. 이에 본지는 MCU 반도체 전문기업인 ST마이크로일렉트로닉스의 유지 카와노 매니저의 연재기고를 통해 MCU에 대해 전문적으로 알아보는 자리를 마련했다.
■ 질문
상용 전력(100V)의 주파수(50/60㎐)를 사용해 MCU의 내부 클록을 수정하고 싶지만, 전압 변환 어댑터를 사용하는 것은 비용이 너무 높다. 전력선을 MCU의 GPIO 단자에 직접 연결해 상용 전력 주파수를 입력 신호로 사용할 수 있는가?
■ 답변
MCU는 일반적으로 3V 또는 5V의 동작 전압을 사용한다. 따라서 AC와 DC에 관계없이 100V와 같은 고전압을 MCU의 GPIO 단자에 인가할 경우에는 MCU를 손상시키게 된다.
이러한 이유로 인해 전압 변환 어댑터 없이 100V 이상의 상용 전력선을 MCU에 연결하고자 한다면, 레지스터를 사용해 높은 전압을 분할함으로써 MCU 단자에 3V 또는 5V만을 인가하는 회로를 구성해야 한다.
그림 1은 ST마이크로일렉트로닉스가 생산하는 MCU인 STM8S005를 사용한 예제 회로를 나타낸 것이다.
▲그림 1 : 저항 전압 분할기 예 (STM8S005 사용)
데이터시트에 GPIO 단자 핀에 입력될 수 있는 전류와 인가할 수 있는 전압에 대한 리스트가 제공되고 있다(그림 2).
전류-제한 저항값과 전압-분할 저항값을 계산하여 규격을 초과하지 않도록 해야 한다. AC 전압을 인가할 경우, 저항값과 회로 구성을 결정하고 음의 전압이 인가될 수 있다는 사실을 고려해야 한다.
그림 1의 경우, +141V가 인가되면 GPIO 단자 핀 전압은 5.012V이지만, -141V가 인가되면 이것은 0.097V가 된다. 이 경우 전류-제한 레지스터를 통과하는 전류는 각각 146.2㎂와 -151.7㎂이며, 심지어 이들 전류 중 하나가 MCU 단자 핀에 입력되어야만 규격이 충족될 수 있다.
▲그림2 : 절대 최대 정격 값(STM8S005 기준)
■ 주의사항
모든 MCU의 GPIO는 자체 규격을 가지고 있다. 규격을 초과하지 않도록 하기 위해서는 회로 상수를 계산하기 전에 사용하고자 하는 MCU의 GPIO 규격을 반드시 확인해야 한다. 또한, 이 회로는 전력 회로의 규격과 구성에도 영향을 받기 때문에 회로 상수를 계산할 때는 전력 회로를 고려해야만 한다. 올바르지 않은 회로 상수로 인해 인가된 전압이 너무 높아 MCU 또는 인접 회로가 손상될 수 있다.
■ 설명
○ GPIO 단자의 내부 구조
그림 3은 일반적인 GPIO 구조를 나타낸 것이다. GPIO 회로는 입력 데이터를 수신하는 입력 버퍼, 출력 데이터를 출력하는 출력 버퍼, GPIO 전압을 강제로 고정하는 풀-업/풀-다운 레지스터, 그리고 외부 서지 전압을 전력공급장치 또는 GND 단자로 우회시키는 보호 다이오드 등으로 구성되어 있다.
GPIO를 입력 단자로 사용할 경우, 출력 버퍼와 풀-업/풀-다운 레지스터가 OFF 상태가 되기 때문에, 이것은 고 임피던스(H-Z) 상태가 된다. 인가된 전압이 전력공급 전압을 초과하거나 인가된 전압이 GND보다 낮다면, 보호회로 중 하나가 온 상태로 전환하여 전류를 통과시켜 GPIO를 보호한다.
하지만 보호 다이오드의 전류 제한을 초과하는 전류를 사용하면 회로를 손상시킬 수 있다. 이러한 전류 값들의 리스트를 주입 전류(injected current)로서 그림 2(b)에 나타냈다. 이 규격 테이블은 STM8S가 4㎃ 이내의 전류를 허용할 수 있다는 것을 나타내고 있다. 이 값의 GPIO 단자 핀을 연결하기 위해 계산한 전류-제한 저항을 사용해야만 한다.
물론 고전압을 GPIO 단자 핀에 인가하면 고장의 원인이 될 수도 있다.
전압-분할(voltage-dividing) 저항값을 계산해 인가되는 전압이 그림 2(a)에 나타낸 값을 초과하지 않도록 해야만 한다.
다음으로 STM8S005를 이용해 특수 회로를 설계해 보자.
○ 전류-제한 레지스터 및 전압-분할 레지스터 값 계산 방법
먼저, 전류-제한 저항값을 계산할 것이다. 전압-분할 레지스터가 없다고 가정하고 전류가 GPIO 단자 핀에 주입되더라도 MCU의 고장을 일으키지 않을 전류값을 설정하자.
다음으로 그림 2(b)에 나타낸 바와 같이 4㎃의 범위 이내로 전류를 제한하도록 저항값을 결정해야 한다.
양극 전압이 단자에 인가될 경우, 순방향 전압이 Vdd 측의 보호 다이오드에 인가되고, +141V와 Vdd(= 5V) 사이의 전압 차이, 즉 141V-5V=139V가 전류-제한 레지스터에 인가된다.
옴의 법칙에 따라, 저항이 139V/4mA=34.75㏀ 이상이면, 전류는 4㎃ 이하가 된다. 음극 전압이 인가된 경우, 순방향 전압이 GND(Vss) 측의 보호 다이오드에 인가되고, 전류-제한 레지스터를 통과한 전압은 141V이다.
저항을 141V/4mA=35.25㏀ 이상으로 설정하면, 전류는 4㎃ 이하가 된다(엄밀히 말해, 계산에 보호 다이오드 순방향 전류 역시 포함되어야 하지만, 이 글에서는 이것이 141V보다 매우 작기 때문에 무시했다).
이러한 값들이 규격을 충족시킬지라도 단락 회로 고장 가능성을 고려해 10배의 마진을 설정하는 것이 최선이다. 또한, 이러한 저항값들 중 하나는 항상 4㎃의 전류를 허용해야 한다. 전체 시스템에 의해 소모되는 전류를 고려하여 전류를 가능한 낮게 유지해야 하기 때문에, 수 ㎂의 범위에 대해 조금이라도 더 전류를 절감해야만 한다. 저항이 클수록 보다 쉽게 값을 정밀하게 조정할 수 있다. 이 예제에서는 약 1㏁의 저항을 사용할 것이다.
▲그림 3 : GPIO 구조
다음으로 전류-제한 레지스터가 약 1㏁의 값을 가진다는 가정 하에 전압-분할 저항값을 계산해 보자.
살펴 볼 첫 번째 사례는 +141V가 인가되는 경우이다. 그림 4(a)에서 Ri(전류-제한 저항)과 Rvd(GPIO 단자 핀과 GND 사이의 저항)으로 +141V를 나누면, 5V가 GPIO 단자 핀에 인가된다.
다음 관계가 유지되어야 한다 : Rvd/(Rvd + Ri)=5V/141V. 이것은 Rvd/Ri=5/136=1/27.2가 된다.
실험실에서 이 관계를 대략적으로 나타내는 약 1㏁ 레지스터 2개를 찾았다 : 하나는 33㏀이었고, 다른 하나는 930㏀이었다.
따라서 Rvd를 33㏀으로 하고, Ri를 930㏀으로 하면, 관계는 Rvd/Ri=33/930=1/28.1이 될 것이다.
다음으로 141V가 인가된 경우에 약 0V를 GPIO 단자 핀에 인가할 전압-분할 저항값을 구해야만 한다.
또한 AC 전압에 대한 0V 지점을 고려해야만 한다. 이것은 +141V와 141V 사이에서 변화할 경우에 인가된 AC 전압이 0V의 중간을 통과한다는 것을 의미한다.
이 0V가 AC 전압의 중간 지점이기 때문에 GPIO 단자 핀에 인가되는 전압 역시 적시에 이 지점에서 1/2이 되어야 한다.
따라서 141V를 인가하기 위한 RVU(분할 저항)은 RVD, 즉 33㏀과 동일해야 한다.
이에 근거해 5V+141V=146V의 전압 차이는 RVU(=33㏀)과 RI(=930㏀)로 나눈다. 이에 따라서 VI=146V (33㏀/(963+33)㏀)=141V가 되며, GPIO 단자 핀에 인가되는 전압은 141V+141V=0V이다.
그림 1에 나타낸 회로를 결과로 얻을 수 있다.
▲그림4 : 저항 전압 분할기 회로
○ 실제 전압 및 전류 값 예제
실제 측정값이 설계 값과 일치하는지를 확인하기 위해서 그림 1에 나타낸 회로를 구성했다.
MCU 전력공급을 위해 5-VDC AC 어댑터를 사용했으며, 측정된 출력 전압은 5.2V였다. 이 조건 하에서 그림 1에 나타낸 바와 같이 +141V와 141V가 회로에 인가되는 2개의 경우에 대해 동일한 회로를 구성했다.
연립 방정식으로부터 각 모드에서의 전류값과 GPIO 단자 핀의 전압값을 구했다.
그림 5에 상세한 계산식을 나타내었다. 실제 측정값은 설계값과 일치했으며, 이 회로가 올바르게 설계되었다는 것을 확인했다.
100VAC를 인가해 STM8S005를 실제로 동작시켰고, 회로는 GPIO 단자 핀을 손상시키지 않고 올바르게 동작했다.
▲그림5 : 저항 전압 분할기의 검증 방법
○ 높은 DC 전압을 인가시키는 방법
높은 양극 또는 음극 DC 전압이 AC 전압 대신 인가되면, 단지 1개의 분할 레지스터만이 필요하다 : 양극 전압을 위한 GND 측의 RVD 또는 음극 전압을 위한 VDD 측의 RVU. 이 글에서는 AC 전압을 인가하는 경우에만 초점을 두었기 때문에 양극과 음극 모두에 분할 레지스터를 사용했다.
○ 보충 설명
일부 GPIO 규격은 전류-제한 레지스터만을 요구함으로써 전압-분할 회로를 요구하지 않는다.
전류-제한 레지스터(분할 레지스터 없음)만 사용된다면, 순방향 전류가 보호 다이오드를 통과하게 된다. 전류-제한 레지스터 값을 계산하여 이 순방향 전류가 보호 다이오드를 통과할 수 있는 허용 가능한 최대 전류 이하가 되도록 해야만 한다. 순방향 전압은 보호 다이오드를 통해 생성되기 때문에, GPIO 단자 전압은 Vdd+ 순방향 전압 또는 GND- 순방향 전압이 된다(그림 6). 이들 전압이 GPIO 입력 전압을 위한 절대 정격 값을 초과하지 않는다면 분할 레지스터 없이 규격 범위 내에서 MCU를 사용할 수 있다.
▲그림6 : 전압-분할 레지스터가 없는 경우