Startseite > Nachrichten > Inhalt

Bridgetek BT81X (815/6) Erweiterte EVE-Touchscreen-Engine

May 09, 2019

Die BT815 / 6-Touchscreen-Engine unterstützt sowohl resistive als auch kapazitive Touchscreens. BT816 unterstützt
resistive Touch, während BT815 kapazitive Touch unterstützt.

4.8.1 Resistive Touch-Steuerung

Der resistive Touchscreen besteht aus einer Touchscreen-Engine, einem ADC, Achsenschaltern und einem ADC-Eingang
Multiplexer. Die Touchscreen-Engine liest Befehle aus dem Speicherzuordnungsregister und generiert die
benötigte Steuersignale zu den Achsschaltern und Eingängen Mux und ADC. Die ADC-Daten werden erfasst,
verarbeitet und aktualisiert in dem jeweiligen Register für die MPU / MCU zu lesen.

image

Der Host steuert den TOUCH SCREEN ENGINE-Betriebsmodus durch Schreiben des REG_TOUCH_MODE.

image

Die Touchscreen-Engine erfasst die rohen X- und Y-Koordinaten und schreibt in das Register REG_TOUCH_RAW
XY. Der Bereich dieser Werte liegt zwischen 0 und 1023. Wenn der Touchscreen nicht gedrückt wird, werden beide Register gelesen
65535 (FFFFh).
Diese Berührungswerte werden unter Verwendung der Matrix in Registern in Bildschirmkoordinaten umgewandelt
REG_TOUCH_TRANSFORM_A-F. Die Nachtransformationskoordinaten sind im Register verfügbar
REG_TOUCH_SCREEN_XY. Wenn der Touchscreen nicht gedrückt wird, werden in beiden Registern -32768 (8000h) angezeigt.
Die Werte für REG TOUCH TRANSFORM AF können mithilfe einer Bildschirmkalibrierung berechnet werden.
Wenn der Bildschirm berührt wird, werden die Bildschirmkoordinaten im Tag-Puffer des Bildschirms nachgeschlagen und übermittelt
ein endgültiger 8-Bit-Tag-Wert in REG TOUCH TAG. Weil die Tag-Suche einen vollen Frame einnimmt und berührt
Koordinaten ändern sich ständig, das Original (x; y), das für die Tag-Suche verwendet wird, ist auch in verfügbar
REG_TOUCH_TAG_XY.
Der Touchscreen-Druck ist in REG_TOUCH_RZ verfügbar. Der Wert ist relativ zum Widerstand der Berührung
Kontakt bedeutet ein niedrigerer Wert mehr Druck. Das Register ist standardmäßig auf 32767 eingestellt, wenn dies nicht der Fall ist
erkannt. REG_TOUCH_THRESHOLD kann so eingestellt werden, dass eine Berührung nur dann akzeptiert wird, wenn der Kraftschwellenwert beträgt
übertroffen.

4.8.2 Kapazitive Berührungssteuerung

Die Capacitive Touch Screen Engine (CTSE) des BT815 kommuniziert mit dem externen kapazitiven
Touchpanel-Modul (CTPM) über eine I 2 C-Schnittstelle. Das CTPM bestätigt seine Interrupt-Leitung, wenn vorhanden
eine Berührung erkannt. Wenn erkannt wird, dass die Leitung CTP_INT_N aktiv ist, liest das BT815 / 6 die Touch-Daten durch
I 2 C. Bis zu 5 Berührungen können gemeldet und in BT815-Registern gespeichert werden.
Das BT815 CTSE unterstützt Focaltech- und Goodix-Touch-Controller sowie den Touch-Host-Modus (siehe
Abschnitt 4.8.7). Eine Liste der unterstützten CTPMs finden Sie unter AN_336 FT8xx - Auswählen eines LCD-Displays .
Das BT815 verwendet den I2C-Adresswert im REG_TOUCH_CONFIG-Register, um Focaltech oder zu unterscheiden
Goodix-Touch-Steuerungen. Für Focaltech IC muss die I2C-Adresse auf 0x38-0x3F eingestellt sein (Beispiel:
REG_TOUCH_CONFIG = 0x0380), während für Goodix IC die I2C-Adresse auf 0x5D eingestellt sein muss (Beispiel:
REG_TOUCH_CONFIG = 0x05D0).

image

Der Host steuert den CTSE-Betriebsmodus durch Schreiben des REG_CTOUCH_MODE.

image

Das BT815 CTSE unterstützt den Kompatibilitätsmodus und den erweiterten Modus. Standardmäßig läuft das CTSE in
Kompatibilitätsmodus, bei dem das Touch-System eine Oberfläche bietet, die der resistiven Berührung sehr ähnlich ist
Motor. Im erweiterten Modus werden die Berührungsregisterbedeutungen geändert und ein zweiter Registersatz
ausgesetzt. Diese ermöglichen die Multitouch-Erkennung (bis zu 5 Berührungen).

4.8.3 Kompatibilitätsmodus

Das CTSE liest die X- und Y-Koordinaten vom CTPM und schreibt in das Register REG_CTOUCH_RAW_XY. Ob
Der Touchscreen wird nicht gedrückt, beide Register lesen 65535 (FFFFh).

Diese Berührungswerte werden unter Verwendung der Matrix in Registern in Bildschirmkoordinaten umgewandelt
REG_CTOUCH_TRANSFORM_A-F. Die Nachtransformationskoordinaten sind im Register verfügbar
REG_CTOUCH_SCREEN_XY. Wenn der Touchscreen nicht gedrückt wird, werden in beiden Registern -32768 (8000h) angezeigt.
Die Werte für REG_CTOUCH_TRANSFORM_A-F können unter Verwendung eines Kalibrierungsprozesses auf dem Bildschirm berechnet werden.
Wenn der Bildschirm berührt wird, werden die Bildschirmkoordinaten im Tag-Puffer des Bildschirms nachgeschlagen und übermittelt
ein endgültiger 8-Bit-Tag-Wert in REG_TOUCH_TAG. Weil die Tag-Suche einen vollen Frame einnimmt und berührt
Koordinaten ändern sich ständig, das Original (x; y), das für die Tag-Suche verwendet wird, ist auch in verfügbar
REG_TOUCH_TAG_XY.

4.8.4 Erweiterter Modus

Durch Setzen von REG_CTOUCH_EXTENDED auf 1b'0 wird der erweiterte Modus aktiviert. Im erweiterten Modus wird ein neuer Satz von
Es stehen Ausleseregister zur Verfügung, mit denen Gesten und bis zu fünf Berührungen gelesen werden können. Es gibt zwei
Registerklassen: Steuerregister und Statusregister. Steuerregister werden von der MCU geschrieben.
Statusregister können von der MCU und dem Hardware-Tag-System des BT815 / 6 ausgelesen werden.
Die fünf Berührungskoordinaten sind in REG_CTOUCH_TOUCH0_XY, REG_CTOUCH_TOUCH1_XY gepackt.
REG_CTOUCH_TOUCH2_XY, REG_CTOUCH_TOUCH3_XY, REG_CTOUCH4_X und REG_CTOUCH4_Y.
In diesen Registern gespeicherte Koordinaten sind vorzeichenbehaftete 16-Bit-Werte, haben also einen Bereich von -32768 bis 32767
Der berührungslose Zustand wird durch x = y = -32768 angezeigt. Diese Koordinaten sind bereits in Bildschirm umgewandelt
Koordinaten basierend auf den aus dem CTPM gelesenen Rohdaten unter Verwendung der Matrix in Registern
REG_CTOUCH_TRANSFORM_A-F. Um rohe (x, y) Koordinaten zu erhalten, die vom CTPM gelesen wurden, setzt der Benutzer die
REG_CTOUCH_TRANSFORM_A-F registriert sich in der Identitätsmatrix.
Der BT815 / 6-Tag-Mechanismus ist hardwaremäßig implementiert, sodass bis zu 5 Tags abgerufen werden können.


4.8.5 Kurzschlussschutz

Für resistive Berührungen ist es hilfreich, den Chip vor dauerhaften Beschädigungen durch mögliche Kurzschlüsse zu schützen
auf den 4 XY-Linien. Wenn ein Kurzschluss auf dem Touchscreen auftritt, kann das BT816 diesen erkennen und den Alarm stoppen
Berührungserkennungsoperation, wobei die 4 XY-Stifte im hochohmigen Zustand belassen werden.
Der Kurzschlussschutz kann durch REG_TOUCH_CONFIG aktiviert / deaktiviert werden.


4.8.6 Kapazitive Touch-Konfiguration

Auf einem kapazitiven Touch-System müssen einige Benutzer möglicherweise die CTPM-Standardwerte anpassen, z
Register, die die Berührungsempfindlichkeit beeinflussen. Dazu muss die folgende Sequenz einmal nach dem Chip ausgeführt werden
zurücksetzen:
- Touch Engine im Reset halten (REG_CPURESET = 2 setzen)
- Schreiben Sie die CTPM-Konfigurationsregisteradresse und den Wert in den vom BT815 angegebenen Speicherort
- Es können bis zu 10 Registeradressen / -werte hinzugefügt werden
- Lassen Sie den Touch Engine Reset los (setzen Sie REG_CPURESET = 0)
Das CTPM kann im Energiesparmodus aktiviert werden, wenn die Touch-Funktion von der Anwendung nicht benötigt wird.
Durch Setzen des Low-Power-Bits in REG_TOUCH_CONFIG wird der Low-Power-Modus des CTPM aktiviert. Wann
Wenn das Low-Power-Bit gelöscht wird, sendet die BT815-Touch-Engine einen Reset an das CTPM und aktiviert das
Berührungserkennungsfunktion.


4.8.7 Hostgesteuertes Multi-Touch

Wenn die Host-MCU Touch-Eingaben bereitstellen kann, kann sie diese über den Touch-Host direkt an das BT815 liefern
Modus. Im Touch-Host-Modus kann eine Anwendung einen Touch-Controller auswählen, der sich nicht in der Liste befindet
BT815 direkte Support-Liste. Im Touch Host-Modus können beispielsweise Controller von anderen verwendet werden
Hersteller jenseits von Focaltech und Goodix.
Um den Touch-Host-Modus zu verwenden, muss die Host-MCU direkt mit dem Touch-Panel verbunden sein. Die vier berühren sich
Zugehörige Pins des BT815 können auf der Platine nicht angeschlossen werden. Die Host-MCU ist dafür verantwortlich , mit dem Touch-Controller zu kommunizieren, die Touch-Daten abzurufen, wenn sie gemeldet werden, und die Touch-Daten zum Nachschlagen und Melden von Touch-TAGs auf das BT815 zu schreiben.

Der Touch-Host-Modus kann durch Setzen des Bits 14 im Register REG_TOUCH_CONFIG und Zurücksetzen des
Motor berühren:
- Touch Engine im Reset halten (REG_CPURESET = 2 setzen)
- 1 in Bit 14 in REG_TOUCH_CONFIG schreiben (REG_TOUCH_CONFIG = 0x4000 setzen)
- Lassen Sie den Touch Engine Reset los (setzen Sie REG_CPURESET = 0)

image

Im Touch-Host-Modus liefert der Host Touch-Informationen über vier Register:

image

Der Host schreibt rohe (x; y) Koordinaten und IDs in die obigen Register. Mit können bis zu 5 Berührungen eingestellt werden
Berühren Sie die IDs 0-4. Der Host zeigt keine Berührung an, indem er Koordinaten angibt (0x8000; 0x8000). Wenn der Gastgeber
schreibt 0xf in das ID-Register, BT815 setzt das ACK-Register auf 0, transformiert alle Rohkoordinaten und
Schreibt die Ergebnisse in die regulären Berührungsregister.
Pseudocode:

Warten Sie, bis REG_EHOST_TOUCH_ACK den Wert 1 hat

für jede Berührung:

Schreiben Sie die x-Koordinate in REG_EHOST_TOUCH_X

Schreiben Sie die y-Koordinate in REG_EHOST_TOUCH_Y

Schreibe die ID in REG_EHOST_TOUCH_ID

Schreiben Sie 0xf in REG_EHOST_TOUCH_ID

Sobald BT815 die Koordinaten konvertiert hat, schreibt es 1 in das ACK-Register und setzt die INT_CONV
_COMPLETE Interrupt-Flag.


Die ID sollte im Berührungskompatibilitätsmodus Null sein. Der Host sollte überhaupt keine Berührung durch Schreiben anzeigen
(0x8000; 0x8000) mit der ID 0.
Im erweiterten Modus können die Mehrfachberührungen in beliebiger Reihenfolge gesendet werden. Alle nicht zugewiesenen IDs werden angenommen
nicht gedrückt werden. Wieder sollte der Host überhaupt keine Berührung anzeigen, indem er (0x8000; 0x8000) mit der ID 0 schreibt.
Der Host kann drei Methoden verwenden, um sicherzustellen, dass das BT815 zur Annahme von Berührungseingaben bereit ist:

1. fragen Sie das ACK-Register ab, bis es 1 ist

2. Verwenden Sie das Interrupt-Flag INT_CONV_COMPLETE

3. Berührungen langsamer als 1000 Hz liefern, da BT815 garantiert, dass die Berührungen in weniger als 1 ms verarbeitet werden. Beachten Sie, dass die Melderaten von kapazitiven Touchpanels etwa 100 Hz betragen


Wie der direkte kapazitive Treiber funktioniert dieser Touch-Host-Modus, wenn REG_CTOUCH_EXTENDED beide Werte aufweist
CTOUCH_MODE_EXTENDED und CTOUCH_MODE_COMPATIBILITY. CTOUCH_MODE_COMPATIBILITY
sollte für das Kalibrierungsverfahren verwendet werden, genau wie bei Verwendung der nativen kapazitiven Unterstützung. Nach dem Wechsel
Modus muss die BT815 Touch Engine zurückgesetzt werden.


4.8.8 Berührungserkennung im nicht AKTIVEN Zustand

Wenn sich das BT815 / 6 im Status "Nicht AKTIV" befindet, kann ein Berührungsereignis weiterhin erkannt und an den Host gemeldet werden
über den INT_N-Pin. Mit anderen Worten, ein Berührungsereignis kann den Host bei Bedarf aufwecken.
Bei resistiven Berührungen wird der INT_N-Pin unabhängig von der niedrig gesetzt, wenn der Bildschirm berührt wird
Setzen der Interrupt-Register. Dies geschieht, wenn sich das BT816 im STANDBY- oder SLEEP-Zustand befindet, jedoch nicht
im ausgeschalteten Zustand.
Bei kapazitiver Berührung folgt der INT_N-Pin dem CTP_INT_N-Pin, wenn sich das BT815 im STANDBY-, SLEEP- oder
POWERDOWN-Zustand.