Tuesday, September 30, 2014

[반도체기초] 풀업(Pull-Up) 풀다운(Pull-Down) 저항

앞선 포스팅에서 약속한대로 이번에는 회로 설계시 많이 사용되는 풀업(pull up)과 풀다운(pull down)에 대하여 설명해보도록 하겠다.

먼저 풀업과 풀다운 설명 전에 왜 우리는 풀업과 풀다운이 필요한가 알아보도록 하자.
이전에 우리는 Unknow에 대하여 배웠는데 '0'이 될 수도 있고 '1'이 될 수도 있다고 설명하였다. 그런 회로의 상태를 플로팅(floating) 되어 있다 라고 한다.
영어 사전에 플로팅(floating)이라고 찾으면 '떠있는' 이라는 뜻으로 해석된다. 말 그대로 회로가 떠있는 상태로 외부의 어떤 상황에 따라 '0'이 될 수도 있고 '1'이 될 수도 있다.


필자의 경험으로 설명하자고하면 대학교때 8개의 LED가 달린 8051 라인트레이서 펌웨어를 코딩하고 있었는데 LED가 필요 없어 LED와 연결된 8개 포트를 입력으로 한 상태로 펌웨어를 다운로드 했더니 8개의 LED들이 어떤건 켜져 있고 어떤건 꺼져있는게 아닌가?
왜그러지 하면서 손으로 만졌더니 8개의 LED가 랜덤으로 꺼졌다 켜졌다 하더라. 그 당시에는 왜 그러지? 하면서 너무나 신기했던 기억과 함께 내가 펌웨어를 잘못 코딩 했거니 하고 8개 LED 포트를 출력으로 바꿔 LED를 전부 OFF 시킨 후에 진행 했던 기억이 있다.
이것이 바로 floating으로 인한 오작동 이였다.

위의 그림대로 MCU의 포트를 입력으로 전환하면서 Hi-Z 가 되었고 그것으로 인해 하드웨어 회로가 잘못 설계되어 가운데 회로가 플로팅되어 버린 것이다. 이것을 해결 하기 위한 방법으로 풀업(pull up) or 풀다운(pull down)으로 회로를 추가하여 전체 회로가 플로팅(floating) 되지 않도록 방지해주는 것이다.



따라서 회로 설계시 회로가 플로팅(floating) 되지 않도록 설계하는 것이 전체 회로의 오동작을 방지 할 수 있는 좋은 회로이다.

풀업 풀다운 사용 이유
1. 입력 일 때 플로팅 상태를 방지하고 H, L로 올바르게 인식하기 위해서
2. 입력 일 때 입력신호를 사용하지 않으나 나중에 사용하려는 경우
3. 출력 일 때 오픈 컬렉터, 오픈 드레인 회로일 경우 기준 전압을 위한 회로로 사용
4. 출력 일 때 출력 전류를 증대 시키려는 경우
5. 초기값을 주기 위해서

5 comments :

  1. 혹시 입력으로 전환하면 왜 hi-z 가 되는지 알 수 있을까요??

    ReplyDelete
    Replies
    1. 플러스 위키피디아에 찾아보면 hi-z 와 floating을 같은 선상에서 설명하고 있는데 floating은 unknown state x 라 하시지 않았나요...?
      https://en.wikipedia.org/wiki/High_impedance
      여기서 나옵니다.

      Delete
    2. 앗 위에 hi-z를 시키는 이유는 output을 끊어버리기 위함이군요. three state buffer처럼요.
      https://en.wikipedia.org/wiki/Three-state_logic

      Delete