Open-Collector를 이해 하기 위해서는 우선 내부에 사용되는 BJT(Bipolar Junction Transistor)의 동작 방식을 이해해야 한다.
그림과 같이 BJT의 경우 베이스쪽에 걸리는 전압에 따라 컬렉터에서 이미터 쪽으로 전류가 흐르게도 흐르지 않게도 할 수 있다.
여기서 베이스쪽을 MCU의 Output에 연결하고 콜렉터쪽을 MCU외부 GPIO핀으로, 그리고 이미터쪽을 GND에 연결한 구조가 Open-Collector이다.
BJT대신 MOSFET소자를 사용한게 Open-Drain이고 이 둘은 소자의 차이이외에 동작방식은 동일하다.
위의 그림에서 Signal쪽이 MCU의 출력쪽이고 MCU는 이 출력을 통해 콜렉터에서 이미터쪽으로 흐르는 전류를 제어할 수 있다.
하지만 이 상태로는 MCU외부로 나가는 GPIO핀에는 전압이 걸리지 않는다.단순히 콜렉터와 이미터간 연결만 연결만 제어가 될 뿐이다. 따라서 GPIO핀에 LED같은 소자를 연결해도 아무런 동작을 하지 않는다.
그렇다면 왜 이런 구조를 사용하는 것일까?
Signal만 MCU에서 제어하고 나머지 회로는 직접 구현해서 사용하라는 의미다.
일반 Push-Pull출력인 경우 대부분의 MCU는 3.3V전압이 출력되는데 만일 외부 회로가 다른 전압을 사용하거나 MCU출력보다 큰 전류를 사용하는 회로인 경우 MCU출력을 그대로 사용할 수 없다.
따라서 MCU내부에서 Signal은 제어를 하지만 그외 나머지 것들은 외부에서 직접 만들어 쓰라는 것이다.
그래서 Open-Collector(Drain)는 미완성 회로이므로 나머지는 직접 상황에 맞게 구성해서 사용할 수 있게끔 하는 회로이다.
위의 그림과 같이 오른쪽 외부장치의 입력이 왼쪽 MCU의 출력전압과 다를 경우 Open-Collector구성으로 외부 전원을 추가해 구성할 수 있다.
왼쪽 MCU의 시그널 상태에 따라 콜렉터-이미터간 연결이 되어 Vext전압이 그대로 GND로 흘러 Low상태로 되고, 콜렉터-이미터간 연결이 되지 않아 Vext전압이 그대로 Pull-up되어 High상태가 된다.
이때 외부에는 Pull-up/Pull-down 회로를 직접 구성해서 사용하면 된다.(그렇지 않을 경우 Vext-GND간 과전류가 발생할 수 있다.)
다음으로 Open Drain방식을 보기위해 STM32의 GPIO Output포트의 회로도를 보자.
STM32에서 Push/Pull 방식의 Output은 P-MOS, N-MOS둘다 사용하지만 Open Drain방식에서는 아래 N-MOS만 사용된다.
N-MOS의 경우 Gate에 걸린 전압이 HIGH일때 Source와 Drain이 연결되고, LOW일때 Source와 Drain의 연결이 끊어진다.
P-MOS는 그 반대로 Gate에 걸린 전압이 HIGH일때 Source와 Drain의 연결이 끊어지고, LOW일때 연결된다.
'임베디드 > 전자 일반' 카테고리의 다른 글
1. [전자일반] Pull-up, Pull-down 저항 (0) | 2024.07.25 |
---|