제임스딘딘의
Tech & Life

개발자의 기록 노트/Basis Circuit

풀업 저항, 풀다운 저항 (Pull-up, Pull-down)

제임스-딘딘 2016. 12. 16. 00:28

풀업 저항, 풀다운 저항 (Pull-up, Pull-down) - 입력단 회로

MCU나 임베디드 시스템을 구성할 때, 입력부분을 설계해야 하는 경우가 있다. 여기서 입력 부분이라 하면, 버튼이나 스위치 같은 물리적인 입력이 발생하는 부분을 말한다. 이때, 풀업 (Pull-up) 저항을 달거나 풀다운(Pull-down) 저항을 달게 된다.


왜 그런지 이유를 알아보자. 이 저항이 무슨 목적을 가지고 있는지를 이해하면 된다.

그리고 더 나아가, 이 저항을 얼마짜리를 달아야 하는지, 저항값 계산 방법을 알아보자.





플로팅 상태

풀업 / 풀다운이 왜 필요한지를 이해하려면 먼저 플로팅(Floating) 상태라는 것을 알면 쉽다.

플로팅은 '떠있다, 부유하는, 유동적인' 등의 뜻이다. 

디지털회로에서 플로팅 상태 라고하면, '알수없는 상태' 라고 이해하면 된다.


좀더 쉽게 설명해보자. 아두이노, AVR Atmega, Cortex-M3, 라즈베리파이 등등... MCU좀 다뤄봤다 싶은 분이라면 GPIO 핀을 떠올려 보자.

정상적인 상황이라면 어떤 GPIO핀을 딱 잡고, '너 무슨상태야?' 했을 때, '0(Low)이야' 아니면 '1(High) 이야'이라고 대답해야 한다.


그런데, '나... 잘 모르겠는데?' 라고 대답하는 녀석. 이녀석이 바로 플로팅 상태이다.

어리버리한 녀석.


왜 이런 녀석이 등장하느냐? 

전원 5V를 인가하는 MCU를 가정해보자.

0V~0.8V 쯤은 Low로 하고, 2.8V~5V 쯤은 High로 하는 MCU라고 가정해보자.

그러면 0.8V 초과 ~ 2.8V 미만의 애매한 전압이 핀에 들어가면? 이 MCU는 그 핀을 플로팅 상태라고 인식하게 될 것이다.


입력단에 풀업 저항이나, 풀다운 저항을 두지 않는다면, 이런 플로팅 상태를 겪게 될지도 모른다.


그리고 들어가기에 앞서 일단 기억할 것이 있다. 

왜 이렇게 기억할게 많냐? 라고 생각하지 말고 기억하자. 피가되고 살이된다. 몸매관리때문에 살찌기 싫으면 까먹던지.


1. 지금 설명하는 풀업 저항, 풀다운 저항은 모두 입력단 회로에 대한 것이다.

2. 입력 스위치가 OFF 일 때, 플로되는 걸 막는게 목적이다.

3. 이름에서 풍기는 스멜을 느끼자.

4. 풀업은 '스위치가 OFF일때 플로팅에 빠져 허우적 거리는 어리버리한 녀석을 High 상태로 끌어올리는(Pull-up) 저항이다.

5. 반대로, 풀다운은 '스위치가 OFF일때 플로팅에 빠져 허우적 거리는 어리버리한 녀석을 Low 상태로 끌어내리는(Pull-down) 저항이다.


오케이. 시작하자.


1. 풀업(pull-up) 저항

논리적으로 H-레벨 상태를 유지하기 위해 신호의 입력/출력 단자와 전원(Vcc) 단자 사이에 접속하는 저항


 Switch

 ON

 OFF

 (a) 그림

 0V (Low)

 Floating 

 (b) 그림

 0V (Low) 

 +5V (High) 



그림1의 Logic은 입력을 low로 만들어놓은 그림이다. 

여기서(a)와 (b)의 차이가 바로 풀업 저항의 의미가 된다.


일단, (a) 그림을 보자.

스위치가 ON되면 전원으로부터 접지라인까지 바로 연결이 되니까 이 Logic은 Low가 인가가 된다.

그런데 스위치가 OFF 될 경우는 어떠한가? 입력 상태가 어떤 상태인지 알 수가 없다. 

당장은 High로 보일 수 있지만, 정전기라던지, 전압에 순간적인 변화가 생기면 Low로 바뀔 수도 있는 애매한 상황이다. 이런 경우를 floating 되어있다고 한다. 

floating 상태에서는 입력 레벨이 어떤지 알 수 없기 때문에(즉, Low일수도 있고 High일수도 있고 왔다갔다 할수도 있고...) Logic Device가 동작하는데 문제가 생길 수 있다.

왜냐하면 알 수 없는 입력이 들어왔기 때문에 알 수 없는 결과값이 나오게 되기 때문이다.

이런 floating 되어 있는 입력 상태를 없애주고자 고안된 것이 바로 풀업 저항(Pull-up)이다.

풀업 저항의 주 목적은 바로 스위치가 OFF 될 때가 된다. 


이 풀업 저항을 이해하려면 (b) 그림을 유심히 살펴보자.


(b)그림을 보면 (a)그림과는 다르게 풀업 저항을 통해서 디지털 회로가 전원 +5V로 연결이 되어 있기 때문에 스위치가 OFF되더라도 입력값의 혼동이 없다. 즉, 스위치가 OFF되면 High 상태가 된다. 이른바 알려진 입력 상태가 되는 것이다.

스위치가 ON되면 Low 상태가 된다. 버튼이 GND와 연결되어 있어서, 전원으로부터 전류가 디지털 회로로 가지않고 모두 버튼쪽으로 흘러가게 되기 때문이다.


그리고 풀업 저항이 없으면 스위칭 시 과도한 전류가 흐를 개연성이 많기 때문에, 디바이스의 회로에 안 좋은 영향을 끼칠 수가 있다. 

이런 문제도 풀업(또는 풀다운)저항으로 해결할 수가 있다.




2. 풀다운(pull-down) 저항

스위치가 OFF될 때, 논리적으로 Low레벨 상태를 유지하기 위해 신호의 입력/출력 단자와 접지 단자 사이에 접속하는 저항

풀 다운은 풀업과는 반대로 연결되어 있다.

즉, 스위치와 저항의 위치가 풀업과는 다르게 바뀌어 있다.

그래서 스위치가 OFF되면 Low 상태가 되고, 스위치가 ON되면 High 상태가 된다. 일반적으로 MCU의 입력부분에는 저항이 달려있는데, 풀업, 풀다운 저항보다 아주 아주 큰값이므로 전압분배 법칙에 의해 대부분의 전압이 MCU의 입력부분으로 흘러 High 상태가 된다.




 Switch

 ON

 OFF

 (a) 그림

 +5V (High)

 Floating 

 (b) 그림

 +5V (High) 

 0V (Low) 



저항의 크기 계산

이러한 스위치 입력회로에서 만약 풀업 저항이나 풀다운 저항을 사용하지 않고 직접 +5V 또는 GND 단자에 스위치를 접속하면?

스위치를 눌렀을 때 그대로 단락되어 과전류가 흐르게 될 것이다.


그러므로 저항의 크기를 결정할 때는 입력신호와 관련되기 보다는 스위치를 눌렀을 때 형성되는 폐회로에 흐르는 전류의 크기를 감안하여 결정하면 된다. 일반적으로 이 전류의 크기는 수 mA가 되도록 하며, 따라서 보통 수 KΩ 정도의 저항을 사용하면 된다.


정리

일반적으로 풀다운 보다는 풀업이 노이즈에 강하다.

그래서 풀업을 더 많이 사용한다.


그리고 TTL과 같은 디지털 논리소자는 구조적으로 입력신호가 플로팅 상태이면, H상태와 같이 동작하도록 설계 되어 있다. 하지만 실제로 회로를 이렇게 사용하면 잡음에 매우 취약해지는 등의 부작용으로 회로시스템이 불안정해진다.