정전용량 터치 스위치에 CPLD 사용
by 글/ 라파엘 카마로타(Rafael Camarota), 알테라
EDN
정전용량 터치 스위치는 센서 패드에 손가락을 댈 때 PCB(Printed Circuit Board) 패턴의 정전용량 변화를 측정하는 방식으로 동작된다. 정전용량 스위치는 기계적 스위치보다 값이 저렴하기 때문에 점점 더 사용범위가 확대되고 있다.
알테라(www.altera.com)의 MAX IIZ CPLD(Complex Programmable Logic Device)의 기능을 사용하면 외부 컴포넌트 없이 터치 스위치 디코더를 구현할 수 있다. 터치 센서에는 솔더 마스크를 절연체로 사용하는 PCB 상의 8mm 직경의 센싱 패드가 있다. 회로는 단일 스위치를 디코딩하지만 여러 스위치 방식을 사용할 수 있으며, 서로 다른 PCB 레이아웃과 유전체에서도 가능한 프로그래머블 센싱 경계값을 갖는다.
그림 1에서는 PCB 상의 정전용량 스위치 레이아웃 외에는 외부 컴포넌트가 하나도 없는 간단한 회로도를 보여 준다. 기본 터치 스위치 PCB 레이아웃은 왼쪽에 있다. 이 레이아웃은 접지되는 구리로 둘러싸인 8mm 구리 회로로만 구성되어 있다. 점선은 중앙 센서가 CPLD에 연결되는 모습을 보여 주며, 구리 흔적이 센서를 관통하여 뒤쪽까지 연결되는 것을 알 수 있다. 유전체로 동작하는 솔더 마스크는 중앙의 센서와 그라운드를 커버한다. PCB 터치 센서는 가변 커패시터 CTOUCH가 된다.
가변 캐패시터는 이완 오실레이터의 일부다. CPLD의 각 I/O 핀에는 내장된 약한 풀업 레지스터를 가지고 있다. CTOUCH 및 약한 풀업 레지스터는 RC 회로를 형성한다. PINOSC(핀-오실레이터) 신호가 낮으면 I/O 핀이 낮아지므로 PINOSC LPM(Library of Parameterized Modules) 레지스터에 대한 D 입력이 낮아진다. LPM 블록은 Quartus II LPM에서 가져올 수 있다.
회로의 레지스터 및 기타 로직은 프리-러닝, 4.4MHz 내부 오실레이터인 ALTUFM 오실레이터를 클럭으로 사용한다. 클럭의 상승 에지에서 PINOSC가 낮아지므로 버퍼 구동 핀이 높은 임피던스 상태가 된다. 약한 풀업 레지스터는 RC 시간 상수를 기반으로 핀 전압이 서서히 높아지게 만든다. 스위치를 만지지 않을 때 정전용량이 가장 낮아지고 증가 시간은 가장 빨라진다. 스위치를 만질 때는 정전용량이 가장 높아지고 증가 시간은 가장 느려진다. 핀-I/O 버퍼는 CPLD의 슈미트 트리거 옵션을 사용하여 느리게 상승하는 핀 신호의 노이즈 감도를 줄여준다.
핀 노드가 고전압 경계값에 도달하면 PINOSC의 D 입력은 0을 기록한다. 다음 클럭 에지에서 PINOSC 신호는 낮아지고 전체 클럭 주기에 대한 핀 노드도 낮아진다. 이 PINOSC 회로는 터치 캐패시터의 상태에 따라 기본 주기인 2번 진동한다. 레지스터를 오실레이터 루프쪽으로 밀면 소음이 줄어들고 오실레이터는 안정화되며, 디코딩 로직과 동기화된다. PINOSC 주기는 항상 1/4.4MHz 또는 내부 오실레이터 주기의 배수이다.
스위치 디코더는 16 PINOSC 사이클 기간을 카운트하고 알려진 기간과 비교한다. 같은 기간 이내에 16회 이상의 주기가 발생하면 아무도 스위치를 건드리지 않는 것을 의미한다. 샘플 기간 내에 16회 미만의 주기가 발생하면 누군가가 스위치를 건드린 것이며, PINOSC 오실레이터는 느려진다. 아래쪽 LPM 카운터가 샘플 주기를 설정한다.
예를 들어 프로토타입에서는 80개 클럭 주기마다 한번 샘플 신호가 활성화되었다.(그림 2) 위쪽 LPM 카운터는 16회의 PINOSC 주기 기간을 측정한다. 16회의 주기가 끝나면 빠른 신호는 위쪽으로 이동되며, 샘플 신호가 이 신호를 원래대로 설정할 때까지 이 상태를 유지한다.
빠른 신호는 16회의 주기가 80회의 주기보다 적게 발생할 때 프로토타입에서 1이 되고, 샘플 신호가 1이 될 때 빠른 신호를 1로 만든다. 샘플 신호가 1이 되면 빠른 값이 스위치 LPM 레지스터에 기록된다. 스위치 신호 값은 현재의 정전용량 스위치 상태로 모든 샘플 주기를 갱신한다. 스위치를 만지면 PINOSC가 낮아지고, 샘플 신호가 1이 될 때 빠른 신호는 0을 유지하므로 스위치가 0을 출력한다.
프로토타입 디자인에서 PINOSC 기간은 누군가가 스위치를 만졌을 때 3개의 클럭 주기였고, 스위치를 아무도 만지지 않았을 때는 9개의 클럭 주기였다. 또한 스위치 임계값은 5개의 클럭 주기였다. 따라서 아래쪽 LPM 카운터 모듈은 5×16=80이었다. 4에서 8의 값을 사용할 수 있지만 4가 가장 민감하며, 손가락이 작은 경우 8은 적당하지 않다. 따라서 5가 가장 좋은 값이다.
위쪽 LPM 카운터 모듈은 노이즈 감도에 영향을 미친다. 계수가 클수록 회로는 진동 주기의 평균을 더 많이 계산한다. 아래쪽 모듈은 임의의 시스템 소음에 대해 회로를 더 민감하게 만든다. 또한 5주기 감지점은 내부 오실레이터 빈도의 부분 중에서 ±25%의 편차를 허용한다.
========================================
댓글 없음:
댓글 쓰기