Cypress CY8CKIT를 사용하여 정전 용량 방식 터치 센서 설계 간소화
DigiKey 북미 편집자 제공
2016-12-15
터치 제어는 전기 기구부터 웨어러블까지 다양한 소비자 제품의 기초적인 요구 사항입니다. 그러나 기능 설계와 물리적 레이아웃 간의 상호 의존성 때문에 개발자에게 있어 터치 센서 설계는 까다로운 작업인 경우가 많습니다. 결과적으로 개발팀은 버튼, 슬라이더 및 기타 소자에 대해 가능한 최대 성능을 달성하기 위해 여러 설계 상호 작용을 거치면서 지연을 초래할 수 있습니다.
개발 프로젝트를 지원하기 위해 Cypress Semiconductor의 PSoC 4000S CapSense 시제품 제작 키트는 정전 용량 방식 터치 감지를 평가하고 다양한 제품에서의 구현 속도를 높이는 데 필요한 전체 하드웨어 및 소프트웨어를 제공합니다.
이 기사에서는 다양한 정전 용량 방식 터치 감지 방식이 작동하는 방식과 이러한 터치 센서 설계 시 알아야 하는 내용 몇 가지를 소개합니다. 그런 다음 PSoC CapSense 키트를 소개하고 이 키트의 작동 방식 및 이를 사용한 설계 방법을 설명합니다. 코드 예제도 제공됩니다.
정전 용량 방식 터치를 사용해야 하는 이유
정전 용량 방식 터치 센서는 그 특성상 다양한 응용 분야에 적합합니다. 터치 센서 시스템의 경우 일반적인 기계식 버튼 및 스위치에 필요한 움직이는 부품이 없기 때문에, 신뢰도가 매우 높으며 마모와 손상으로 인한 고장 가능성이 낮습니다. 또한 보호 재료 안에 완전히 내장할 수 있기 때문에 열악한 환경에서도 작동할 수 있습니다. 터치 센서는 높은 신뢰성 이외에도 여러 모양에 손쉽게 적용할 수 있으므로, 엔지니어가 소비자 가전, 자동차 및 기타 주요 제품에서 깔끔하고 세련된 디자인을 원하는 소비자의 요구에 부응하는 데 도움이 됩니다.
정전 용량 방식 터치 센서는 손가락이나 손이 특수한 구성의 터치 표면에 접근할 때 발생하는 정전 용량의 변화를 감지합니다. 터치 센서는 자체 정전 용량 또는 상호 정전 용량의 두 가지 접근법을 사용하여 이 변화를 감지합니다.
자체 정전 용량 터치 센서의 경우 센서 패드에 손가락이 닿으면 접지로의 전도성 경로가 생겨서, 센서 패드와 접지면 사이의 여러 기생 정전 용량의 소스보다 훨씬 큰 정전 용량의 갑작스러운 변화가 초래됩니다(그림 1). 자체 정전 용량은 일반적으로 버튼이나 슬라이더와 같은 단일 터치 응용 분야에 사용됩니다.

그림 1: 자체 정전 용량이 I/O 핀과 접지 사이의 정전 용량 변화를 감지합니다. 센서 주위를 접지에 연결된 해치 필로 채워 센서의 잡음 내성을 높입니다. (출처: Cypress Semiconductor)
이와 반대로 상호 정전 용량 감지는 송신 전극과 수신 전극 사이의 정전 용량을 측정합니다(그림 2). 여기에서 컨트롤러가 송신 핀에 전압을 가할 때 수신 핀에서 측정되는 전하량은 두 전극 사이 상호 정전 용량에 직접 비례합니다. 이 기술은 자체 정전 용량에 비해 높은 신호 대 잡음 비율(SNR)을 제공할 수 있으므로 잡음 내성이 더 높습니다. 또한 SNR가 더 높기 때문에 산업용 응용 분야에 필요한 보호 스크린 및 디스플레이와 같은 두꺼운 벽을 통과하여 작동할 수 있습니다.
이외에도 센서를 배열 방식으로 배치하면 개발자는 여러 지점의 상호 정전 용량 변화를 동시에 추적할 수 있습니다. 따라서, 이 방식은 일반적으로 소형 소비자 가전 제품에 사용되는 트랙패드나 전기 기기 및 자동차의 디스플레이 지향 응용 분야에 사용되는 터치 스크린과 같은 다중 터치 응용 분야에 적합합니다.

그림 2: 상호 정전 용량 감지 시스템에서 컨트롤러는 전압을 송신(TX) 전극으로 전환합니다. 수신(RX) 전극에서 측정되는 전하량은 둘 사이의 상호 정전 용량에 비례합니다. 손가락과 같은 전도성 물체가 터치하면 측정된 상호 정전 용량이 변합니다. (출처: Cypress Semiconductor)
센서 설계
그림 1과 2처럼, 정전 용량 센서 패드는 다층 기판의 트레이스로 구현됩니다. 기본적인 자체 정전 용량 버튼의 경우 가장 단순한 설계는 센서 패드 트레이스를 배치하고 그 주위에 해치 접지면을 배치하는 것입니다. 센서 패드는 컨트롤러의 입력 핀에 연결됩니다. 컨트롤러의 입력 핀은 일반적으로 기판의 하단에 연결되며 접지면도 제공합니다. 마지막으로 맨 윗층은 비전도성 보호 합성물로 덮여 센서 오버레이를 형성합니다. 키패드의 경우 엔지니어는 개별 센서 패드를 주소 지정이 가능한 버튼으로 구성된 배열로 구성하여 이 기본 설계를 확장합니다.
설계자는 일반적으로 지그재그 패턴으로 배열된 여러 센서 패드로 선형 슬라이더를 구현합니다. 아래에 설명된 대로, 이 배열은 연결된 터치 센서 소프트웨어가 손가락 위치를 더 정확하게 계산할 수 있는 정보를 제공합니다. 트랙패드 및 터치 스크린은 두 개의 선형 슬라이더를 사용하여 패드나 스크린의 표면에 닿은 손가락의 X-Y 위치를 확인함으로써 한 단계 더 나아갑니다.
실제로 엔지니어는 센서의 감소를 저하시키는 기생 정전 용량을 줄이기 위한 조치를 취하므로 터치 정전 용량 센서의 물리적 설계는 꽤 복잡할 수 있습니다. 접지면 자체의 신중한 설계 이외에도 해치 접지면은 특정 물리적 설계 규칙을 엄격하게 따라야 합니다. 또한 액체가 센서 판독을 왜곡시킬 수 있는 가전 및 기타 제품의 경우, 엔지니어는 감지면에 액체가 있을 경우 오판독을 제거하는 데 도움이 되도록 더 복잡한 구조를 만듭니다. 상호 정전 용량 센서 배열은 다중 PC 기판 레이어의 송신 및 수신 트레이스로 구성된 센서 배열로 설계 복잡성이 더 확장됩니다.
설계자는 이러한 센서를 만들 때 주의를 기울여야 하지만, 정전 용량 터치 센서의 개발은 일반적인 설계 흐름을 따르는 경우가 많습니다. 그러나, 센서 기판을 정식으로 생산하기 전에 엔지니어는 일반적으로 부품, 센서 패드 및 기판의 특정 특성과 센서 성능 요구 사항 및 전체 전력 요구 사항을 고려하여 하드웨어 파라미터 및 소프트웨어 설정을 조정해야 합니다. Cypress Semiconductor PSoC 4000S와 같은 전문적인 단일 칩 시스템(SoC)은 조정 요구 사항을 포함하여 정전 용량 방식 터치 센서 구현을 단순화하도록 설계된 특정 기능을 통합합니다.
Cypress CapSense
ARM® Cortex®-M0+ 프로세서 코어를 기반으로 하는 Cypress PSoC 4 장치 제품군은 다양한 응용 분야에 적합하게 설계된 프로그래밍 가능 아날로그 및 디지털 주변 장치와 메모리를 결합합니다. 특히 PSoC 4000S는 정전 용량 방식 터치 센서 처리를 위한 완전한 신호 체인으로 구성된 Cypress 고유의 CapSense 기능을 제공합니다. 그 결과, 몇 개의 부품만 추가하여 터치 센서 설계를 구현할 수 있습니다(그림 3).

그림 3: Cypress Semiconductor PSoC 4000S 장치는 ARM Cortex-M0+ 코어, 메모리 및 주변 장치를 Cypress의 CapSense 정전 용량 방식 센서 신호 체인과 통합합니다. 개발자는 몇 개의 부품만 추가하여 자체 정전 용량 또는 상호 정전 용량 설계에 기반한 감지 솔루션을 구현할 수 있습니다. (출처: Cypress Semiconductor)
자체 정전 용량 센서 설계의 경우 엔지니어는 각 센서 패드를 GPIO 핀에 연결하고 외부 CMOD 커패시터를 추가합니다(그림 3). 상호 정전 용량 센서 설계는 각 수신 라인 및 송신 라인에 별도의 GPIO를 사용하며 한 쌍의 외부 커패시터인 CINTA 및 CINTB를 사용합니다. 또한 외부 CTANK 커패시터는 센서 오버레이 표면에 있는 액체에 대한 민감도를 줄이기 위해 사용되는 실드 전극의 구현을 지원합니다.
PSoC 4000S는 자체 정전 용량 및 상호 정전 용량 방식을 모두 지원합니다. 자체 정전 용량 감지의 경우 SoC의 CapSense Sigma Delta(CSD) 기능이 전류-디지털 컨버터를 사용하여 GPIO에서 자체 정전 용량의 변화를 측정합니다. 상호 정전 용량 감지의 경우 SoC의 CapSense Crosspoint(CSX) 기능은 Tx 전극을 구동하며 Rx 전극의 전하를 감지합니다. Rx 전극에서 측정된 전하는 두 전극 사이의 상호 정전 용량에 비례합니다.
두 방식 모두에서 컨버터는 GPIO에서 측정된 자체 정전 용량 또는 Rx 핀에서 측정된 상호 정전 용량을 반영하는 원시 카운트를 생성합니다. 펌웨어는 원시 카운트를 프로그래밍 가능 잡음 및 신호 임계값과 비교하여 손가락이 버튼 센서 패드에 있는지 또는 슬라이더나 터치 패드의 특정 위치에 연결된 센서에 있는지 여부를 파악할 수 있습니다(그림 4).

그림 4: Cypress PSoC 4000S CapSense 블록은 카운트 값이 프로그래밍 가능 잡음 임계값을 넘어 프로그래밍 가능 터치 임계값에 도달할 때 터치임을 나타내는 카운트를 생성합니다. 또한 CapSense는 대상 터치 감지 임계값 위/아래의 히스테리시스 레벨도 지원합니다. (이미지 출처: Cypress Semiconductor)
CapSense 블록은 CPU 개입 없이 이 검사를 수행할 수 있습니다. 결과적으로, 설계자는 센서 스캔 도중 다른 작업을 수행하도록 Cortex-M0+ 코어를 프로그래밍할 수 있습니다. 그러나, 실제로는 독립 프로세서 활동에 연관된 전류의 변화로 인해 CapSense 블록 내의 민감한 아날로그 회로에 잡음이 생길 수 있습니다. 그 결과 특히 높은 감도와 낮은 잡음 환경이 필요한 응용 분야의 경우 개발자는 일반적으로 스캔 동안 프로세서 활동을 제한합니다.
실제로, 제조 편차로 인해 센서의 잡음 레벨과 감도가 서로 다를 수 있으므로 이러한 편차를 보정하기 위해 하드웨어 및 소프트웨어 파라미터의 신중한 조정이 필요합니다. 그러나 이러한 시스템 편차 이외에 환경 조건의 직접적 변화도 감도, 성능 및 정확도에 큰 영향을 미칠 수 있습니다.
이러한 조건 변화에서 성능을 유지하기 위해 PSoC 4000S 장치의 SmartSense 기능은 최적의 감도와 성능을 유지하도록 자동으로 파라미터를 설정하는 자동 조정 기능을 제공합니다. CapSense 블록이 초기화되면 SmartSense는 스캔 해상도와 같은 파라미터와 내부 클록 및 기타 주요 내부 회로에 대한 설정을 다시 계산합니다. 그러나 각 스캔이 시작될 때 SmartSense는 잡음 임계값 및 터치 임계값을 포함하여 추가적인 동적 파라미터를 자동으로 업데이트할 수 있습니다. 그 결과 SmartSense는 여러 잡음 환경 및 설계 시 예측할 수 없는 임의의 잡음 스파이크까지 동적으로 보상할 수 있습니다.
하지만 경우에 따라 설계자가 수동 조정 방법을 사용해야 할 수도 있습니다. 예를 들어, SmartSense는 45pF에 달하는 높은 기생 정전 용량을 고려한 설계를 지원합니다. 따라서, 기생 정전 용량이 매우 높은 설계의 경우 수동 조정이 필요할 수 있습니다. 또한 SmartSense는 자체 정전 용량 센서 설계만 지원하므로 상호 정전 용량 센서 설계에는 수동 조정이 필요합니다. 실제로 Cypress는 응용 분야에 센서 스캔 시간과 같은 특정 파라미터 설정을 매우 엄격하게 제어해야 하는 경우 자체 정전 용량 설계에서도 수동 조정을 사용할 것을 권장합니다.
빠른 개발
PSoC 4000S와 같은 복잡한 장치는 기능이 모두 통합되어 있기 때문에 온칩 블록마다 꽤 많은 프로그래밍 작업이 필요할 수 있습니다. 이러한 프로그래밍 및 구성을 간편하게 수행할 수 있도록 Cypress는 무료 PSoC Creator 소프트웨어 환경을 제공합니다. PSoC Creator는 장치 하드웨어 구성 세부 사항 및 관련 소프트웨어 레이어의 복잡성을 처리해 주는 통합 설계 환경(IDE)입니다.
PSoC Creator는 통합 부트로더 또는 디버거가 포함된 Cypress PSoC 4 설계 키트와 작동하도록 설계되었습니다. 그 결과 PSoC 장치를 사용한 개발은 개발 기판을 시스템의 USB 포트에 연결하고 적절한 파라미터를 선택하는 간단한 절차만으로 가능합니다. 예를 들어, 개발자는 PSoC Creator 구성 화면에서 SmartSense 자동 조정을 선택하기만 하면 이를 활성화할 수 있습니다(그림 5).

그림 5: Cypress PSoC Creator IDE는 프로그래밍 및 개발을 간소화합니다. SmartSense 자동 조정과 같은 기능의 설정과 장치 구성은 특정 장치 기능 분야 전용 화면에서 선택하기만 하면 됩니다. (이미지 출처: Cypress Semiconductor)
PSoC 4000S 하드웨어와 PSoC Creator IDE의 조합은 정전 용량 감지 설계에서 큰 이점을 제공합니다. 그러나 앞서 언급한 것처럼 정전 용량 방식 터치 센서 솔루션을 개발하려는 개발팀은 여전히 기생 정전 용량, 잡음 소스 및 기타 세부적인 설계 고려 사항 등의 어려움을 해결해야 합니다. Cypress는 완전한 정전 용량 방식 터치 하드웨어 구현 및 샘플 소프트웨어를 제공하는 PSoC 4000S 시제품 개발 키트로 빠른 개발의 필요성을 해결해 줍니다. 이 키트는 Cypress KitProg2 디버깅 기판, 버튼 센서 기판, 선형 슬라이더 기판, PSoC 4000S 및 Bluetooth 저에너지(BLE) 통신용 Cypress EZ-BLE PRoC 장치로 구성되어 있습니다.
개발자는 기판을 USB 포트에 연결하기만 하면 센서 응용 제품 테스트를 빠르게 시작할 수 있습니다(그림 6). PSoC Creator를 사용하면 개발자는 샘플 프로젝트를 선택하여 컴파일하고, IDE의 펌웨어 프로그래밍 장치를 사용하여 주 기판에서 PSoC 4000S 장치를 프로그래밍하고, 마지막으로 통합 디버거를 사용하여 런타임 작동을 확인할 수 있습니다. 이 키트는 버튼 및 슬라이더 기판 모두에서 자체 정전 용량 및 상호 정전 용량 감지를 지원하며, 개발자는 PSoC Creator를 사용하여 두 구성에서 센서가 실행되도록 키트를 구성할 수 있습니다.

그림 6: Cypress PSoC 4000S 시제품 제작 키트는 USB 연결 디버그 기판, 터치 센서 기판, 선형 슬라이더 기판 및 맞춤형 정전 용량 방식 센서 설계의 개발을 위해 분리할 수 있는 주 기판으로 구성된 고유한 설계를 제공합니다. (그림: Cypress Semiconductor)
PSoC Creator와 PSoC 4000S 시제품 제작 키트 소프트웨어 제품군은 모두 무료로 다운로드할 수 있습니다. PSoC Creator는 키트의 PSoC 4000S 장치를 구성 및 프로그래밍하는 데 사용되며, 소프트웨어 패키지에는 정전 용량 방식 터치 응용 제품을 위한 주요 설계 패턴을 보여주는 샘플 소프트웨어와 포괄적인 소프트웨어 라이브러리 집합이 포함되어 있습니다.
예를 들어, 버튼 및 슬라이더 샘플 패키지의 main.c 루틴은 장치 초기화와 연속 센서 샘플링을 차례로 보여줍니다. 이 코드 내에서 switch 문은 선택적 자동 조정기 패스를 수행한 후 센서 스캔을 수행합니다. 그런 다음 스캔이 완료될 때까지 기다린 후 마지막으로, 활성화된 모든 센서를 처리합니다(목록 1). Cypress 라이브러리에는 시퀀스의 각 단계에 필요한 저수준 소프트웨어 호출을 구현하는 패키지가 포함되어 있습니다.
DEVICE_STATE currentState = SENSOR_SCAN;
. . .
/* Start CapSense block */
CapSense_Start();
. . .
for(;;)
{
/* Switch between SENSOR_SCAN->WAIT_FOR_SCAN_COMPLETE->PROCESS_DATA states */
switch(currentState)
{
case SENSOR_SCAN:
/* Initiate new scan only if the CapSense block is idle */
if(CapSense_NOT_BUSY == CapSense_IsBusy())
{
#if ENABLE_TUNER
/* Update CapSense parameters set via CapSense tuner before the
beginning of CapSense scan
*/
CapSense_RunTuner();
#endif
/* Scan widget configured by CSDSetupWidget API */
CapSense_ScanAllWidgets();
/* Set next state to WAIT_FOR_SCAN_COMPLETE */
currentState = WAIT_FOR_SCAN_COMPLETE;
}
break;
case WAIT_FOR_SCAN_COMPLETE:
/* Put the device to CPU Sleep until CapSense scanning is complete*/
if(CapSense_NOT_BUSY != CapSense_IsBusy())
{
CySysPmSleep();
}
/* If CapSense scanning is complete, process the CapSense data */
else
{
currentState = PROCESS_DATA;
}
break;
case PROCESS_DATA:
/* Process data on all the enabled widgets */
CapSense_ProcessAllWidgets();
/* Controls LEDs Status based on the result of Widget processing. */
LED_Control();
. . .
}
}
}
목록 1: Cypress의 샘플 소프트웨어는 PSoC 4000S 정전 용량 감지 기능을 어떻게 사용하는지 보여줍니다. 이 샘플 애플리케이션에서는 PSoC 4000S CapSense 블록이 초기화된 후, 무한 루프가 센서 스캔을 수행하고(CapSense_ScanAllWidgets), 스캔 완료를 기다린 다음, 결과를 처리합니다(CapSense_ProcessAllWidgets). (코드 출처: Cypress Semiconductor)
센서 설계를 테스트할 준비가 되면 개발자는 디버거 기판과 두 센서 기판을 분리하여 주 기판만으로 개발을 계속할 수 있습니다. 이 키트는 키트 센서와 PSoC 4000S GPIO 핀 사이의 연결을 위한 헤더를 제공하므로 맞춤 설계된 센서 패드로 손쉽게 확장할 수 있습니다.
키트 설계를 기반으로 하려는 개발자를 위해, 관련 참조 설계는 완전한 하드웨어 회로도 및 연관 소프트웨어를 제공합니다. 예를 들어, 하드웨어 참조 설계는 선형 슬라이더를 위한 일련의 센서 패드 사용법을 보여 줍니다(그림 7). 함께 제공되는 소프트웨어 제품군은 손가락 위치 추정의 정확도를 향상시키는 기술을 보여 주는 샘플 소프트웨어를 제공합니다.

그림 7: Cypress PSoC 4000S 시제품 제작 키트 참조 설계에서 선형 슬라이더는 손가락 위치 식별의 분해능을 향상시키기 위해 지그재그 패턴으로 배치된 센서 패드 배열로 구성됩니다. 이 설계에는 송신 전극이 포함되므로 자체 정전 용량 모드 뿐만 아니라 상호 정전 용량 모드에서도 작동할 수 있습니다. (이미지 출처: Cypress Semiconductor)
선형 슬라이드의 지그재그형 배치는 손가락이 슬라이더의 특정 지점을 터치할 때 인접 세그먼트의 일부에도 손가락이 닿도록 합니다. 이 소프트웨어 키트는 최대 카운트를 보여주는 센서(Si)와 양쪽의 센서(Si-1, Si+1)를 사용하여 카운트 값의 도심을 계산하는 저수준 루틴(capsense_CalcCentroid)에서 이 정보를 사용합니다(목록 2). 소프트웨어는 이런 방식으로 손가락 위치를 보간하여, 단순히 최고 카운트 값을 보여주는 센서를 찾는 대신 더 높은 분해능으로 손가락 위치 솔루션을 생성할 수 있습니다. 그런 다음, 샘플 소프트웨어 애플리케이션은 LED, 해당 센서 및 그 아래의 센서(S0,S1,…,Si-1,Si)를 켭니다.
. . .
/* Si+1 - Si-1 */
numerator = (uint32) capsense_centroid[capsense_POS_NEXT] -
(uint32) capsense_centroid[capsense_POS_PREV];
/* Si+1 + Si + Si-1 */
denominator = (int32) capsense_centroid[capsense_POS_PREV] +
(int32) capsense_centroid[capsense_POS] +
(int32) capsense_centroid[capsense_POS_NEXT];
/* (numerator/denominator) + maximum */
denominator = (((int32)(uint32)((uint32)numerator << 8u)/denominator) + (int32)(uint32)((uint32) maximum << 8u));
. . .
/* Round result and put it to uint8 */
position = ((uint8) HI16((uint32)denominator + capsense_CENTROID_ROUND_VALUE));
return (position);
목록 2: capsense_CalcCentroid 루틴은 선형 배열에서 이전, 현재 및 다음 센서에 대해 각 센서의 카운트 값 배열에서 센서 카운트를 추출하여(capsense_centroid) 도심 계산의 결과를 반환합니다. (코드 출처: Cypress Semiconductor)
결론
터치 감지 인터페이스는 정전 용량 감지 기술을 토대로 하여 웨어러블부터 세탁기까지 다양한 장치를 제어할 수 있는 직관적인 방법을 제공합니다. 최소한의 전력을 요구하는 정전 용량 감지는 기계식 버튼 및 스위치로는 달성할 수 없는 신뢰성과 긴 수명을 제공합니다. 그러나 개발자가 강력한 감지 시스템을 구현하려는 경우에는 정전 용량 감지 시스템의 상호 의존적인 회로 설계와 물리적 레이아웃 특성을 해결하는 데 필요한 반복 설계로 개발 시간이 지연되는 경우가 많습니다. Cypress Semiconductor PSoC 4000S를 기반으로 하는 포괄적인 시제품 제작 키트 및 참조 설계는 개발자가 다양한 응용 제품을 위한 강력한 정전 용량 방식 터치 감지 설계를 빠르게 배포하도록 지원할 수 있는 준비된 솔루션을 제공합니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


