Vereinfachte Entwicklung kapazitiver Berührungssensor-Schnittstellen mithilfe des Cypress CY8CKIT

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Für viele Verbraucherprodukte von Haushaltsgeräten bis zu Wearables bildet die Berührungssteuerung eine elementare Voraussetzung. Aufgrund der komplexen Wirkungszusammenhänge zwischen funktionalem Design und physischem Layout ist die Entwicklung von Touch-Schnittstellen für Entwickler häufig jedoch mehr Kunst als Ingenieursarbeit. Das Durchspielen der zahlreichen technischen Wirkungszusammenhänge zum Erreichen der bestmöglichen Leistung von Knöpfen, Schiebereglern und anderen Elementen kann daher sehr zeitaufwendig sein.

Als Unterstützung bei der Entwicklung von Projekten bietet Cypress Semiconductor das PSoC 4000S CapSense Prototyping Kit an. Es umfasst die komplette Hardware und Software, die für die Evaluierung kapazitiver Touch-Schnittstellen benötigt wird, und beschleunigt ihre Implementierung bei einer Vielzahl von Produkten.

In diesem Artikel wird beschrieben, wie die verschiedenen Konzepte zur kapazitiven Erfassung von Berührungen funktionieren und auf welche Fallstricke Entwickler dabei achten müssen. Anschließend werden das PSoC CapSense Kit, seine Funktionsweise und die Arbeit mit ihm vorgestellt. Auch Code-Beispiele werden gegeben.

Warum kapazitive Berührungserfassung?

Kapazitive Berührungssensoren eignen sich ihrem Wesen nach für ein breites Anwendungsspektrum. Durch Wegfall der beweglichen Teile herkömmlicher mechanischer Knöpfe und Schalter sind Berührungssensorsysteme äußerst zuverlässig und das Risiko verschleißbedingter Ausfälle ist äußerst gering. Weil sie vollständig mit schützenden Materialien ummantelt werden können, sind sie auch in widrigen Umgebungen uneingeschränkt einsetzbar. Neben ihrer Zuverlässigkeit lassen sich Berührungssensoren problemlos an verschiedene Formen anpassen. Das hilft Entwicklern, auf die Verbrauchernachfrage nach schlanken, eleganten Designs bei Haushaltgeräten, Fahrzeugen und anderen Volumenprodukten zu reagieren.

Kapazitive Berührungssensoren bedienen sich der Änderung der Kapazität, die auftritt, wenn sich ein Finger oder eine Hand einer dafür ausgelegten Touch-Oberfläche nähert. Berührungssensoren erkennen diese Änderung mittels zweier Verfahren: Eigenkapazität oder Betriebskapazität.

Bei einem auf Eigenkapazität basierenden Berührungssensor stellt ein auf das Sensorpad gelegter Finger einen leitenden Pfad zu Masse her, was eine plötzliche Erhöhung der Kapazität bewirkt – erheblich höher als die verschiedenen Quellen parasitischer Kapazität zwischen dem Sensorpad und Masse (Abbildung 1). Das Eigenkapazitätsverfahren wird in der Regel bei Ein-Touch-Anwendungen wie Schaltflächen und Schiebereglern bevorzugt.

Bild von der Erfassung von Kapazitätsänderungen auf Basis der Eigenkapazität

Abbildung 1: Eigenkapazität erfasst Änderungen in der Kapazität zwischen einem E/A-Pin und Masse. Umgibt man den Sensor mit einer Struktur, die mit Masse verbunden ist, sinkt die Rauschanfälligkeit des Sensors. (Quelle: Cypress Semiconductor)

Bei der Erfassung mittels Betriebskapazität wird die Kapazität zwischen der Sender- und der Empfängerelektrode gemessen (Abbildung 2). Wenn ein Controller hier eine Spannung an die Senderelektrode legt, verhält sich die an der Empfängerelektrode gemessene Ladungsmenge direkt proportional zur Betriebskapazität zwischen den beiden Elektroden. Diese Technik kann einen höheren Rauschabstand als die Eigenkapazitätstechnik bieten und daher weniger störanfällig sein. Durch diesen höheren Rauschabstand funktioniert die Technik auch bei dickeren Verkleidungen, wie sie beispielsweise die Schutzscheiben und Displays darstellen, die bei industriellen Anwendungen erforderlich sind.

Sensoren, die in einem Feld angeordnet sind, bieten Entwicklern zudem die Möglichkeit der gleichzeitigen Nachverfolgung von Änderungen in der Betriebskapazität an verschiedenen Punkten. Deshalb wird diese Technik bei Multi-Touch-Anwendungen unter Verwendung von Trackpads bevorzugt, wie sie häufig bei kleineren Produkten im Verbraucherelektronikbereich oder bei Touchscreens in display-orientierten Anwendungen wie in Haushaltgeräten und Kfz zu finden sind.

Darstellung eines Erfassungssystems auf Basis der Betriebskapazität

Abbildung 2: In einem Erfassungssystem auf Basis der Betriebskapazität schaltet ein Controller Spannung an eine Senderelektrode (TX). Die an der Empfängerelektrode (RX) gemessene Ladungsmenge verhält sich proportional zur Betriebskapazität zwischen den beiden Elektroden. Die Berührung durch ein leitendes Objekt wie einen Finger bewirkt eine Änderung der gemessenen Betriebskapazität. (Quelle: Cypress Semiconductor)

Sensordesign

Wie in den Abbildungen 1 und 2 veranschaulicht sind kapazitive Sensorpads aus Leiterbahnen auf mehrschichtigen Platinen aufgebaut. Bei einem auf Eigenkapazität basierenden Knopf befindet sich die Sensorpad-Leiterbahn im einfachsten Fall umgeben von der Massefläche auf der Oberseite der Platine. Das Sensorpad ist an den Eingangspin eines Controllers angeschlossen, der in der Regel am Boden der Platine befestigt ist, der auch die Masse bereitstellt. Die obere Schicht ist mit einem nicht leitenden schützenden Verbundwerkstoff bedeckt, der den Überzug des Sensors bildet. Bei Tastaturen wird dieser grundlegende Aufbau durch individuelle Sensorpads erweitert, die zusammen ein Feld mit adressierbaren Tasten bilden.

Aus mehreren Sensorpads, die in der Regel in einem Zickzack-Muster angeordnet sind, lassen sich lineare Schieberegler erzeugen. Wie nachstehend beschrieben, liefert diese Anordnung Daten, mit denen die zugehörige Berührungssensor-Software die Fingerposition genauer berechnen kann. Bei Trackpads und Touchscreens wird diese Technik durch Nutzung zweier linearer Schieberegler erweitert. Mit ihrer Hilfe wird die X-Y-Position eines Fingers ermittelt, der auf eine Fläche des Pads oder Screens gesetzt wird.

In der Praxis kann das physische Design kapazitiver Berührungssensoren ziemlich komplex sein, weil die Entwickler anstreben, die parasitische Kapazität zu reduzieren, was auch die Empfindlichkeit des Sensors sinken lässt. Neben der sorgfältigen Auslegung der Massefläche selbst muss auch die strukturierte Massefläche exakt spezifischen physischen Entwurfsregeln genügen. Bei Haushaltsgeräten und anderen Produkten, bei denen die erfassten Sensorwerte u. U. von Flüssigkeiten verzerrt werden, können Entwickler komplexere Strukturen erzeugen, die falsche Werte eliminieren, wenn sich Flüssigkeit auf der Erfassungsfläche befindet. Auf der Betriebskapazität basierende Sensorfelder lassen den Aufbau noch komplexer werden – mit Feldern aus Sensoren, die auf Sender- und Empfängerleiterbahnen auf mehreren Platinenschichten aufbauen.

Auch wenn Entwickler bei der Schaffung dieser Sensoren Sorgfalt walten lassen müssen, folgt die Entwicklung von Kapazitäts-Berührungssensoren weitgehend einem typischen Prozess. Bevor es zur Vollproduktion der Sensorplatinen kommt, müssen die Ingenieure jedoch in der Regel Hardwareparameter und Softwareeinstellungen festlegen, um speziellen Charakteristika von Komponenten, Sensorpads und -platinen sowie spezifischen Anforderungen an die Sensorleistung und den Gesamtenergiebedarf Rechnung zu tragen. Spezialisierte SoC-Komponenten (System-on-Chip) wie der PSoC 4000S von Cypress Semiconductor integrieren spezifische Funktionen zur Vereinfachung der Implementierung kapazitiver Berührungssensor-Schnittstellen einschließlich der Anforderungen bezüglich der Feinabstimmung.

Cypress CapSense

Die Familie der PSoC-4-Komponenten von Cypress basiert auf dem Prozessorkern ARM®-Cortex®-M0+ und vereint Speicher mit programmierbaren analogen und digitalen Peripheriegeräten für ein breites Anwendungsspektrum. Vor allem der PSoC 4000S bietet die proprietären CapSense-Funktionen von Cypress, die aus einer kompletten Signalkette für die Verarbeitung kapazitiver Berührungssensoren bestehen. Mit ihnen können Ingenieure ein Berührungssensor-Design mit nur wenigen zusätzlichen Komponenten (Abbildung 3) implementieren.

Schaltbild des Cypress Semiconductor PSoC 4000S

Abbildung 3: Die Komponente PSoC-4000S von Cypress Semiconductor vereint einen ARM-Cortex-M0+-Kern sowie Speicher und Peripheriekomponenten mit der CapSense-Signalkette von Cypress für kapazitive Sensoren. Entwickler benötigen nur wenige zusätzliche Komponenten, um Erfassungslösungen auf der Basis von Eigenkapazitäts- oder Betriebskapazitätssystemen zu implementieren. (Quelle: Cypress Semiconductor)

Bei Sensorsystemen auf der Basis der Eigenkapazität wird jedes Sensorpad unter Hinzunahme eines zusätzlichen externen CMOD-Kondensators an einen GPIO-Pin angeschlossen (Abbildung 3). Sensorsysteme auf Basis der Betriebskapazität nutzen separate GPIOs für jede Sensorempfänger- und -senderleitung sowie ein Paar externer Kondensatoren: CINTA und CINTB. Ein externer CTANK-Kondensator unterstützt zusätzlich die Implementierung von Schirmelektroden, die der Reduzierung der Empfindlichkeit für Flüssigkeiten auf der Oberfläche des Sensorüberzugs dienen.

Der PSoC 4000S unterstützt das Eigenkapazitäts- und das Betriebskapazitätsverfahren. Für die Erfassung mittels Eigenkapazität misst die CapSense-Sigma-Delta-Funktion (CSD) des SoC Änderungen der Eigenkapazität an einem GPIO mittels eines Strom-Digital-Wandlers. Bei der Erfassung mittels Betriebskapazität treibt die CapSense Crosspoint (CSX)-Funktion des SoC eine Tx-Elektrode an und misst die Ladung an einer Rx-Elektrode. Die gemessene Ladung an der Rx-Elektrode verhält sich proportional zur Betriebskapazität zwischen den beiden Elektroden.

Bei beiden Ansätzen erzeugt der Wandler einen Rohzählwert, der die gemessene Eigenkapazität an einem GPIO oder die gemessene Betriebskapazität an einem Rx-Pin widerspiegelt. Durch Vergleich des Rohzählwertes mit den programmierbaren Rausch- und Signalschwellenwerten kann die Firmware ermitteln, ob sich ein Finger auf einem Knopf des Sensorpads oder einem Sensor für einen bestimmten Punkt auf einem Schieberegler oder Touchpad befindet (Abbildung 4).

Kurve des CapSense-Blocks des PSoC 4000S von Cypress

Abbildung 4: Der CapSense-Block des PSoC 4000S von Cypress erzeugt Zählwerte, die eine Berührung signalisieren, wenn sie über einen programmierbaren Rauschschwellenwert steigen und programmierbare Berührungsschwellenwerte erreichen. CapSense unterstützt zudem Hysterese-Schwellenwerte über und unter dem Zielschwellenwert für die Berührungserfassung. (Bildquelle: Cypress Semiconductor)

Der CapSense-Block kann diesen Scan ausführen, ohne dass ein Eingriff der CPU erforderlich wäre. Deshalb können Entwickler den Cortex-M0+-Kern so programmieren, dass er während der Sensor-Scans andere Aufgaben ausführt. In der Praxis können Stromänderungen in Zusammenhang mit der unabhängigen Prozessoraktivität jedoch ein Rauschen in den empfindlichen analogen Schaltkreisen innerhalb des CapSense-Blocks verursachen. Deshalb beschränken Entwickler in der Regel die Prozessoraktivität während der Scans. Das gilt vor allem für Anwendungen, die eine hohe Empfindlichkeit und entsprechend rauscharme Umgebungen erfordern.

Unterschiedliche Sensoren können aufgrund von produktionsbedingten Schwankungen verschiedene Rauschpegel und Empfindlichkeiten aufweisen. Das macht eine sorgfältige Abstimmung von Hardware- und Softwareparametern zur Korrektur dieser Unterschiede erforderlich. Über diese systemischen Schwankungen hinaus können unmittelbare Änderungen an den Umgebungsbedingungen Faktoren ins Spiel bringen, die einen dynamischen Einfluss auf die Empfindlichkeit, Leistung und Präzision haben.

Damit die Leistung auch bei sich ändernden Bedingungen konstant bleibt, bietet die SmartSense-Funktion des PSoC 4000S eine Auto-Tuning-Fähigkeit, die automatisch Parameter setzt, die eine optimale Empfindlichkeit und Leistung garantieren. Bei Initialisierung des CapSense-Blocks berechnet SmartSense Parameter wie die Scan-Auflösung sowie Einstellungen für die internen Taktgeber sowie weitere wichtige interne Schaltkreise neu. Zu Beginn jedes Scans kann SmartSense jedoch automatisch dynamischere Parameter wie die Werte für den Rausch- und den Berührungsschwellenwert aktualisieren. Daher kann SmartSense eine dynamische Kompensation für unterschiedliche Rauschumgebungen und sogar für zufällig auftretende Rauschspitzen vornehmen, die sich bei der Entwicklung nicht antizipieren lassen.

In manchen Fällen müssen die Entwickler jedoch trotzdem zu manuellen Abstimmungsverfahren greifen. So unterstützt SmartSense beispielsweise Systeme mit einer parasitischen Kapazität von bis zu 45 pF. Systeme mit einer sehr hohen parasitischen Kapazität bedürfen daher folglich einer manuellen Abstimmung. Zudem unterstützt SmartSense nur Sensorsysteme auf Basis der Eigenkapazität. Sensorsysteme auf Basis der Betriebskapazität müssen manuell abgestimmt werden. Cypress rät auch bei Eigenkapazitätssystemen zur manuellen Abstimmung, wenn die Anwendung eine sehr genaue Steuerung spezifischer Parametereinstellungen wie die Scanzeit des Sensors erfordert.

Schnelle Entwicklung

Mit all seinen integrierten Funktionen kann eine komplexe Komponente wie der PSoC 4000S einen erheblichen Aufwand für die Programmierung jedes Blocks auf dem Chip erfordern. Zur Vereinfachung von Programmierung und Konfiguration bietet Cypress seine kostenlose PSoC Creator-Softwareumgebung. PSoC Creator ist eine integrierte Entwicklungsumgebung (IDE), die Unterstützung bei den komplizierten Details der Gerätehardware-Konfiguration und den zugehörigen Softwareschichten liefert.

PSoC Creator ist mit PSoC 4-Design-Kits von Cypress kompatibel, die über einen integrierten Bootloader oder Debugger verfügen. Das vereinfacht die Entwicklung mit einer PSoC-Komponente enorm: Die Entwicklungskarte wird einfach an den USB-Port eines Systems angeschlossen und dann werden die geeigneten Parameter ausgewählt. Entwickler können beispielsweise die Auto-Tuning-Funktion SmartSense aktivieren, indem Sie sie in einem Konfigurationsbildschirm von PSoC Creator auswählen (Abbildung 5).

Abbildung der Cypress PSoC Creator IDE

Abbildung 5: Die Cypress PSoC Creator IDE vereinfacht die Programmierung und Entwicklung. Die Gerätekonfiguration und die Einrichtung der Funktionen wie SmartSense Auto-Tuning werden auf eine Reihe von auszuwählenden Optionen in Bildschirmen reduziert, die sich jeweils auf bestimmte Bereiche des Funktionsumfangs des Geräts beziehen. (Bildquelle: Cypress Semiconductor)

Die Kombination aus der PSoC 4000S-Hardware und der PSoC Creator IDE bietet einen erheblichen Vorteil bei der Implementierung von kapazitiven Erfassungssystemen. Wie eingangs erwähnt stellen Probleme wie parasitische Kapazität, Rauschquellen und Feinheiten des Systems dennoch eine Hürde für Entwicklungsteams dar, die ein System auf Basis kapazitiver Berührungssensoren entwickeln wollen. Cypress trägt dem Bedarf nach schneller Entwicklung mit seinem PSoC 4000S Prototyping Kit Rechnung. Es bietet eine vollständige kapazitive Touch-Hardware-Implementierung und Beispielsoftware. Das Kit enthält die KitProg2-Debugging-Karte von Cypress, die Knopfsensorkarte, eine Linearer-Schieberegler-Karte und eine Hauptplatine mit dem PSoC 4000S sowie das EZ-BLE PRoC-Gerät von Cypress für die BLE-Kommunikation (Bluetooth Low Energy).

Entwickler können schnell mit dem Testen von Sensoranwendungen beginnen, indem Sie einfach die Karte in Ihren USB-Port stecken (Abbildung 6). Mithilfe von PSoC Creator kann der Entwickler ein Beispielprojekt auswählen und kompilieren, mit dem Firmware-Programmierer der IDE die PSoC-4000S-Komponente auf der Hauptplatine programmieren und den integrierten Debugger nutzen, um den Laufzeitbetrieb zu prüfen. Das Kit unterstützt die Erfassung mittels Eigen- und Betriebskapazität auf Knopf- und Schiebereglerkarten. Und Entwickler können mit dem PSoC Creator das Kit so konfigurieren, dass die Sensoren in beiden Konfigurationen laufen.

Bild des PSoC 4000S Prototyping Kit von Cypress

Abbildung 6: Das PSoC 4000S Prototyping Kit von Cypress bietet eine einzigartige trennbare Ausführung und umfasst die per USB angeschlossene Debugger-Karte, die Berührungssensorkarte, die Karte für den linearen Schieberegler sowie die Hauptplatine, die für die Entwicklung benutzerspezifischer Lösungen mit kapazitiven Sensoren separiert werden kann. (Bild: Cypress Semiconductor)

Sowohl der PSoC Creator als auch die PSoC 4000S Prototyping Kit-Software-Suite stehen kostenlos zum Herunterladen bereit. PSoC Creator dient dem Konfigurieren und Programmieren des auf der Platine befindlichen PSoC-4000S-Bausteins des Kits. Das Softwarepaket hingegen umfasst neben der Beispielsoftware zur Veranschaulichung der wichtigsten Entwurfsmuster für Anwendungen mit kapazitiven Berührungssensoren eine umfangreiche Reihe von Softwarebibliotheken.

So demonstriert die main.c-Routine im Knopf- und Schieberegler-Beispielpaket beispielsweise die Geräteinitialisierung gefolgt von der kontinuierlichen Überwachung der Sensoren. Innerhalb dieses Codes führt eine Switch-Anweisung nach einem optionalen Auto-Tuning-Durchlauf sequenziell einen Sensor-Scan durch, wartet auf den Abschluss des Scans und verarbeitet abschließend alle aktivierten Sensoren (Auflistung 1). Die Cypress-Bibliothek enthält Pakete, die die Software-Aufrufe der unteren Ebene implementieren, die für jede Phase in der Sequenz benötigt werden.

    DEVICE_STATE currentState = SENSOR_SCAN; 

   . . .

    /* CapSense-Block starten */

     CapSense_Start();

  . . .

    for(;;)

     {

         /* Umschalten zwischen den Zuständen SENSOR_SCAN->WAIT_FOR_SCAN_COMPLETE->PROCESS_DATA */

         switch(currentState)

         {

             case SENSOR_SCAN:

                   /* Neuen Scan nur starten, wenn sich der CapSense-Block im Leerlauf befindet */

                 if(CapSense_NOT_BUSY == CapSense_IsBusy())

                 {

                     #if ENABLE_TUNER

                         /* CapSense-Parametersatz über CapSense-Tuner vor

                            Beginn des CapSense-Scans festlegen

                         */

                         CapSense_RunTuner();

                     #endif

                    

                     /* Scan-Widget konfiguriert durch CSDSetupWidget API */

                     CapSense_ScanAllWidgets();

                                        

                     /* Nächsten Zustand auf WAIT_FOR_SCAN_COMPLETE setzen  */

                     currentState = WAIT_FOR_SCAN_COMPLETE;

                 }

                 break;

 

             case WAIT_FOR_SCAN_COMPLETE:

 

                 /* Gerät auf CPU Sleep setzen, bis CapSense-Scanning abgeschlossen ist */

                 if(CapSense_NOT_BUSY != CapSense_IsBusy())

                 {

                     CySysPmSleep();

                 }

                 /* Wenn CapSense-Scanning abgeschlossen ist, die CapSense-Daten verarbeiten */

                 else

                 {

                     currentState = PROCESS_DATA;

                 }

                 break;

        

             case PROCESS_DATA:

                

                 /* Daten zu allen aktivierten Widgets verarbeiten */

                 CapSense_ProcessAllWidgets();

                

                 /* Steuert Status der LEDs auf Basis des Ergebnisses der Widget-Verarbeitung. */

                 LED_Control();

    . . .

         }

     }

 }

Auflistung 1: Beispielsoftware von Cypress veranschaulicht Verwendung der Fähigkeiten des PSoC 4000S im Hinblick auf die kapazitive Sensorerfassung. Bei dieser Beispielanwendung werden nach der Initialisierung des CapSense-Blocks des PSoC 4000S in Endlosschleife sequenziell Sensor-Scans ausgeführt (CapSense_ScanAllWidgets). Dann wird auf den Abschluss der Scans gewartet und anschließend werden die Ergebnisse verarbeitet (CapSense_ProcessAllWidgets). (Code-Quelle: Cypress Semiconductor)

Sind die Entwickler so weit, dass sie ihre entwickelten Sensorsysteme testen können, können sie die Debugger-Karte und beide Sensorkarten abziehen und die Entwicklung nur noch mit der Hauptplatine fortsetzen. Das Kit hat Stiftleisten für die Anschlüsse zwischen den Kit-Sensoren und den GPIO-Pins des PSoC 4000S. Das ermöglicht eine einfache Erweiterung um selbst entwickelte Sensorpads.

Entwicklern, die ihr System auf dem Kit-Design aufbauen wollen, bietet das zugehörige Referenzdesign komplette Hardware-Schaltbilder und die zugehörige Software. Das Hardware-Referenzdesign veranschaulicht beispielsweise die Nutzung einer Reihe von Sensorpads für den linearen Schieberegler (Abbildung 7). Die zugehörige Software-Suite umfasst Beispielsoftware, die ein Verfahren für die Optimierung der Genauigkeit der Ermittlung der Fingerposition demonstriert.

Schaltbild des Referenzdesigns des Cypress PSoC 4000S Prototyping Kit

Abbildung 7: Im Referenzdesign des Cypress PSoC 4000S Prototyping Kit umfasst ein linearer Schieberegler einen Array mit Sensorpads, die in Zickzack-Muster angeordnet sind, um die Auflösung bei der Ermittlung der Fingerposition zu verbessern. Bestandteil des Designs ist eine Sender-Elektrode, die den Betrieb im Betriebskapazitätsmodus und im Eigenkapazitätsmodus ermöglicht. (Bildquelle: Cypress Semiconductor)

Die Zickzack-Anordnung eines linearen Schiebereglers garantiert, dass der Finger bei Berührung eines bestimmten Punktes auf dem Schieberegler teilweise auch angrenzende Segmente berührt. Das Software-Kit nutzt diese Daten in einer Routine der unteren Ebene (capsense_CalcCentroid). Diese berechnet den Mittelpunkt der Zählwerte unter Verwendung des Sensors (Si), der die maximalen Zählwerte aufweist, sowie seiner beiden benachbarten Sensoren (Si-1, Si+1) (Auflistung 2). Durch diese Interpolation der Fingerposition kann die Software eine Finger-Positionierungslösung mit höherer Auflösung als bei der einfachen Ermittlung des Sensors mit dem höchsten Zählwert erzeugen. Die Muster-Softwareanwendung schaltet dann die LEDs, diesen Sensor und die Sensoren unter ihm an (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];

 

        /* (Zähler/Nenner) + Maximum */

        denominator = (((int32)(uint32)((uint32)numerator << 8u)/denominator) + (int32)(uint32)((uint32) maximum << 8u));

    . . .

        /* Ergebnis runden und an uint8 übergeben */

         position = ((uint8) HI16((uint32)denominator + capsense_CENTROID_ROUND_VALUE));

         return (position);

Auflistung 2: Die Routine capsense_CalcCentroid extrahiert Sensorwerte aus einer Reihe von Zählwerten für jeden Sensor (capsense_centroid) für den vorherigen, aktuellen und nächsten Sensor im linearen Array, um das hier gezeigte Ergebnis der Mittelpunktberechnung zurückzugeben. (Code-Quelle: Cypress Semiconductor)

Fazit

Auf der Basis kapazitiver Erfassungstechniken bieten berührungsempfindliche Schnittstellen eine intuitive Methode für die Steuerung von Geräten von Wearables bis hin zu Waschmaschinen. Neben dem minimalen Leistungsbedarf bietet die kapazitive Erfassung Zuverlässigkeit und eine Lebensdauer, die sich in dieser Form mit mechanischen Knöpfen und Schaltern nur schwer erreichen lässt. Entwickler, die robuste Berührungserfassungssysteme implementieren wollen, können jedoch sehr leicht von Design-Iterationen aufgehalten werden, die notwendig sind, um die Probleme mit Wechselwirkungen zwischen Schaltkreis-Design und physischem Layout zu lösen, wie sie bei kapazitiven Erfassungssystemen üblich sind. Ein umfassendes Prototyping Kit und Referenzdesign auf der Basis des Cypress Semiconductor PSoC 4000S bietet eine fertige Lösung, mit der Entwickler in kurzer Zeit robuste kapazitive Berührungserfassungssysteme für ein breit gefächertes Anwendungsspektrum entwickeln können.

 
DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey