스위치 디바운스 최종 가이드(6부)
홈페이지홈페이지 > 블로그 > 스위치 디바운스 최종 가이드(6부)

스위치 디바운스 최종 가이드(6부)

Jun 21, 2024

시간의 안개 속으로 돌아가서, 제가 눈이 밝고 꼬리가 덥수룩했을 때, 스위치 바운스와 디바운스라는 주제를 탐색하기 위해 이 탐구에서 첫 번째 단어를 썼을 때 저는 실제로 한 개, 아마도 두 개만 있으면 될 것이라고 생각했습니다. 열. 안타깝게도 하루가 몇 주가 되고 몇 주가 몇 달이 되면서 나는 훨씬 더 슬프고 현명한 사람으로 성장했습니다.

우리가 지금 파트 6에 있다는 게 믿겨지지 않습니다. 여기 부엌 테이블에 앉아(Kevin의 재택 근무 생존 가이드 참조) 모니터를 빤히 쳐다보면서 저는 이것이 이번이 마지막이 될 것이라고 완전히 기대합니다. 그러나 나는 새벽녘에 갓 따낸 이 경쾌하고 경쾌한 작은 아름다움(내 손끝이 아닌 단어)이 내 손끝에서 떨어지기 시작할 때까지 내가 무엇을 쓸지 정확히 알지 못합니다. 아침 이슬이 아직도 그 늠름하고 기운찬 세리프, 박차, 꼬리에 반짝거리는 동안 언덕의 북쪽. 결론은 이것이 정말로 시리즈의 끝인지 확인하기 위해 이 칼럼의 끝에 도달할 때까지 우리 모두 기다려야 한다는 것입니다. (“Dum dum dum duuuuuuum… Dum dum dum duuuuuuum…” 긴장감이 고조됩니다.)

우리가 열정적으로 전투에 뛰어들기 전에, 우리가 심의에서 어떻게 이 지점에 도달했는지 간략하게 상기시켜 봅시다. Part 1에서는 스위치 바운스(Switch Bounce)의 개념을 소개했습니다. 나중에 2부에서는 단극 단투(SPST) 토글 스위치 및 단극 쌍투(SPDT) 토글 스위치와 관련된 바운싱에 대해 자세히 살펴보았습니다.

3부에서는 RC 네트워크를 사용하고 이어서 슈미트 트리거를 사용하여 SPST 토글 스위치를 디바운스한다는 아이디어를 시작으로 스위치 바운스를 위한 하드웨어 솔루션을 고려하기 시작했습니다. 4부에서는 다양한 단안정 멀티바이브레이터를 사용하여 SPST 토글 스위치를 디바운싱하는 방법을 살펴보았습니다(불행히도 단안정 멀티바이브레이터를 사용하는 것은 좋은 방법이 아니라는 결론을 내렸습니다).

가장 최근인 5부에서는 SPDT 토글 스위치로 돌아가서 두 개의 인버터를 사용하여 구현된 래치, SR 래치(NAND 및 NOR 기반 모두), D형 래치 및 플립플롭을 기반으로 한 디바운스 기술을 고려했습니다.

이 칼럼에서는 특수 집적 회로(IC) 형태의 하드웨어 기반 디바운스 솔루션의 나머지 범주 중 하나를 살펴보겠습니다. 운명이 우리에게 다가온다면 FPGA(Field-Programmable Gate Array) 설계에서 디바운스를 구현하는 방법도 다룰 것입니다. 마지막으로 소프트웨어 디바운스 기술에 관심을 돌릴 것입니다.

이 항목 중 하나라도 익숙하지 않은 경우 관련 스위치 유형 및 스위치 용어 열을 살펴보는 것이 좋습니다. 또한 내 레지스터 대 래치 대 플립플롭 칼럼을 숙독하고 숙고하는 데 관심이 있으실 수도 있습니다. 마지막으로, 이전에 언급한 것처럼 토글 스위치, 로커 스위치 및 푸시버튼 스위치는 모두 거의 동일한 방식으로 스위치 바운스를 나타냅니다. 실제로 튀지 않는 유일한 스위치는 수은 틸트 스위치와 같이 우리 대부분이 거의 사용하지 않는 스위치입니다.

시스템 특성화

깊이 탐구하기 전에, 그것에 대해 생각하고 있는 동안 몇 주 전 임베디드 전문가인 Jack Ganssle과 대화를 나누었을 때 그는 시스템 설계에 관련된 모든 사람, 특히 미션 크리티컬하고 안전이 중요한 시스템 – 의심할 여지가 없는 세계에 스위치를 배포하기 전에 사용하려는 스위치의 특성을 파악한다는 것입니다.

하드웨어 설계자와 소프트웨어 개발자 모두 충분히 고려하지 않고 "검증된" 솔루션으로 돌아가는 것은 너무나 쉽습니다. 예를 들어, Jack의 고전적인 디바운싱 가이드 1부에서 그는 인쇄 회로 기판(PCB)에 도금된 금 접점과 관련된 스위치 유형을 언급했습니다. 눌렀을 때 일종의 전도성 엘라스토머가 금 접점에 나타나는 관련 고무 커버가 있었습니다. Jack은 아날로그 결과가 노이즈, 와이핑 또는 기타 불확실성이 없고 바운스 흔적도 없이 0V에서 5V까지 느린 램프였다고 지적했습니다. 안타깝게도 이 신호가 TTL 입력에 제공되었을 때 "금지 구역"(0.8~2.0V)을 가로지르는 느린 램프로 인해 "가상 바운스"로 간주될 수 있는 밀리초(ms)의 거친 진동이 발생했습니다.