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

설계 된 회로를 보면 풀업(Pull up), 풀다운(Pull down) 되어 있는 GPIO 회로를 자주 볼 거예요. 혹은 MCU 내부에 풀업(Pull up), 풀다운(Pull down) 되어 있다는 내용도 자주 접하게 되죠.

 

그럼 풀업(Pull up), 풀다운(Pull down)에 대해 자세히 알아볼까요?

 

풀업(Pull up), 풀다운(Pull down) 을 직역하면 

 

풀업(Pull up) : 위로 끌어 당기다

풀다운(Pull down) : 아래로 끌어 당기다.

 

사실 위 내용이 핵심 내용이예요. 풀업(Pull up), 풀다운(Pull down)은 저렇게만 알고 있으셔도 50%는 이해한겁니다.

 

Θ 왜 풀업, 풀다운 저항을 사용하는가?

만약 아래와 같이 회로가 구성되어 있다고 가정해볼꼐요.

 

사용자는 SW를 이용하기 위해 아래와 같은 회로를 구성했어요. 

그리고 SW를 눌러서 잘 동작되나 확인을 해보겠죠. 그런데 MCU 내부에서 SW의 상태를 정상적으로 읽을 수가 없었어요....왜 그런걸까요?

 

사용자가 SW를 연결(Short)시켰다면 MCU 내부가 GND와 연결이 되서 MCU GPIO로 Low로 정상적으로 떨어질꺼예요.

그런데 사용자가 SW를 연결시키지 않았다면(OPEN) MCU GPIO가 과연 HIGH로 유지될까요?

 

아닐껍니다. 연결시키지 않는 상태(OPEN)에서는 High, Low 둘 중 어느 값이 들어올지 미지수이기 때문이예요.

이를 두고 floating 상태에 있다라고 합니다.

Floating 상태란?
디지털 신호에서는 High 또는 Low , 즉 0 또는 1로 나뉘게 되지만 실제 회로는 그렇지 않는 경우가 많아요.
그래서 디지털 신호에서는 High, Low가 아닌 상황을 Floating으로 정의를 해요. Floating 상황에서는 어떠 미세한 환경에도 영향을 받을 수 있기 때문에 오작동을 발생시킬수 있어서 주의해야 되요.

 

디지털 신호에서는 floating 상태와 같은 애매모호한 상태를 굉장히 싫어해요. 그래서 확실하게 풀업(Pull up), 풀다운(Pull down) 저항을 달아주죠. 애매한 상태를 High 또는 Low로 끌어올려주고 끌어내려주는 겁니다.

 

Θ 풀업은 어떻게 사용하는가?

 

사실 그렇게 어렵지 않아요. 위에서 구성한 회로에 3.3V 전압을 끌고 와서 저항이랑 같이 붙여주면 됩니다.

그러면 SW를 연결시키지 않은 상태(OPEN)에서는 3.3V 전압이 들어가 MCU에서는 High로 인식합니다.

 

즉, floating 상태를 High Level로 끌어올리는 역활이 풀업(Pull up)입니다.

 

 

Θ 풀다운은 어떻게 사용하는가?

 

풀업(Pull up) 회로와 반대로 GND를 끌고 와서 저항이랑 같이 붙여주면 됩니다.

그러면 SW를 연결시키지 않은 상태(OPEN)에서는 GND 전압이 들어가 MCU에서는 Low로 인식합니다.

 

즉, floating 상태를 Low Level로 끌어 내리는 역활이 풀다운(Pull down)입니다.

 

 

 

Θ 그럼 풀업, 풀다운 저항값을 어떻게 계산하죠?

 

보통 풀업(Pull up), 풀다운(Pull down) 저항으로는 10k ~100kΩ를 많이 사용합니다. 하지만 더 정확한 계산을 위해서는 아래와 같은 공식을 사용해요.

 

 

가령 위의 회로에서 전류를 1ma 만 흘려보내고 싶으면 3.3K 옴의 저항을 풀업(Pull up), 풀다운(Pull down) 저항으로 사용해주면 좋아요.

 

 

이렇게 풀업(Pull up), 풀다운 저항과 저항계산법까지 알아봤는데요. 

결국 기억해야되는건 3가지뿐!!

 

1. 풀업은 floating을 Hihg로 끌어오리는 역활

2. 풀다운은 floating을 Low로 끌어내리는 역활

3. 저항계산은 VCC / 회로에 흘려보내고 싶은 전류

 

꼭 기억합시다.

반응형