키 입력 하드웨어 RC 디바운스 회로의 값 선정 및 충방전 시간 계산

일, RC 디바운싱의 핵심 원리와 값 선정 원칙

버튼의 기계적 디바운싱(진동 제거)은 본질적으로 RC 저항-커패시터 회로의 충전 및 방전 특성을 이용하여 스위치가 닫히거나 열릴 때 발생하는 전압 노이즈를 부드럽게 하고, 기계적 진동을 제거하는 것입니다. 일반적으로 사용되는 회로는 버튼 양단에 풀업 저항 R과 커패시터 C를 병렬로 연결하는 방식이며, 핵심 파라미터는 RC 시간 상수입니다:

\boldsymbol{\tau = R \times C}
  • \tau: RC 시간 상수, 단위는 초(s). 커패시터 전압이 최종 안정 상태의 63.2%까지 도달하는 데 걸리는 시간을 의미합니다.
  • 공학적으로 회로가 99% 이상의 안정 상태에 도달하고 진동을 완전히 제거하기 위해서는 \boldsymbol{5\tau} 의 시간이 필요하다고 간주됩니다.
  • 일반적인 타촉식 버튼의 기계적 진동 지속 시간은 5~20ms 입니다. 신뢰성 있는 디바운싱을 보장하기 위해선 \boldsymbol{5\tau \ge 20ms} 이어야 하며, 즉 \boldsymbol{\tau \ge 4ms} 여야 합니다.

이, 10kΩ 풀업 저항 사용 시 권장 커패시터 값

풀업 저항 R=10\mathrm{k}\Omega=10\times10^3\Omega 이고, \tau\ge4\mathrm{ms}=4\times10^{-3}\mathrm{s} 조건을 고려하면, 최소 커패시터 용량은 다음과 같습니다:

C_{\text{min}} = \frac{\tau}{R} = \frac{4\times10^{-3}}{10\times10^3} = \boldsymbol{400\mathrm{nF}}

전자 부품의 표준 정격값을 고려할 때, 10kΩ 풀업 저항과 함께 사용할 수 있는 커패시터 추천 사양은 아래 표와 같습니다:

커패시터 정격값 대응 RC 시간 상수 \tau 5\tau (완전한 디바운싱 시간) 적용성
220nF 2.2ms 11ms 필터링 효과가 약함. 매우 우수한 고품질 버튼에서만 사용 가능
470nF 4.7ms 23.5ms 대부분의 버튼 디바운싱 요구를 충족하며, 공학적 설계에서 일반적으로 사용됨
1μF 10ms 50ms 디바운싱 효과는 강하지만, 버튼 반응 속도가 느려짐. 반응 속도에 민감하지 않은 상황에 적합

결론: 10kΩ 풀업 저항을 사용할 경우, 디바운싱 성능과 버튼 응답 속도의 균형을 고려해 470nF 커패시터를 우선 선택하는 것이 좋습니다.

삼, 10kΩ 저항 + 470nF 커패시터의 충전/방전 시간 계산

공식에 값을 대입하여 정확하게 계산하면:

  1. RC 시간 상수
\tau = R \times C = 10\times10^3\,\Omega \times 470\times10^{-9}\,\mathrm{F} = \boldsymbol{0.0047\,\mathrm{s} = 4.7\,\mathrm{ms}}
  1. 완전한 충전/방전 및 신뢰성 있는 디바운싱 시간

회로가 99% 이상의 안정 상태에 도달하려면 5\tau 가 필요합니다:

5\tau = 5 \times 4.7\,\mathrm{ms} = \boldsymbol{23.5\,\mathrm{ms}}

이 시간은 일반적인 버튼의 최대 진동 시간인 20ms보다 훨씬 길어, 기계적 진동을 완전히 제거할 수 있으며, 동시에 눈에 띄는 버튼 지연을 유발하지 않습니다.

사, 실제 적용 시 추가 설명

  1. 커패시터는 멀티레어 세라믹 커패시터(MLCC) 또는 세라믹 커패시터를 우선 사용하는 것이 좋습니다. 안정성이 높고 비용이 낮으며, 전해 커패시터는 극성이 있고 고주파 특성이 나쁘므로 피해야 합니다.
  2. 마이크로컨트롤러의 IO 핀 내부에 풀업 저항이 내장되어 있다면, 외부의 10kΩ 풀업 저항은 생략 가능하며, 버튼 양단에 직접 커패시터를 병렬로 연결하면 됩니다.
  3. RC 하드웨어 디바운싱은 무원자 소자 기반의 필터링으로, 극단적인 진동까지 완전히 제거할 수 없습니다. 고신뢰성 시스템에서는 소프트웨어 딜레이 디바운싱(IO 상태를 읽은 후 10~20ms 지연 후 다시 읽기)과 함께 사용하여 이중 디바운싱을 구현하는 것이 바람직합니다.
1개의 좋아요

소프트웨어로 디바운싱을 구현할 수 있으며, 버튼 상태 머신(키 상태 기계)을 통해 버튼의 디바운싱, 짧게 누름, 길게 누름, 더블클릭 등의 기능을 구현할 수 있습니다.

1개의 좋아요