Forum: Mikrocontroller und Digitale Elektronik AD7843 unlinear?


von Florian M. (micro-flo)


Lesenswert?

Hallo zusammen,
Ich benutze einen AD7843 mit unterschiedlichen resistiven 
Touchscreenfolien.
Leider sind die Meßergebnisse ziemlich unlinear.
Tippe ich z.B. auf der X-Achse unterschiedliche Punkte an, verändert 
sich auch die Y-Achse.
Bei 6,5" habe ich z.B. von links nach rechts 20% Abweichung.
Das passiert mit 2 unterschiedlichen Panels. Eins davon ist ein 3M 
Microtouch PL46.4E2.
Zu dem habe ich auch den original Controller SC401U und damit ist das 
Panel perfekt linear.
Auch auf dem Oszi sehen die Paneldaten ok aus.
D.h. es wird am AD7843 liegen.
Beschaltung ist nach Datenblatt. Ref. und Versorgung sind 3,3V.
Die Touch-Anschlüsse sind direkt am Panel.
Vertauschen der Anschlüsse bringt ein Vertauschen der Achsen, ändert 
aber nichts an der Unlinearität
Ich habe schon unterschiedliche Routinen probiert, die Daten abzufragen.

Aktuell mache ich es so:
1
TOUCH_CS_LOW();
2
Touch_SendByte(0xD0);
3
uint16_t data0 = Touch_SendByte(0);
4
uint16_t data1 = Touch_SendByte(0);
5
6
Touch_SendByte(0x90);
7
uint16_t data2 = Touch_SendByte(0);
8
uint16_t data3 = Touch_SendByte(0);
9
10
TOUCH_CS_HIGH();
11
12
uint16_t X = data0 << 5;
13
X |= data1 >> 3;
14
uint16_t Y = data2 << 5;
15
Y |= data3 >> 3;

Ich könnte die Unlinearität natürlich mit der Kalibrierung rausrechnen, 
aber ich glaube nicht, dass das so gedacht ist.
Setzt jemand den AD7843 ohne Probleme ein?

Grüße,
Flo

Edit: Ich nehme auch gerne Vorschläge für bessere Touchscreen-Chips an. 
Der AD7843 hat einfach gut gepasst wegen Preis und verfügbarkeit.
Die ADC Pins meines MCs sind leider alle belegt, sonst würde ich es 
darüber machen.

: Verschoben durch Admin
von Purzel H. (hacky)


Lesenswert?

Und der effektive Sensor sieht wie aus ?

von gnuopfer (Gast)


Lesenswert?

Schau' dir mal die Leitungen mit dem Oszi an. Ich hatte mal das gleiche 
Phänomen, da gab es ein Übersprechen der X & Y - Leitungen zum Display.
Bei mir war allerdings kein externer Chip im Spiel, sondern direkt die 
ADCs des Controllers.

mfg

von Herbert K. (avr-herbi)


Lesenswert?

Hallo, ich habe durch Zufall eben einen Artikel gefunden:
How To Calibrate Touch Screens
http://www.embedded.com/story/OEG20020529S0046
Vielleicht so als Info ganz hilfreich. (Löst sicher nicht dies Problem)

von Florian M. (micro-flo)


Lesenswert?

Hi,
Danke für die Antworten.
Ich hab noch viel experimentiert und konnte es nicht lösen.
Übersprechen gibt es anscheinend keins.
Bin jetzt dabei, das mit ADC Pins zu lösen und soweit siehts gut aus.

von Herbert K. (avr-herbi)


Lesenswert?

Ansonsten gibt es ja noch kompatible Chips:
RSM1843 Risong Electronics
XPT2046 XPTEK TECHNOLOGY CO.,LTD
ADS7846 Texas
TSC2046 Texas
TSC2007 Texas
LM8300/8500 National
MAX1233/1234 Maxim/Dallas
AD7877 Analog Devices
....
Viel Erfolg!
Herbert

PS: Die Lösung dann vielleicht auch mal anschließend zum Besten geben. 
Danke.

von Florian M. (micro-flo)


Lesenswert?

Hi, Danke.
Aber ich habe es jetzt mit den ADC Pins gelöst.
Ich lege Vcc an X+, GND an X- und messe dann an Y+ die X Spannung.
Ein Problem war, dass sich eine Spannung an Y+ aufgebaut hat.
Vermutlich wirkt der Touchscreen als Kondensator, der sich auflädt.
Ich habe jetzt an X- und Y- jeweils 100k gegen Masse und damit läufts.
X und Y sind schön linear und Drücke werden sauber erkannt.

Vielleicht war beim AD7843 auch das Problem mit den Spannungen.
Aber sollte so ein Chip das nicht automatisch ausgleichen?

Wie auch immer bin ich froh, es so gemacht zu haben.

von horst peter (Gast)


Lesenswert?

ohh das Thema ist sogar noch aktuell...

also ich hatte das gleiche Problem, lag schlicht und einfach daran dass 
der SPI clock zu hoch war womit wohl auch der ADC vom AD7843 betrieben 
wird

SPI clock auf 2 Mhz und schon war das Touch linear

von Florian M. (micro-flo)


Lesenswert?

Ich hatte auch unterschiedliche Frequenzen versucht bis max. 2,1Mhz, 
aber kein Erfolg gehabt.
So ists jetzt besser und günstiger.

von Jakob (Gast)


Lesenswert?

bei ist der Touch (arbeite auch mit dem AD7843) ziemlich unlinear.

Und was mir auch aufgefallen ist - keine Ahnung ob das normal ist - ist, 
dass bei jeder Calibrierung die getouchten Werte (Spannungen, die der 
AD7843 gemessen hat) deutlich auseinanderliegen... zwar sind dann z.B. 
alle vier Touch-Werte höher oder niedriger... aber eigentlich, so dachte 
ich, müssten diese im Rahmen fast gleich sein, oder?

Für ein und denselben Punkt hab ich nach jeweils einem Reset des 
µControllers einen ganz anderen Wert vom Touch AD7843 geliefert 
bekommen: 0x318, 0x440, 0x760

Vielleicht schreiben noch ein paar Leute über ihre Erfahrungen mit 
diesem Touch!

Gruß
Jakob

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.