Simplificación del diseño del sensor táctil capacitivo con Cypress CY8CKIT

Colaboración de Editores de DigiKey de América del Norte

El control táctil es un requisito fundamental para muchos productos de consumo que abarcan desde aparatos hasta dispositivos para vestir. Para desarrolladores, el diseño de sensor táctil generalmente parece una fusión de arte y diseño debido a la interdependencia entre el diseño funcional y la disposición física. Por consiguiente, los equipos de desarrollo pueden sentirse retrasados cuando trabajan con diferentes interacciones de diseño para lograr el mejor rendimiento posible de botones, deslizadores y otros elementos.

Para ayudar a desarrollar proyectos, el kit de prototipado PSoC 4000S CapSense de Cypress Semiconductor ofrece un complemento integral de hardware y software que es necesario para evaluar la detección táctil capacitiva y acelerar la implementación en un amplio rango de productos.

Este artículo describirá cómo funcionan diferentes métodos de detección capacitiva y las advertencias que los diseñadores deben comprender al diseñarlos. Luego, se presentará el kit PSoC CapSense, cómo funciona y cómo diseñar con el kit. Se incluyen ejemplos de código.

¿Por qué táctil capacitivo?

La naturaleza de los sensores táctiles capacitivos permiten que sean ideales para un amplio rango de aplicaciones. Al eliminar las piezas móviles en botones mecánicos convencionales e interruptores, los sistemas de sensor táctil son sumamente confiables y es poco probable que fallen debido al desgaste. Además, dado que pueden estar totalmente encapsulados en materiales de protección, pueden operar en entornos hostiles. Independientemente de su fiabilidad, los sensores táctiles pueden adaptarse fácilmente a diferentes formas, por lo que pueden ayudar a los ingenieros a responder a la demanda del consumidor para lograr diseños elegantes y refinados en electrodomésticos, automóviles y otros productos generales.

Los sensores táctiles capacitivos aprovechan el cambio de capacitancia que se produce cuando un dedo o una mano se acercan a una superficie táctil especialmente construida. Los sensores táctiles detectan este cambio usando dos métodos diferentes: autocapacitancia o capacitancia mutua.

En un sensor táctil autocapacitivo, un dedo colocado en la almohadilla del sensor provoca un trayecto conductivo a tierra, por lo que se produce un incremento repentino en la capacitancia que es significativamente más grande que las diferentes fuentes de capacitancia parásita entre la almohadilla del sensor y el plano a tierra (Figura 1). La autocapacitancia se prefiere generalmente para aplicaciones con un solo toque, como botones o deslizadores.

Imagen del momento en el que la autocapacitancia detecta cambios en la capacitancia

Figura 1: La autocapacitancia detecta cambios en la capacitancia entre el pin E/S y la puesta a tierra. Al rodear el sensor con un "hatch fill" conectado a la puesta a tierra, se mejora la inmunidad al ruido del sensor. (Fuente: Cypress Semiconductor)

Por otro lado, la detección de capacitancia mutual mide la capacitancia entre los electrodos de transmisión y recepción (Figura 2). Aquí, cuando un controlador aplica un voltaje a un pin de transmisión, la cantidad de carga medida en el pin receptor es directamente proporcional a la capacitancia mutua entre los dos electrodos. Esta técnica puede ofrecer una tasa de señal a ruido (SNR) superior a la autocapacitancia, por lo que resulta en mayor inmunidad al ruido. Este SNR superior también ofrece la capacidad de trabajar a través de revestimientos más gruesos, tales como filtros protectores y pantallas requeridos en aplicaciones industriales.

Además, los sensores colocados en un arreglo pueden permitir que los desarrolladores rastreen los cambios en capacitancia mutua a diferentes puntos de forma simultánea. Como consecuencia, este método se prefiere en aplicaciones de puntos múltiples usando trackpads que se encuentran generalmente en productos de consumo más pequeños o pantallas táctiles utilizadas en aplicaciones orientadas a pantallas en dispositivos y automóviles.

Diagrama del sistema de detección de capacitancia mutua

Figura 2: En un sistema de detección de capacitancia mutua, un controlador cambia el voltaje en un electrodo de transmisión (TX). La cantidad de carga medida en el pin receptor (RX) es directamente proporcional a la capacitancia mutua entre los dos electrodos. La parte táctil de un objeto conductivo, como un dedo, provoca un cambio en la capacitancia mutua medida. (Fuente: Cypress Semiconductor)

Diseño de sensor

Tal como se ilustró en las Figuras 1 y 2, las almohadillas del sensor capacitivo se construyen de huellas en placas de capas múltiples. Para un botón autocapacitivo básico, se coloca la huella de la almohadilla del sensor rodeada por un plano a tierra tramado sobre la parte superior de la placa para formar el diseño más simple. La almohadilla del sensor se conecta a un pin de entrada de un controlador que se conecta generalmente a la parte inferior de la placa, que también ofrece el plano a tierra. Por último, la capa superior se cubre con un compuesto protector no conductivo que forma el recubrimiento del sensor. Para teclados, los ingenieros amplían este diseño básico al crear almohadillas de sensores individuales en una disposición de botones direccionables.

Los diseñadores pueden crear deslizadores lineales de diferentes almohadillas de sensores generalmente dispuestas en un patrón de zigzag. Tal como se describe a continuación, este arreglo ofrece información que el software del sensor táctil asociado puede usar para calcular con mayor precisión la posición del dedo. Los trackpads y las pantallas táctiles amplían aún más este método usando dos deslizadores lineales para determinar la posición X-Y de un dedo colocado en la superficie de la almohadilla o la pantalla.

En la práctica, el diseño físico de los sensores capacitivos táctiles puede ser bastante complejos, ya que los ingenieros trabajan para disminuir la capacitancia parásita que reduce la sensibilidad del sensor. Junto con el diseño cuidadoso de la placa a tierra, la placa a tierra tramada requiere una adherencia estrecha a las reglas de diseño físico específicas. Además, en el caso de electrodomésticos y otros productos donde el líquido puede distorsionar las lecturas del sensor, los ingenieros construyen estructuras más complejas para ayudar a eliminar las lecturas erróneas donde el líquido está presente en la superficie de detección. Los arreglos de capacitancia mutua amplían aún más la complejidad del diseño con arreglos de sensores construidos con tramas de transmisión y recepción en diferentes capaz de la placa pc.

Si bien los diseñadores necesitan tener cuidado al crear estos sensores, el desarrollo de sensores táctiles capacitivos sigue en gran medida un proceso de diseño típico.  No obstante, antes de la producción total de las placas del sensor, los ingenieros necesitan generalmente ajustar los parámetros de hardware y las configuraciones del software para lograr características específicas en componentes, almohadillas y placas de sensores, así como requisitos específicos para el desarrollo del sensor y requisitos de alimentación generales. Los dispositivos SoC especializados, como Cypress Semiconductor PSoC 4000S, integran funcionalidad específica que está diseñada para simplificar las implementaciones del sensor táctil, incluso los requisitos de ajuste.

Cypress CapSense

Al basarse en el núcleo del procesador ARM® Cortex®-M0+, la familia de dispositivos PSoC 4 de Cypress combina la memoria con periféricos analógicos y digitales programables diseñados para abordar un rango amplio de aplicaciones. En particular, PSoC 4000S ofrece la funcionalidad CapSense propiedad de Cypress, que consta de una cadena completa de señales para procesar los sensores táctiles capacitivos. Como resultado, los ingenieros pueden implementar un diseño de sensor táctil con solo algunos componentes adicionales (Figura 3).

Diagrama del dispositivo PSoC 4000S de Cypress Semiconductor

Figura 3: El dispositivo PSoC 4000S de Cypress Semiconductor integra un núcleo ARM Cortex-M0+, memoria y periféricos con una cadena de señales del sensor capacitivo CapSense de Cypress. Los desarrolladores necesitan solo algunos componentes adicionales para implementar soluciones de detección según los diseños de autocapacitancia y capacitancia mutua. (Fuente: Cypress Semiconductor)

Para diseños de sensor de autocapacitancia, los ingenieros conectan cada almohadilla del sensor a un pin GPIO y agregan un capacitor CMOD externo adicional (Figura 3). Los diseños de sensor de capacitancia mutua utilizan GPIO separados para cada línea de recepción y transmisión del sensor así como un par de capacitores externos, CINTA y CINTB. Además, un capacitor CTANK admite la implementación de electrodos de protección que se utilizan para reducir la sensibilidad a la presencia de líquidos en la superficie del recubrimiento del sensor.

PSoC 4000S admite los métodos de autocapacitancia y capacitancia mutua. Para la detección de autocapacitancia, la función CapSense Sigma Delta (CSD) de SoC mide el cambio en autocapacitancia a un GPIO usando un convertidor de corriente a digital. Para la detección de capacitancia mutua, la función CapSense Crosspoint (CSX) de SoC impulsa un electrodo Tx y detecta la carga de un electrodo Rx. La carga medida en el electrodo RX es proporcional a la capacitancia mutua entre los dos electrodos.

En ambos métodos, el convertidor genera una cantidad en bruto que refleja la autocapacitancia medida a un GPIO o capacitancia mutua medida en un pin Rx. Al comparar la cantidad bruta con los umbrales de señal y ruido programables, el firmware puede determinar si un dedo está presente en una almohadilla de sensor de botón o un sensor asociado con una ubicación particular en un deslizador o panel táctil (Figura 4).

Gráfico del bloque PSoC 4000S CapSense de Cypress

Figura 4: El bloque PSoC 4000S CapSense de Cypress realiza un conteo que indica el momento en que se toca cuando los valores de conteo aumentan por encima de un umbral de ruido programable y alcanzan umbrales táctiles programables. CapSense también admite niveles de histéresis por encima o debajo del umbral de detección táctil objetivo. (Fuente de la imagen: Cypress Semiconductor)

El bloque CapSense puede realizar este escaneo sin necesidad de la intervención del CPU. Por consiguiente, los diseñadores pueden programar el núcleo Cortex-M0+ para que realicen otras tareas durante los escaneos del sensor. En la práctica, en cambio, los cambios en la corriente asociados con la actividad independiente del procesador puede introducir ruido en los circuitos analógicos sensibles sin el bloque CapSense. Como resultado, los desarrolladores generalmente limitan la actividad del procesador durante los escaneos, especialmente para aplicaciones que requieren alta sensibilidad y los respectivos entornos de bajo ruido.

De hecho, los diferentes sensores pueden mostrar niveles de ruido diferentes y sensibilidad debido a las variaciones de fabricación, por lo que se requiere un ajuste cuidadoso de los parámetros de hardware y software para estas diferencias. Además de estas variaciones sistemáticas, cambios más inmediatos en las condiciones medioambientales pueden introducir factores que impactan dinámicamente la sensibilidad, el rendimiento y la precisión.

Para mantener el rendimiento a pesar de las condiciones cambiantes, el dispositivo PSoC 4000S ofrece la función SmartSense que proporciona capacidad de autoajuste que establece parámetros automáticamente para mantener la sensibilidad óptima y el rendimiento. Cuando se inicia el bloque CapSense, SmartSense recalcula los parámetros, tales como resolución de escaneo así como ajuste para relojes internos y otros circuitos internos clave. Al comienzo de cada escaneo, SmartSense puede actualizar automáticamente más parámetros dinámicos, incluso los valores de umbral de ruido y umbral táctil. Como resultado, SmartSense puede compensar dinámicamente diferentes entornos de ruido e incluso picos de ruido que no se puede anticipar durante el diseño.

En algunos casos, los diseñadores todavía pueden necesitar usar métodos de ajuste manual. Por ejemplo, SmartSense admite diseños con capacitancia parásita de un máximo de 45 pF. Por consiguiente, los diseños con capacitancia parasitaria muy alta pueden requerir un ajuste manual. Además, SmartSense solo admite diseños de sensores de autocapacitancia, por lo que los diseños de sensores de capacitancia mutua requieren ajuste manual. De hecho, Cypress recomienda el uso de ajuste manual, incluso en diseños de autocapacitancia en situaciones donde la aplicación requiere un control muy ajustado de configuraciones de parámetros específicos, como el tiempo de escaneo del sensor.

Desarrollo rápido

Con toda la funcionalidad integrada, un dispositivo complejo, como PSoC 4000S, puede requerir un esfuerzo sustancial para la programación de cada bloque en chip. Para facilitar la programación y la configuración, Cypress ofrece un entorno de software PSoC Creator gratis. PSoC Creator es un entorno de diseño integrado (IDE) que ayuda a proteger la complejidad de los detalles de configuración de hardware del dispositivo y capas de software asociados.

PSoC Creator está diseñado para funciona con kits de diseño Cypress PSoC 4 que incluye un cargador de arranque o depurador integrados. Por consecuencia, la desarrolla con un dispositivo PSoC es tan simple como conectar la placa de desarrollo a un puerto device USB del sistema y seleccionar parámetros apropiados. Por ejemplo, los desarrolladores pueden activar el autoajuste SmartSense simplemente al seleccionarlo en una pantalla de configuración PSoC Creator (Figura 5).

Imagen del Cypress PSoC Creator IDE

Figura 5: Cypress PSoC Creator IDE simplifica la programación y el desarrollo. La configuración del dispositivo y de sus funciones, como el autoajuste SmartSense, se reduce a una serie de selecciones en pantallas dedicadas a áreas específicas de la funcionalidad del dispositivo. (Fuente de la imagen: Cypress Semiconductor)

La combinación del hardware PSoC 4000S y PSoC Creator IDE ofrece una ventaja importante al implementar diseños de detección capacitiva. No obstante, tal como se indicó anteriormente, los problemas relacionados con capacitancia parásita, fuentes de ruido y otras consideraciones de diseño detalladas aún son una complicación para los equipos de desarrollo que buscan una solución de sensor táctil capacitivo. Cypress hace frente a la necesidad de un desarrollo rápido con el kit de prototipo PSoC 4000S, que ofrece un software de muestra y una implementación completa de hardware capacitivo. El kit combina la placa de depuración Cypress KitProg2, la placa de sensor de botón, una placa deslizante lineal y una placa principal con PSoC 4000S y el dispositivo Cypress EZ-BLE PRoC para comunicaciones de Bluetooth de baja energía (BLE).

Los desarrolladores pueden comenzar a probar rápidamente las aplicaciones de sensores al conectar la placa al puerto USB (Figura 6). Al usar PSoC Creator, el desarrollador puede seleccionar y compilar un proyecto de muestra; utilizar el programador de firmware de IDE para programar el dispositivo PSoC 4000S en la placa principal, y, por último, utilizar el depurador integrado para explorar la operación en el momento de la ejecución. El kit admite detección de autocapacitancia y capacitancia mutua en placas de botón y deslizante, y los desarrolladores pueden usar PSoC Creator para configurar el kit para ejecutar sensores en cualquier configuración.

Imagen del kit de prototipado Cypress PSoC 4000S

Figura 6: El kit de prototipado Cypress PSoC 4000S ofrece un diseño exclusivo de disparo que compromete a la placa de depuración conectada por USB, la placa del sensor táctil, la placa del deslizador lineal y la placa principal que puede estar separada para el desarrollo de diseños de sensor capacitivo personalizado. (Imagen: Cypress Semiconductor)

El suite de software de PSoC Creator y prototipado PSoC 4000S está disponible para la descarga gratuita. Si bien PSoC Creator se utiliza para configurar y programar el dispositivo PSoC 4000S integrado del kit, el paquete de software incluye un conjunto integral de bibliotecas de software que incluye el software de muestra que ilustra los patrones de diseño clave para aplicaciones capacitivas y táctiles.

Por ejemplo, la rutina main.c en los botones y el paquete de muestra del deslizador demuestra la inicialización del dispositivo seguido por un muestreo continuo del sensor. Dentro de este código, una instrucción del switch conduce secuencialmente el escaneo de un sensor después de que pasa un autoajuste opcional, espera que se complete el escaneo y, por último, procesa todos los sensores activados (Listado 1). La biblioteca Cypress incluye paquetes que implementan llamadas de software de nivel bajo requeridas para cada fase en la secuencia.

    DEVICE_STATE currentState = SENSOR_SCAN; 

    . . .

    /* Inciar Start CapSense */

     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();

    . . .

         }

     }

 }

Lista 1: El software de muestra de Cypress demuestra el uso de las capacidades de detección capacitiva PSoC 4000S. En esta aplicación de muestra, luego de iniciar el bloque PSoC 4000S CapSense, un bucle infinito realiza escaneos del sensor de manera secuencial (CapSense_ScanAllWidgets), espera que se completen los escaneos y, a continuación, procesa los resultados (CapSense_ProcessAllWidgets). (Fuente de código: Cypress Semiconductor)

Cuando están listos para probar los diseños de sensor, los desarrolladores pueden desconectar la placa del depurador y ambas placas del sensor pueden continuar el desarrollo con solo la placa principal. El kit ofrece cabezales para conectar entre los sensores del kit y los pines PSoC 4000S GPIO, por lo que se permite una fácil extensión a las almohadillas del sensor diseñadas por el cliente.

Para los desarrolladores que buscan construir el diseño del kit, el diseño de referencia asociado ofrece un esquema de hardware completo y un software asociado. Por ejemplo, el diseño de referencia del hardware ilustra el uso de series de almohadillas de sensores para el deslizante lineal (Figura 7). El suite del software ofrece un software de muestra que exhibe una técnica para mejorar la precisión de la estimación de la posición del dedo.

Diagrama del diseño de referencia del kit de prototipado Cypress PSoC 4000S

Figura 7: En el diseño de referencia del kit de prototipado de Cypress PSoC 4000S, un deslizador lineal consta de un grupo de almohadillas de sensor dispuestas en un patrón de zigzag para mejorar la resolución de identificación de la colocación del dedo. El diseño incluye un electrodo de transmisión, que permite una operación en modo de capacitancia mutua, así como un modo de autocapacitancia. (Fuente de la imagen: Cypress Semiconductor)

El diseño de zigzag de un deslizante lineal asegura que cuando un dedo toca un punto en particular en el deslizante, el dedo a veces toca segmentos adyacentes. El kit de software utiliza esta información en una rutina de nivel bajo (capsense_CalcCentroid) que calcula el centroide de los valores de conteo usando el sensor (Si) que exhibe las cantidades máximas así como los sensores (Si-1, Si+1) en cualquier lado (Listado 2). Al interpolar la posición del dedo de esta manera, el software puede generar una solución para la ubicación del dedo a una mayor resolución de lo que es posible simplemente al encontrar el sensor que exhibe el mayor valor de conteo. El software de muestra activa los ledes, ese sensor y los sensores a continuación (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);

Listado 2: La rutina capsense_CalcCentroid extrae los conteos de los sensores de un grupo de valores de conteo para cada sensor (capsense_centroid) para el sensor anterior, actual y próximo en el grupo lineal para devolver el resultado del cálculo de centroide que se muestra aquí. (Fuente del código: Cypress Semiconductor)

Conclusión

Al basarse en técnicas de detección capacitiva, las interfaces de detección táctil ofrecen a los usuarios un método intuitivo para controlar dispositivos que abarcan desde dispositivos para vestir hasta máquinas lavadoras. Junto con los requisitos de potencia mínima, la detección capacitiva ofrece fiabilidad y una mayor duración que es difícil de lograr con botones e interruptores mecánicos. Asimismo, los desarrolladores que buscan implementar sistemas de detección sólidos pueden demorarse fácilmente por iteraciones del diseño requeridas para resolver el diseño de circuito dependiente y las características del diseño físico en sistemas de detección capacitiva. Un kit de prototipado integral y el diseño de referencia basado en el Cypress Semiconductor PSoC 4000S ofrece una solución preparada para ayudar a los desarrolladores a implementar rápidamente los diseños de detección táctil capacitiva para un amplio rango de aplicaciones.

 
DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre la editorial

Editores de DigiKey de América del Norte