1. GPIO Input 모드에서 Pull-up, Pull-down Resistor가 필요한 이유
Pull-up, Pull-down Resistor가 필요한 이유를 설명하기 위해서는 Floating 상태를 알아야 한다.
디지털 신호는 High(1) 또는 Low(0)이지만 실제는 그렇지 않은 경우가 많다.
Floating은 0과 1이 명확하지 않게 펄럭거리는 상황을 말하며 정전기, 잡음에 의해서 오류가 생기는 것이 가능하다.
그림1은 Floating 상태를 보여준다. Input을 1로 받을지 0으로 받을지 모르기 때문이다.
즉, 확실한 전압차이가 나지 않아서 전류가 흐르는지 아닌지도 불명확하기 때문에 1과 0이 확실하게 구분되지 않는다. 그래서 Input을 명확히 하기 위해서 Pull-up, Pull-down 저항을 사용하여 회로를 구성한다.
2. Pull-up Resistor
Pull-up 저항은 전원 앞에 붙는 저항을 말하며, 보통 Pull-up 회로를 구성할 때 4.7k~10k를 사용하나 데이터시트를 참고해야 한다.
그림2는 Pull-up 저항을 단 회로이다.
스위치를 열면 5v가 저항 하나로 인하여 전류가 Input쪽으로 흐른다. 그러면 Input은 항상 기본값이 5v로 묶여있게 되어 1이다.
스위치를 닫으면 5v와 Input 모두 그라운드 쪽으로 전류가 흐르게 된다. 그러면 Input은 0이 된다.
이 상태를 Pull-up되었다 혹은 Pull-up상태로 만들었다라고 한다.
- 만약 Pull-up저항이 없다면 어떻게 될까?
그림3처럼 저항이 없다면 쇼트상태가 되어 엄청난 과전류가 흐른다. 그 결과 전선이 탈 수도 있고 MCU에도 타격이 간다.
그럼 과전류를 막기 위해 그림4처럼 5v를 제거한다면 어떻게 될까?
스위치를 열면 open상태(floating)가 되고 닫으면 0(LOW)이다. 그래서 이것은 보장된 1을 만들 수 없어서 써먹을 수가 없다.
3. Pull-down Resistor
저항을 그라운드 쪽에 붙여준다.
그림5는 스위치를 열면 MCU에서 전류가 그라운드 쪽으로 흐른다. 그러면 Input은 항상 기본값이 0이다.
스위치를 닫으면 5v가 MCU쪽으로 전류가 흐른다. 그러면 Input은 1이 된다.
- 만약 Pull-down저항이 없다면 어떻게 될까?
그림6에서는 쇼트상태가 되어 과전류가 흐른다. 즉, 전선 또는 MCU가 탄다.
그림7에서는 스위치가 열리면 open상태(floating)가 되고 닫으면 0(LOW)이다. Open 상태는 보장된 값을 얻을 수 없어서 마찬가지로 사용할 수 없다.
4. Pull-up Resistor를 주로 사용하는 이유
보통 Pull-up 저항을 많이 사용하는데 그 이유는 노이즈에 더 강하기 때문이다.
아무것도 연결을 하지 않으면(스위치 OFF 상태) 각종 노이즈나 주위 환경에 따라 수시로 상태가 변할 수 있다. 하지만 Pull-up저항은 스위치 OFF 상태일 경우 5v(HIGH)에 묶여있기 때문에 노이즈에 강하다. 따라서 일반적으로 Pull-down보다는 Pull-up을 더 많이 사용한다.
5. 실제 문제에 적용 사례
그림8은 Q25의 2번&GND(노란색 파형)과 VCC&GND(초록색 파형)를 오실로스코프로 측정한 것이다. 모든 GPIO모드를 Input으로 변경했음에도 TG3로 여전히 신호가 들어오고, 이로 인하여 Photo Coupler(PH3)가 동작하는 것을 확인했다.
문제는 전원을 키자마자 아무런 출력을 주지 않았는데도 Input모드가 floating되어 있기 때문에 신호가 들어오는 것처럼 동작한다는 것이다. 여기에는 Pull-up 저항을 달면 나중에 Output모드로 사용할 때 문제가 발생하기 때문에 Pull-down 저항을 다는 것으로 해결했다.
그림9는 Pull-down 저항을 연결한 뒤 그림8과 똑같이 오실로스코프로 측정한 것이다. 노란색 파형을 보면 TG3으로 신호가 들어오지 않는 것을 확인할 수 있고, 초록색 파형을 보면 VCC가 5V로 뜨면서 Photo Coupler(PH3)가 동작하지 않는 것을 확인할 수 있다.
<참고 자료>
https://www.youtube.com/watch?v=EepQaYWIEMM&list=PLz--ENLG_8TNjRg1OtyFBvUyV4PHaKwmu&index=9
'Hardware > H.W' 카테고리의 다른 글
H.W 글 목록 (0) | 2023.05.19 |
---|---|
Pull-down 저항 값 선택 (0) | 2023.05.19 |
오실로스코프 측정 시 주의사항 (0) | 2023.05.09 |
환류 다이오드 (0) | 2023.04.25 |
TRIAC 동작 원리 (0) | 2023.04.23 |