Falling edge, Rising edge, 상승엣지, 하강엣지, 스위치 채터링(switch chattering)

728x90
반응형

디지털에서는 정보의 표현을 0과 1로 하는데 0과 1을 간단히 설명하자면 전자회로에서 발생하는 신호가 5V 또는 3.3V를 High level(1)이라 하고, 0V 또는 GND를 Low level(0)이라고 한다. 그럼 Falling edge, Rising edge? 가 뭔지에 대해 알아보자.

 

디지털 신호가 0(0V)에서 1(3.3V)로, 1(3.3V)에서 0(0V)으로 변하는 순간이 있다. 이때 0에서 1로 값이 증가하는 순간을 상승 에지(Rising edge), 1에서 0으로 값이 감소하는 순간을 하강 에지(Falling edge)라고 한다.

 

 

 

MCU 에서는 Rising edge 와 Falling edge 를 선택해 인터럽트를 발생시킬 수 있다. 

 

그리고, 스위치로 push button 스위치의 경우 스위치 채터링(switch chattering)이라는 현상이 발생한다. 아래 그림으로 설명해보겠다!

 

잘 그렸는지 모르겠지만 대충 이런느낌이다.

스위치를 눌렀다 떼면 1회 상승과 하강 에지가 발생해야하는데 그렇지 않고 위 그림처럼 여러차례 상승과 하강에지가 연속적으로 반복해서 일어나는 현상을 말한다.

이렇게 되면 MCU에서는 채터링이 발생하는 횟수만큼 스위치의 입력을 인지하기 때문에 동작에 큰 문제가 될 수 있다. 그럼 어떻게 해결해야할까 ?

 

채터링은 push button 스위치의 물리적인 구조때문에 발생한다. 해결방법은 하드웨어적으로 해결하는 방법과 소프트웨어적으로 해결하는 방법이 있다.

소프트웨어 적으로 해결하는 방법은 스위치 입력을 확인하는 부분에 적절한값의 타이머를 적용하는 방법인데 이는 MCU의 동작속도등에따라 실험적으로 찾아서 적용해야하기 때문에 개인적으로 권장하지 않는다.

 

그럼 하드웨어적인 방법은? 물리적으로 전기신호를 늦추는 방법이있다. 어떻게? capacitor를 이용해서!

 

위 회로는 ST사에서 판매하는 B-L475E-IOT01A1 개발보드의 회로 일부분이다. 회로를 보면 Pull-Up으로 스위치가 달려있고, MCU와 연결되어있는 라인에 1k저항과 100nF, 10pF의 cap이 달려있는것을 확인 할 수있을것이다. 

 

이 부분이 스위치의 채터링 현상을 잡아주는 부분이다. 음 나중에 혹시 생각나면 스코프로 직접 파형을 찍어서 보여주도록 하겠다. 

 

cap을 적용하면 채터링이 없어지는데 글로 간단히 설명하자면 연속적으로 상승과 하강에지가 발생할때 cap이 있으면 이 상승과 하강사이의 레벨 높이를 줄여줘 MCU가 입력으로 인식하지 못하기 때문에 채터링 현상이 사라지게 되는것이다. 

 

- 끝 -

728x90
반응형