반도체 공정

N-Channel Open Drain(Open Collector)와 Push-Pull 의 설명과 차이점!!

띠띠레오 2022. 6. 22. 20:43

오늘은 N-Channel Open Drain(Open Collector)와

Push-Pull 출력 신호의 차이에 대해서 알아보도록 하겠습니다.

 

"CMOS와 TTL의 High/Low Level 차이점"은 입력 신호에 대한 내용이었다면,

이번 시간에는 출력 신호에 대한 내용을 살펴봅니다.

N-Channel Open Drain(Open Collector)는 무엇인가?

일단 최근의 MCU와 다양한 IC 칩들은 대부분 CMOS 반도체 설계 공법으로 만들어진다고

지난 포스팅에서 말씀드렸습니다.

따라서 Open Collector라는 명칭보다 N-Channel Open Drain이라는 명칭을

출력 신호 회로에서 자주 보셨을 것이라 생각합니다.

일단 N-Channel Open Drain은 CMOS로 만들어진 IC 중 출력 회로의 구성이

N-Channel MOSFET과 GND가 연결된 상태로만 구성되어 있을 때

N-Channel Open Drain(CMOS의 N-Channel MOSFET이 Open Circuit으로 구성)이라고 합니다.

한편, Open Collector는 BJT(Bipolar Junction Transistor)로 만들어진 IC 중

출력 회로의 구성이 NPN BJT와 GND가 연결된 상태로만 구성되어 있을 때

Open Collector(BJT의 Collector가 Open Circuit으로 구성)라고 부릅니다.

아래의 그림은 CMOS로 만들어진 N-Channel Open Drain의 출력단 회로와

BJT로 만들어진 Open Collector의 출력단 회로입니다.

어떤 구성으로 N-Channel Open Drain과 Open Collector가 구성되는지 확인하시기 바랍니다.

 

Push-Pull은 무엇인가?

Push-Pull은 CMOS로 만들어진 IC나 BJT로 만들어진 IC에 상관없이 모두 Push-Pull 출력단 회로라고 부릅니다. Push-Pull 출력 회로가 CMOS의 MOSFET로 구성되어 있느냐, BJT로 구성되어 있는냐에 따라서 회로 구성만 살짝 바뀌고 명칭은 동일합니다. 아래의 그림은 CMOS와 BJT로 구성된 Push-Pull 출력단 회로입니다. 한 번 어떤 구성인지는 확인하고 넘어가도록 하겠습니다.

 

N-Channel Open Drain(Open Collector) 출력회로의 동작

위의 N-Channel Open Drain(Open Collector) 출력단 회로에서와 같이 Drain 혹은 Collector 핀이 IC의 외부로 곧장 나가게 구성되어 있습니다. 따라서 Push-Pull 출력단 회로와 비교해 볼 때, 미완성 회로임을 알 수 있습니다.

이에 따라, N-Channel Open Drain(Open Collector) 출력단 회로에서 MOSFET나 BJT를 일종의 스위치라고 생각하여 바라봤을 때, N-Channel MOSFET나 NPN BJT가 ON 되어었을 때는 IC 외부로 노출된 핀은 GND와 접촉되게 되지만, 그 반대의 경우인 OFF 되었을 때에는 동작상태를 알 수 없는 상태(Tri-State, Unknown State)가 되어버립니다. 즉 GND와도 연결되지도, 그렇다고 어디 VCC에 연결된 상태도 아닌 상태가 되어버리는 것이죠. 좀 더 쉽게 말하면 핀이 떠있다(Floating State)라고 할 수 있겠습니다.

따라서 N-Channel Open Drain(Open Collector)는 위의 출력단 회로만으로는 사용하지 않습니다. 바로 외부에 별도로 풀업 회로를 덧붙여서 회로의 상황에 맞게 적절히 풀업단을 원하는데로 조정하여 사용하기 위해서 N-Channel Open Drain(Open Collector)가 사용되는 것입니다. 단, IC의 데이터시트를 확인하여 최대로 외부에서 걸 수 있는 전압을 확인하셔야 합니다.

이런 N-Channel Open Drain(Open Collector)는 여러 방면에 이미 많이 적용되어져 있는데, 대표적으로 몇 가지의 예를 들면, 데이터 버스, 레벨시프터 등에 적용되어져 있습니다.

Push-Pull 출력회로의 동작

이번에는 Push-Pull 출력회로의 동작을 살펴보겠습니다. Push-Pull 출력단 회로를 보면 2개의 트랜지스터로 구성되어져 있는 것을 알 수 있습니다. 따라서 Push-Pull 출력회로의 이름인 Push는 P-Channel MOSFET 혹은 PNP BJT가 그 역할을 하고, Pull은 N-Channel MOSFET 혹은 NPN BJT가 그 역할을 담당합니다.

즉, 실제적인 동작을 설명드리면, Push 상태일 때에는 P-Channel MOSFET 혹은 PNP BJT가 IC 내부의 VCC 전압을 이용하여 IC 외부로 전류를 "밀어(Push)"내는 동작을 하고, Pull 상태일 때에는 N-Channel MOSFET 혹은 NPN BJT가 IC 내부의 GND와 연결되어 IC 외부의 핀으로부터 전류를 IC 내부의 GND 쪽으로 "끌어 당겨(Pull)" 놓는 동작을 합니다.

따라서 Push-Pull 출력단을 실제 DMM이나 오실로스코프 등으로 찍어보면, 출력 전압이 동작 상황에 따라서 0V 혹은 VCC로 나타나며 전압이 동작 상황에 맞춰 변화하는 것을 확인할 수 있습니다. 이 점은 N-Channel Open Drain(Open Collector)와 가장 극명하게 차이를 보이는 부분이라고 할 수 있겠습니다. 단, 어디까지나 출력으로 내보낼 수 있는 전압의 최대치는 IC 내부의 VCC 전압까지겠지요?

한편 Push-Pull은 정말로 광범위한 영역에 적용되어져 사용되고 있습니다. 특별한 경우가 아니라면, 거의 대부분의 IC들의 출력단 회로는 Push-Pull 출력단 회로로 구성되어 있으니 굳이 예를 들어서 설명하진 않도록 하겠습니다.

그래서 뭐가 중요한건데?

위에서 알아본 N-Channel Open Drain(Open Collector)와 Push-Pull 중 단연 중요한 부분이라고 꼽을 수 있는 것은 N-Channel Open Drain(Open Collector)입니다. Push-Pull은 High/Low Level 출력이 뭐 알아서 잘 되지만, N-Channel Open Drain(Open Collector)는 그렇지 못하기 때문이죠.

N-Channel Open Drain(Open Collector)은 동작전압이 낮은 MCU나 IC들이 자기 자신의 동작 전압보다 더 높거나 더 낮은 회로를 안정적으로 제어할 수 있도록 해줍니다. 단, 여기서 자기 자신의 동작전압 보다 더 높은 전압의 한계치는 무한정 높을 수 없기 때문에 사용하기 전 MCU나 데이터시트에 나와있는 내용을 천천히 살펴보아야 합니다.

앞으로는 외부에 별도로 구성한 회로를 제어하기 위해서 레벨시프터 IC나 그와 유사한 회로를 구성하기 이전에 사용하고 있는 MCU 혹은 IC에서 N-Channel Open Drain(Open Collector) 핀을 제공하는지 가장 먼저 검토하시기 바랍니다. 만약 N-Channel Open Drain(Open Collector) 핀을 제공한다면, 회로 외부에 부수적으로 붙는 부품의 BOM을 줄일 수 있으며, PCB Artwork 면적도 상당히 줄일 수 있으며, 양산 시 양산단가를 낮출 수 있으실 겁니다. 아래의 그림은 N-Channel Open Drain(Open Collector)를 사용하여 외부의 전원을 제어하는 회로의 예시 입니다.

 

STM32CubeMX에서 GPIO의 출력특성을 설정하다보면 Push pull과 Open drain 설정을 하게 되어있습니다.

이번에는 Push Pull부분과 Open drain에 대해서 알아보겠습니다.

먼저 Push Pull입니다.
Push Pull은 MCU 및 IC의 내부 전원을 이용하여 출력포트의 출력을 결정하는 것을 말합니다. 밑에 Push Pull회로의 그림을 참고하여 설명을 하겠습니다.

회로는 N-ch MOSFET과 P-ch MOSFET으로 구성이 되어있습니다. 입력을 0(LOW)로 설정할 경우 P-ch MOSFET만 작동하여 출력단자가 1(HIGH)가 됩니다.

반대의 경우 N-ch MOSFET만 작동하여 출력단자가 0(LOW)가 됩니다.

<Push Pull 회로>

이번에는 Open drain입니다.
Open drain의 회로는 아래 그림과 같이 구성이 되어 있습니다.
즉 MCU 및 IC내부의 전원을 사용하는것이 아닌 외부의 전원을 이용하는것이 Push Pull과의 차이점입니다.

외부의 전원을 사용하는 이유는 만약 MCU의 전원이 3,3V이고 외부 포트에 연결되는 외부장치가 5V인 경우 전압차이가 발생하는데 직접연결할때 문제가 발생할 수 있습니다. 그러므로 외부에 연결하는 외부장치와 전압을 맞춰 주기 위하여 사용합니다.

<Open drain (외부 부가 회로 구성이 안된 상태)>

<Open drain (외부 부가 회로 구성이 된 상태)>


MCU설정시 Push-Pull(푸쉬풀)과 Open-drain(오픈드레인) 차이점

 

왼쪽이 Push-Pull 입니다. 다른말로 CMOS라고도 하죠. C가 complementary의 약자로서  상,하(상보라고함)으로 된 형태를 말합니다. TTL에서는 이러한 구조를 토템플이라고도 합니다 그냥 상식으로 알아두세요...

 

왼쪽같은 형태는 프로그램에서 High(또는 1)을 주면 Vdd전압(5V)가 나옵니다. 그리고 Low(또는 0)으로 하면 0V가 됩니다. 대부분의 경우는 푸쉬풀로 설정하고 사용합니다.

 

반면에 오른쪽같은 형태는 위쪽부분이 없고, 그냥 Drain이 Open되어 있기때문에 Open Drain출력이라고 합니다. 이경우는 Low로 하면 출력은 푸쉬풀과 마찬가지로 0V가 됩니다. 하지만 High로 하면 아무것도 나오지 않습니다. 그냥 Open상태죠. 왜 이런출력형태를 사용하느냐...

↑오류 내용 수정, 반대의 개념으로 설명되어있음.

N채널 MOSFET의 경우 +전압이 걸리면[High] 걸리면 MOSFET이 ON됩니다. MOSFET이 ON이되면 OUTPUT의 전위는 0가 됩니다. (GND와 연결되므로)

N채널 MOSFET의 경우 -전압이 걸리면[Low] 걸리면 MOSFET이 OFF됩니다. MOSFET이 OFF가되면 OUTPUT의 전위는 아무것도 없습니다. (Floating상태)

따라서 Open-Drain이나 Open-Collector에서는 Pull up저항을 달아 줘야 됩니다.

 

주로 통신을 하거나, 출력전압을 바꾸고 싶을때 사용합니다. 가령 MCU는 5V인데 여기에 연결되는 IC가 3.3V를 받아야 한다면 푸쉬풀로 하면 5V가 들어가므로 IC에 무리를 줄수 있습니다. 이경우 Open Drain으로 하고 여기에 Pull Up저항을 달고 3.3V를 연결하면 0, 3.3V가 되므로 IC에 무리를 주지 않고 신호를 줄수 있죠.

 

두번째로 여러개의 Port를 묶어서 통신을 하는 경우를 생각해 봅시다. 여기서 모두 출력 Port라고 할때 어느것은 High고 어느것은 Low가 될수 있습니다 .이런경우 과전류가 흐르면서 Port가 파손될수 있습니다. 이럴때 출력을 Open Drain으로 해주고 Pull Up을 걸어주면 포트가 파손되는 것을 막을수 있습니다.

이렇게 연결하는 형태를 Wired OR라고 합니다. IIC통신의 경우 통신 포트는 모두 Open Drain으로 구성하여 사용하는 이유가 이때문입니다.

 

반대개념은 아니고, 그냥 필요에 따라 이렇게도 사용하고 저렇게도 사용할 뿐입니다.

참고하세요.

읽어주셔서 감사합니다
읽어주셔서 감사합니다

 

반응형