04
19

풀업, 풀다운 회로

(1) 부품과 조립 편의 도면을 자세히 보신 분들은 리셋 스위치가 좀 복잡하게 연결되어 있는 걸 보셨을 겁니다.

 

이렇게 연결되어 있죠. 아니, 스위치는 그냥 출력이랑 전원 사이만 있으면 껐다 켰다 되지 않나요? 꼬마전구 실험할 때는 그래도 됐잖아요!

 

플로팅 전압

이렇게 연결하면 안 되냐고요? 안 됩니다! 확실히 이 스위치는 닫히면 5볼트의 전원을 회로에 공급합니다. 하지만 열려 있을 때는 어떻게 될까요? 그냥 0볼트에 머물러 있을까요? 아닙니다. 열려 있는 회로 끝의 전압은 아무도 모릅니다. 이상적으로는 OUT과 접지 사이에 걸려 있는 회로에 아무런 전류도 흐르지 않기 때문에, (전압차) = (전류) * (저항의 크기)인 옴의 법칙에 따라서 전부 접지와 같은 전압, 즉 0볼트가 걸려야겠죠. 하지만 실제로는 회로에 정전기나 전파 신호 등에 의해 미세한 잡음이 발생합니다. 꼬마전구 같은 저항이 낮고 큰 전류를 소모하는 소자는 작동 안 할 수준의 잡음입니다. 하지만 전압차를 감지하는 반도체 소자는 저항이 무한대이거나 극히 큰 저항을 갖기 때문에, 미세한 잡음만 섞여도 전압 측정이 엉뚱한 값을 가리킬 수 있습니다. 이렇게 아무도 모르게 된 전압은 연결되지 않아서 공중에 떴다(float)는 뜻에서 플로팅 전압(Floating voltage)이라고 부릅니다. 그러니 확실하게 회로에 전압을 걸어야 합니다. 켜져있으려면 5볼트, 꺼져있으려면 0볼트에 연결하는 식으로 말이죠.

 

단극쌍투 스위치

이건 단극쌍투(SPDT, Single Pole Double Throw) 스위치입니다. 스위치가 연결되거나 연결되지 않거나가 아니라, 한쪽 접점에 연결되느냐 다른쪽 접점에 연결되느냐인 스위치이죠. 이렇게 하면 일단 끄거나 켰을 때 어느 한쪽에 확실히 연결되어 있다는 점이 보장되었습니다. 그럼 이게 유일한 방법일까요? 스위치 구조가 복잡해졌는데요... 게다가 스위치가 전환되는 순간 짧게나마 플로팅 전압은 발생합니다.

방법이 있습니다. 저항기 하나만 있으면 됩니다!

 

좌: 풀업 회로, 우: 풀다운 회로

왼쪽의 회로는 풀업 회로, 오른쪽의 회로는 풀다운 회로입니다. 어떻게 동작하는지 한번 봅시다.

풀업 회로(Pull-up)에서 스위치가 열려 있을 때 출력 단자는 5볼트 전원과 사이에 저항기를 두고 연결됩니다. 출력단에 연결된 회로의 저항은 대부분의 경우 풀업 회로의 저항보다 매우 크기 때문에 여기서는 계산의 간편함을 위해 무한대라고 가정합니다. 그러면 출력 단자와 전원 사이에 전류가 흐르지 않기 때문에 저항기에 아무 전류도 흐르지 않고, 따라서 저항기 양단의 전압차는 0볼트입니다(옴의 법칙, 전압차 = 전류 * 저항!). 즉 스위치가 열려 있을 때 출력 전압은 전원과 같은 5V입니다.

스위치가 닫히면 어떻게 될까요? 출력 단자와 접지 사이에 아무 저항도 없이 연결되었기 때문에 출력 전압은 0볼트가 됩니다. 이때는 저항기 양쪽 전압이 우리가 설정해 준 전압으로 고정되기 때문에 저항기에 약간의 전류가 흐릅니다.

즉 풀업 회로는 스위치가 열리면 전원의 전압이, 스위치가 닫히면 접지(=0볼트)가 출력됩니다. 열려 있을 때 회로의 전압을 전원 전압으로 끌어 올린다(Pull up)는 의미에서 회로 이름이 붙었습니다.

 

풀다운 회로(Pull-down)는 정확히 반대로 동작합니다. 스위치가 열려 있을 때 출력 단자는 접지와 사이에 저항기를 두고 연결됩니다. 출력단에 연결된 회로의 저항은 무한대라고 가정합니다. 저항기에 흐르는 전류가 없기 때문에, 저항기 양단의 전압차는 0볼트이고, 출력은 접지와 동일한 상태가 됩니다.

스위치가 닫히면 출력 단자와 전원 사이에 저항이 없기 때문에 출력의 전압은 전원과 동일합니다. 이때도 저항기 양쪽엔 고정 설정된 전압이 걸리기 때문에 저항기에 약간의 전류가 흐릅니다.

정리하면, 풀다운 회로는 스위치가 열리면 접지가, 스위치가 닫히면 전원의 전압이 출력됩니다. 열려 있을 때 회로의 전압을 접지로 끌어 내린다(Pull down)는 의미에서 이름이 붙었습니다.

 

 

풀업 저항이 너무 큰 경우.

풀업(혹은 풀다운) 저항은 약 1k ~10k옴을 쓰는 편이 좋습니다. 저항이 크면 클수록 흐르는 전류의 크기가 작기 때문에 소모하는 전력은 줄어들지만, 지나치게 큰 것도 좋지 않습니다. 풀업 저항이 출력단에 연결된 회로의 저항값과 같은 경우를 생각해 봅시다. 저항과 회로는 직렬 연결되어 있기 때문에 두 부분에 흐르는 전류의 크기는 같습니다. 따라서 옴의 법칙에 따라 두 회로에 걸리는 전압차의 크기도 같아집니다. 다른 말로, 출력에 걸리는 전압이 전원의 전압이 아니라 전원의 2분의 1이 됩니다! 이렇게 확실하지 않은 전압이 걸릴 수 있으므로 저항의 크기를 적당히 조절하는 것이 좋습니다.

 

디바운스

풀업, 풀다운만 해도 스위치를 끄고 켜는 것은 가능합니다. 하지만 약간 문제가 남았습니다. 스위치를 끄거나 켤 때, 접점끼리 확실히 닿지 않았는데도 전류가 통하는 탓에 빠르게 켜졌다 꺼졌다를 반복하는 현상이 발생해서입니다. 이 현상을 채터링(Chattering), 혹은 바운스(Bounce)라고 합니다.

 

채터링 발생 시 시간에 따른 전압 변화

단순히 껐다 켰다 하는 전구 같은 회로에서 채터링은 중요한 현상은 아닙니다. 어쨌건 켜지기만 하면 되는 일이니까요. 하지만 스위치가 몇 번 켜졌는지 세는 등 스위치가 켜지는 순간 작동하는 기능이 있을 경우 이 현상은 상당히 골칫거리입니다. 클릭을 한 번만 했는데 계속 더블클릭이 된다고 생각해 보세요.

이러한 채터링을 방지하는 수단을 디바운스(Debounce)라고 부릅니다. 디바운스는 하드웨어 회로로 되어 있을 수도 있고, 소프트웨어로 처리할 수도 있습니다. 여기서는 하드웨어로 처리하는 방법을 다루겠습니다.

 

디바운스된 풀업 회로.

가장 첫머리에도 달아 두었던 컴퓨터의 리셋 버튼에 연결된 회로입니다. 왼쪽은 앞에서 설명한 풀업 회로이고, 그 오른쪽에 병렬로 커패시터가 연결되었습니다. 이 커패시터가 채터링 현상을 방지해주는 이유는 무엇일까요?

커패시터는 전하(전기)를 저장하는 장치입니다(그래서 축전기라고 번역합니다). 저장한 전하의 양에 따라서 축전기 양쪽에 걸리는 전압은 달라집니다. 위의 회로에서 스위치가 열려 있을 때는 축전기가 5V와 사이에 저항을 두고 연결되어 충전됩니다. 축전기의 양쪽에 걸린 전압이 5V가 되면 축전기와 전원 사이의 전압차가 사라지므로 전류가 흐르지 않습니다. 스위치가 닫히면 축전기는 접지와 사이에 저항을 두고 연결되어 방전됩니다. 축전기의 양쪽에 걸린 전압이 0V가 되면 축전기와 접지 사이에 전압차가 사라져 전류가 흐르지 않습니다. 계속 열려 있거나 계속 닫혀 있다면 일반적인 풀업 회로와 같은 동작을 한다는 의미입니다.

하지만 스위치가 닫히는 순간, 혹은 열리는 순간에는 어떨까요? 스위치가 닫히는 순간에는 축전기의 양끝과 접지가 저항 없이 연결되기 때문에 즉시 전압이 0으로 떨어집니다. 그러나 스위치가 열리는 순간에 축전기의 전압은 한순간에 올라가지 않습니다. 전하가 저항을 거쳐 조금씩 충전되면서 서서히 올라갑니다. 이 특성이 채터링을 제거하는 데 중요한 역할을 합니다.

채터링은 빠르게 전압이 여러 차례 높은 상태와 낮은 상태를 오가는 현상입니다. 그리고 축전기가 병렬로 연결된 회로는 빠른 전압 상승을 느리게 바꿔주는 역할을 합니다. 즉 빠른 전압 변화를 느리게 만들어 줌으로써, 짧은 시간만 켜지는 채터링 신호가 회로가 작동하는 전압에 이르지 않게 해 줍니다. 많은 반도체 회로는 특정 전압 이하의 신호는 무시하기 때문입니다.

 

좌: 축전기가 없는 경우, 우: 축전기가 있는 경우

https://www.falstad.com/circuit/의 회로 시뮬레이션을 이용해서 스위치를 빠르게 껐다 켰다 할 경우의 전압 변화를 관측해 봅시다. 축전기가 없을 경우는 닫는 순간과 여는 순간 모두 바로 전압이 5V와 0V를 오가는 반면, 축전기가 달려 있을 경우 닫는 순간에만 바로 전압이 떨어지고 여는 순간에는 좀 느리게 전압이 오르는 것을 알 수 있습니다. 빨간 선이 회로가 작동하는 기준 전압이라고 하면, 왼쪽 회로는 여러 번 작동하겠지만 오른쪽 회로는 한 번만 작동하는 것입니다. 이것이 디바운스 회로의 작동 원리입니다.

 

정리

1. 회로가 연결되지 않아 열린 경우의 전압을 플로팅 전압(Floating voltage)라고 하며, 외부 잡음에 취약하다.

2. 플로팅 전압을 해소하기 위한 방법으로는 풀업(Pull up) 풀다운(Pull down)이 있으며, 전원 혹은 접지와의 사이에 저항기를 연결해 해결한다.

3. 스위치를 누르거나 떼는 순간 발생하는 짧은 켜짐과 꺼짐의 반복을 채터링(Chattering) 혹은 바운스(Bounce)라고 한다.

4. 채터링을 해소하는 방법을 디바운스(Debounce)라고 하며, 회로 연결 디바운싱으로는 커패시터(축전기)를 병렬로 연결하는 방법이 있다.

 

다음 시간까지 그럼 안녕!

 

참조

영문 위키백과 - Pull-up resistor

영문 위키백과 - Switch

COMMENT