코딩공부

풀업저항, 풀다운저항 본문

회로관련

풀업저항, 풀다운저항

초보코더 2017. 9. 3. 16:16
반응형

아...글을 한번 날려먹으니까 정말 쓰기싫다... 일단 다시 시작해보자면, 아직 풀업저항, 풀다운 저항을 완전히 이해했다고 하기는 어려우나 다음에 보고서 내가 이렇게 생각했었구나 하기 위해서 글을 우선 써본다!


글의 신뢰도는 정말 낮은 수준이니까 보고 아니 이거아니잖아요ㅡㅡ 하지는 말아주셨으면... 알려주시는 내용이나 질문은 다 환영입니다!! 


 1. Floating 상태

우선 Floating 상태에 대해서 이야기 해보자면 MCU의 핀은 신호가 HIGH일 경우 1, LOW일 경우 0의 상태가 된다. (사실 여기서 아직 헷갈리는건 Input과 Output 둘 모두에 해당하는 얘기인가? 지금까지 보면 Input에 관한 이야기 인 것 같다. 답을 알게되면 수정예정) 아래 알았다!!부터 참조
그런데 만약 신호가 애매하다면? High도 Low도 아닌 신호, 이게 바로 Floating 상태이다. 

내가 사용하는 Atmega128을 예로 들어보자. 

Atmega128 데이터시트의 318페이지이다. 맨 위를 보자. 사실 맞는지는 아직 의문이다.

VIL의 경우 Input Low Voltage except XTAL1 and RESET pins 이니까 XTAL1 즉 크리스탈과 RESET 리셋 핀을 제외한 Input Low Voltage는(그 두개를 빼고 나머지라는건 GPIO의 이야기가 아닐까 싶은데... 일단 이것도 좀 더 알아봐야 겠다.) 두개 빼고 나머지 맞다!


알았다!!!! Atmega128의 Port A등에는 Pull-up 저항이 이미 내재되어 있다! 그래서 신호가 나갈때(Output을 해줄때) 전압이 Floating상태가 아닌 정상적인 값으로 나간다! 정상적인 값의 기준은 표에 나와있는대로 Low값을 보내주면 0.7V미만으로 나가고 High값을 보내주면 4.2V이상으로 나간다!! 이해했다!!!


그래 그렇다면 이제부터 다시 Floating 상태에 대해 설명하겠다!

Floating상태란 신호를 보내줘야할 곳이 전원에도 그라운드에도 연결되지 않은 상태, open input상태에 있어서 MCU에서 받는 값이 얼마인지 모르는 상태이다! 조금 말이 다른것 같은데 Low도 High도 아닌 VIL즉, 0.2Vcc이상 VIH 즉, 0.6Vcc이하인 저항값이 걸릴 수 있게 된다는 것이다! 큰 문제다! 이렇게 될 경우 정상적인 작동이 불가능 하므로 pull-up 또는 pull-down 저항을 쓰는것이다! 


그림으로 floating 상태를  보자.

그림판짱짱ㅎㅎ 그림상에 보이는 스위치가 Open되어 있을경우 MCU의 핀에는 전원도, 그라운드도 연결되어 있지 않은 상태이므로 floating status가 되는 것이다! 만약 스위치가 closed된다면 MCU의 Port는 GND에 연결되어 있으니 0v를 받게 되겠지만 스위치가 Open되어 있을때 floating 상태에 빠지게 되므로 Pull-up 또는 Pull-down 저항을 써 주어야 한다.


지금부터는 본격적으로 풀업저항, 풀다운 저항에 대해 알아보자.


참고로 위와 아래에 나오는 모든 회로그림들은 MCU에 적용되는 전원(+5v)와 GND는 제외하고 그려졌다. 있다고 생각하고 봐주면 되겠다!

 2. Pull-up 저항

Pull-up 위로 당긴다는 뜻이다. 그렇다면 회로상의 위는 어디일까? 전위를 생각해보면 당연히 GND의 반대방향이다. 즉, Pull-up 저항이란 신호의 값을 위로(GND의 반대방향으로) 끌어 올려준다는 의미이다! 그림을 우선 보도록하자.


이번엔 ORCAD를 이용해서 그려보았다. 2년만에 했더니 이 간단한거 그리는데
VCC랑 GND를 못찾아서 20분은 걸린거같다... 어쨌든 그림상에 보이는 R1 저항이 바로 PULL-UP 저항이다! 이제 설명을 해 보겠다. 


Pull-up 저항은 위에서 얘기한것처럼 애매할 수 있는 값(floating 상태에있는 값)을 Pull-up 해주는, 끌어올려서 5V로 만들어주는 역할을 한다. 스위치가 열려있을때에는 MCU와 Vcc(+5V전원) 사이에 전위차가 없으므로 5V의 신호가 MCU의 Port로 입력된다. 그렇다면 스위치가 닫혀있을때에는 어떨까? 스위치가 닫힐경우 대부분의 전류는 GND쪽으로 흐르게 되어 Port에 입력되는 값은 LOW, 0V에의 신호가 들어가는 것이다! 

그렇다면 이번에는 풀업저항이 없다고 가정하고 회로를 다시한번 보도록하자.


이 그림과 같은 상황에서 스위치가 닫히면 어떻게될까? 회로상에 저항은 없는데 전압과 GND는 설정되어 있으므로 매우 큰 전류가 회로상에 흐르게 될 것이다(쇼트난다). 

이 그림은 그러면 Vcc를 업애면 되지 않을까!? 하는 생각에 나온 그림이다. 물론이런 회로의 경우 우선 스위치가 closed되었을 경우를 생각하면 Port에는 GND값, 0V의 값이 들어갈테니 문제가 없어 보일수 있지만, 스위치가 Open상태일때 MCU의 Port에는 +5v도, GND도 연결되어 있지 않으므로 floating상태에 빠지게된다.(그러면 안된다.)


풀업저항을 사용함으로써 쇼트가 날 수 있는상황도 방지가 되고 MCU에 들어가는 Input신호도 HIGH와 LOW 두가지로 명확하게 만들어 준다!


 3. Pull-down 저항

이번에는 Pull-down 저항이다. Pull-up의 반대방향이므로 신호값이 애매할때 (floating상태)일때 신호 값을 아래로(GND)방향으로, 0V로 만들어주는 것이다! 그림을 보도록 하자.

이 그림이 풀다운 저항이 적용된 회로이다. 그림에서 SWITCH가 OPEN되었을때 MCU의 Port는 GND에 연결되어 있으므로 LOW신호, 0V가 MCU로 입력된다고 생각 할 수 있다. SWITCH가 CLOSED되었을 때에는 물론 HIGH신호, 5V가 MCU로 입력되는 것이다. 그렇다면 이러한 풀다운저항이 적용되지 않았을 경우를 생각해보자.

첫번째 경우이다. 어디서 많이 보던 경우 아닌가? 위의 Pull-up 저항에서 보던 경우와 생긴것이 거의 비슷하다.(당연하지만) 이 때 SWITCH가 Open상태라면 MCU의 Port는 GND에 연결되어 있으므로 Low신호, 0V의 값이 입력된다. 그렇다면 SWITCH가 closed된 상황을 생각해보자. 회로는 연결되어있는데(전위차는 존재하는데) 회로상에 저항이 없으므로 쇼트가 날 것이다!


두번째 경우를 보자. 

이제 익숙할 것 같으니 바로 시작하자. SWITCH가 Closed될 경우에는? Port는 5V가 연결되어 있으므로 High, +5V의 신호가 들어오게 될 것이다. SWITCH가 Open될 경우 Port는 +5V에도, GND에도 연결되지 못 한 상황이므로, floating 상태의 신호가 들어오게 될 것이다. 그러면 안된다!! 


이런 방식으로 풀다운 저항 또한 신호값의 모호함과 쇼트가 날 수 있는 가능성을 배제하게 해주는 역할을 한다.



 4. 정리


정리를 하기엔 솔직히 아직 긴가민가 한 부분들이 많을 것이다. 나 또한 그랬지만 전기, 회로적 기초 지식이 부족해서 생길수도 있으니 기초 지식을 몇가지 설명하겠다!

우선 MCU의 각 핀은 어느 정도 저항값을 가지고있다. 이 저항값은 

사진에서 보다시피 I/O Pin들을 기준으로 20~50kΩ의 값을 가진다. 그런데 회로상에 사용하는 저항은 내부 회로에 흘러야 할 전류값을 기준으로 결정되는데 일반적으로 수 kΩ정도의 값이므로 I/O Pin의 저항이 훨씬 큰 값을 가지고 있다고 할 수 있다.


두번째, 스위치는 매우 작은 저항값을 가지고있다!(무시해도 될정도)


세번째, 이걸 위해서 첫번째와 두번째에서 저항값에 대한 설명을 조금 했는데, 이유는 전류는 저항값이 적은 쪽으로 흐르려는 성질이 있어서 어느 한 쪽의 저항값이 0에 가까울경우 그쪽으로 거의 모든 전류가 흘러버린다! 


이 세가지를 염두에 두고 글을 다시 본다면 이해가 될지도 모르겠다! 사실 나도 다시 봐야할듯싶다 ㅎㅎ... 어렵다 풀업 풀다운저항... 


혹시 글을 읽고 잘못된 점이있으면 수정해줬으면 정말 감사할것 것 같고 궁금한 점이 있다면 같이 생각하면서 공부했으면 좋겠습니다! 글은 존댓말로 쓰면 나중에 읽을때 힘들것 같아 반말로 작성했습니다.ㅠㅠ... 불편하게 생각되시면 죄송합니다 ㅠㅠ... 우선 꼬박 이틀걸린 풀업, 풀다운 저항 정리는 여기까지!


반응형