본문으로 바로가기
728x90
반응형

GPIO을 세팅하다 보면 가끔 Push-Pull, Open Drain, Open Collector이란 단어들을 자주 접하게 됩니다.

 

이번에 GPIO를 살리다가 과연 Push-Pull, Open Drain, Open Collector이란 무엇일까??라는 생각을 하게 되어 정리하게 되었어요.

 

Θ Push-Pull, OPEN Drain, OPEN Collector이란 무엇일까?

 

PUSH-PULL, Open Drain, Open COLLECTOR을 각각 나눠서 확인해보죠!

 

먼저 PUSH-PULL 을 살펴봅시다.

 

PUSH-PULL은 회로를 구성할 때 BJT와 MOSFET 두 가지 경우가 있는데요. 두 경우 모두 PUSH-PULL 회로라고 합니다.

PUSH-PULL 용어 그대로 두 개의 BJT, MOSFET가 서로 밀어(PUSH) 내고 당겨(PULL) 주는 역할을 하기 때문이죠.

 

로직 회로에서는 BJT, MOSFET 모두 Switch 역할로 많이 사용하기 때문에 Switch 두 개가 달려있다 라고만 알고 있으셔도 돼요. 아래 그림처럼 말이죠.

 

SW1 스위치를 동작시키면 3.3V에 연결되어 Output Pin 쪽으로는 3.3V High Level이 출력되고

SW2 스위치를 동작시키면 GND와 연결되어 Output Pin 쪽으로 0V Low Level이 출력돼요.

 

실제로는 아래와 같은 BJT, MOSFET 소자로 구성되어 있어요.

즉, PUSH-PULL 는 내부에 Switch 2개가 logic high, logic low를 만들어 준다고 생각하시면 돼요.

 

이제 Open Drain, Open Collector을 살펴보죠.

사실 OPEN Drain이나 OPEN Collector는 원리가 동일해서 따로 구분하시지 않으셔도 돼요.

단지 MCU 내부에서 구성될 때 BJT의 Collector로 만들었느냐? MOSFET의 Drain으로 만들었느냐? 의 차이입니다.

 

Open Drain, Open Collector 방식은 PUSH-PULL과는 다르게 하나의 Switch로 동작합니다. 그래서 보통 반쪽짜리 회로라고도 합니다. 마찬가지로 아래 그림과 같다고 보시면 됩니다.

SW2 스위치를 Short 시키면 GND와 연결되어 Output Pin 쪽으로 0V Low Level이 출력돼요.

SW2 스위치를 Open 시키면 연결되어 있는 곳이 없어 Output Pin 쪽으로 floating state로 출력돼요.

 

실제로는 아래와 같은 BJT, MOSFET 소자로 구성되어 있어요.

 

즉, Open Drain, Open Collector 방식은 내부에 하나의 Switch가 logic low, floating state를 만들어 준다고 생각하시면 돼요.

 

Θ 그럼 왜 Open Drain, Open Collector 방식을 사용할까요?

 

보통 level converer로 사용돼요.

 

일반적인 MCU의 출력은 3.3V 예요. 그런데 외부 IC CHIP의 구동 Voltage 전압이 5V 일 경우 외부에 풀 업 저항을  달면 logic high 가 3.3V가 아니라 5V가 되어 IC CHIP을 구동할 수 있게 되죠.

 

위에서 SW2 스위치를 열면 floating state로 출력된다고 했는데 외부에 풀업 저항을 달면 5V logic high를 만들 수 있어요.

 

이렇게 외부에서 사용자 마음대로 조작할 수 있도록 만들기 위해 Open Drain, Open Collector 방식을 사용한답니다.

 

 

반응형