아날로그 회로

#11-1. 풀업, 풀다운 저항은 얼마를 달아야 할까?

알고보면재밌어 2023. 7. 27. 07:05
반응형

2023.07.13 - [아날로그 회로] - #11. 풀업, 풀다운 저항을 쉽게 이해해보자

 

#11. 풀업, 풀다운 저항을 쉽게 이해해보자

풀업 저항과 풀다운 저항은 정말 굉장히 많이 들어봤을 거에요. 회로 설계에 있어서 너무너무 기본이 되는 저항 입니다. 실무를 하다보면 자연스럽게 이해가 되는 내용이기도 하지만 처음 접하

analog-circuit-design.tistory.com

먼저, 풀업/ 풀다운 저항의 의미와 사용하는 이유에 대한 위 글의 내용을 보고 오시면 더 도움이 됩니다.

 

풀업/ 풀다운 저항을 사용하려고 보면 이 저항값을 얼마로 결정해야 할지에 대한 의문이 생깁니다. 풀업 저항이나 풀다운 저항이 연결되어 있으면 계속해서 전류가 흐르는데 이로 인한 전력 소모를 줄이기 위해서 큰 값으로 설정하는게 맞지 않을까? 라는 정도의 고민을 하게 됩니다. 하지만 풀업/ 풀다운 저항은 누설전류에 의한 전력소모 외 풀업(풀다운) 저항과 부하단의 전압 분배, 충방전 속도에도 영향을 미치기 때문에 마냥 큰 값으로 설정할수는 없습니다.

 

다시 한번 정리를 하면, 풀업 저항의 값을 선택할 때, 고려할 사항은 세 가지 입니다.

1. 누설 전류

2. 풀업(풀다운) 저항과 부하단 저항과의 전압 분배

  - 풀업 시 High를 유지할 수 있는지

  - 풀다운 시 Low를 유지할 수 있는지

3. 충방전 속도 (T = RC)

 

자, 하나씩 하나씩 풀어서 설명해 봅시다. 주로 풀업 저항을 많이 사용하므로 풀업 저항을 예로 들어서 설명해 보겠습니다. 첫 번째, 누설 전류 입니다. 그림 1과 같이 MCU의 입력 핀에 풀업 저항과 스위치를 구성합니다.

 

[그림 1. 풀업 저항과 스위치가 연결된 회로]

 

스위치가 ON 상태일 때, 전원 5V에서 풀업저항을 통해 접지 GND로 전류가 흐릅니다. 소모전력 P=V^2/R 이므로 풀업 저항 R 값을 크게 하면 누설 전류에 의한 소모전력을 줄일 수 있습니다. 예를들어, 풀업 저항 값을 100kohm으로 설정하면 소모전력 P=250uW가 되고, 1Mohm으로 설정하면 소모전력 P=25uW가 됩니다. 즉, 풀업 저항 값과 소모전력은 반비례 합니다.

 

[그림 2. 풀업 저항과 입력 임피던스에 의한 전압 분배]

 

자, 그런데 그림 2와 같이 임의로 선정한 MCU의 GPIO 핀의 입력 임피던스(Rin)가 1Mohm이라고 합시다.(실제로 MCU의 입력 임피던스는 IC마다 다르지만 보통은 100kohm에서 10Mohm 사이 입니다) 그러면 스위치가 OFF 일 때, 풀업 저항과 입력 임피던스의 전압 분배에 의해 VDD/2가 걸리는 상황이 발생합니다. 즉, 스위치 OFF 상태일 때 풀업 저항을 사용하여 입력 핀에 5V를 인가하려고 했지만 입력 임피던스와의 전압 분배로 인해 2.5V만 인가되게 됩니다. 다시말해, MCU 입력 핀에 High가 아닌 의도하지 않은 값이 입력되게 되죠. 풀업 저항은 입력 임피던스의 1/10 이하로 설정해야 안전하게 High를 인가할 수 있습니다. MCU의 datasheet에 나와있는 입력 임피던스 값을 보고, 입력 임피던스의 약 1/10 이하의 저항 값을 선택하면 됩니다.

 

마지막으로 그림 3과 같이 MCU의 GPIO 핀이 어떤 IC와 연결되어 있고, 고속 신호가 오는 라인이라고 가정해 봅시다. MCU의 입력 핀은 보통 MOSFET으로 이루어져 있고, Gate와 Source 사이의 기생 캐패시턴스가 존재하기 때문에 고속 신호 일 때는 신호의 감쇠가 발생합니다. 이 기생 캐패시턴스는 보통 수 pF정도 되기 때문에 대략 10pF으로 가정하고, 풀업저항(Rp)은 10kohm, 그리고 신호의 주파수를 1MHz라고 가정해 봅니다.

 

[그림 3. 고속 신호 일 때, 신호의 감쇠]

풀업 저항(Rp)이 연결된 노드에서 1MHz의 고속 신호가 흐를 때, 해당 노드의 시정수(t)는 Rp x Cp로 약 100ns가 됩니다. 즉, 100ns가 지났을 때, 신호의 크기는 5V x 63.2% = 3.16V가 되고 2t인 200ns가 지나면 5V x 86.5% = 4.33V, 4t인 400ns가 지나야 5V x 98.2% = 4.91V가 됩니다. 이를 그림으로 보면 아래 그림 4와 같습니다.

 

[그림 4. 1MHz 입력 신호일 때, 충전 속도]

 

이제, 풀업 저항을 20kohm으로 변경해 봅니다. 그러면 시정수(t)는 저항이 두 배로 증가했으니 200ns가 됩니다. 그림 5와 같이 1t인 200ns 일 때, 신호의 크기는 3.16V가 되고, 2t인 400ns일 때, 4.33V가 됩니다. 그러고나서 4t는 커녕 3t도 되기전에 입력 신호가 0으로 떨어집니다. 충전이 다 되지도 못한 상태에서 다시 방전이 되므로 신호의 크기를 꽤 많이 까먹는걸 알 수 있습니다. 따라서, 1MHz 신호일 때 풀업 저항은 10kohm 이상은 적합하지 않다는 것을 알 수 있습니다. 

 

[그림 5. 풀업 저항이 두 배 증가했을 때, 충전 속도]

그림 5를 보면 500ns에서 약 0.5V의 전압이 손실됨을 알 수 있습니다. 풀업(풀다운) 저항은 무심코 적당히 큰 값을 달거나 I2C나 SPI에서는 보통 4.7kohm을 달면 된다고 하니까 그냥 그렇게 사용합니다. 이렇게해도 문제가 없으니까 별 신경 쓰지 않고 넘어가죠. 하지만, MCU 또는 상대편에 연결되는 IC가 바뀌거나 주변 상황이 조금만 바껴도 갑자기 동작을 안할 수도 있습니다. 자세히 모르기 때문에 대응하기가 힘들어지는거죠.. 알고보면 위 세 가지 중에 한 가지가 문제가 생긴건데 말입니다. 여기까지 풀업(풀다운) 저항을 선정하는 방법을 알아봤습니다. 

반응형