Hi ich würde gern was mit den Quantum/Atmel Touch Chips machen. Werde warscheinlich den QT1080 oder QT1106 verwenden. Hat jemand vielleicht schon ein Projekt mit diesen Chips gemacht, was ich mir vielleicht mal anschauen kann würde gerne erstaml schauen wie das andere gemacht haben.Eine Frage noch: Wie ist das eigentlich mit den QTouch Libraries? Braucht man da nur einen AVR wo man das aufspielt oder noch einen Touch IC von Quantum? Und wie sieht dann die Außenbeschaltung aus?
>Wie ist das eigentlich mit den >QTouch Libraries? Braucht man da nur einen AVR wo man das aufspielt Ja. Ein AVR mit abschaltbaren PullUps. >oder noch einen Touch IC von Quantum? Es gibt beide Varianten. >Und wie sieht dann die Außenbeschaltung aus? 1 Kondensator und optional 2 Widerstände pro Touch-Kanal.
Vielen Dank für die Antwort! Welche Variante ist denn besser geeignet? Oder ist das eigentlich egal?
Najaa - die Quantum-Chips liefern ein fertiges Schaltsignal an den Controller. Der AVR kann das Signal von den Touchpads noch nach Belieben digital weiterverarbeiten und kann, je nach Modell, recht viele Tasten bedienen. Außerdem hat man oft AVRs herumliegen, die Quantum-Chips müßte man erst kaufen. Beim AVR muß man auch nicht unbedingt auf Librarys zurückgreifen, man kann quasi neben der eigentlichen Aufgabe noch ein paar Touch-Felder abfragen. Allerdings braucht man eine gewisse Rechenpower für das Erzeugen der Touch-Bursts, einen Timer und einen dazugehörigen Interrupt.
Sers danke für die Antwort (hat leider en bisschen gedauert da ich heute erst wieder heimgekommen bin...) Hast du selbst schon ein Projekt mit Quantum Chips oder mit diesen Touch Libraries oder auch ohne gemacht?
Meine Experimente habe ich mit einem "popeligen" ATMega88 gemacht ;-). Die Programmierung hat ohne Libraries in ASM stattgefunden und funktioniert bestens. Dabei habe ich einfach die Pulse eines Quantum-Boards mit dem AVR nachgebaut, eine Driftkontrolle programmiert und noch den einen oder anderen Tiefpaß. Und es läuft. Wenn man die Wirkungsweise der Geschichte erstmal gefressen hat, ist´s trivial. Wichtig ist nur, daß der AVR seine Pullups abschalten kann, da sonst das Generieren der Pulse nicht funktioniert.
Cool das hört sich doch sehr veilversprechend an xD! Wie ist das jetzt eigentlich wenn ich z.B. das Ev board vom QT1106 nachbaue(schaltplan gibst ja bei denen) was kommt dann auf den AVR bieten die das auch an? Hab noch nix gefunden oder muss ich mir das Programm dann selbst schreiben? Dein Projekt interessiert mich wirklich sehr du hast nicht zufällig Lust den Code und Schaltplan zu Posten oder ;D
Hey danke für den Link hatte ich zwar schonmal gesehn vor 1 Jahr oder so aber gar nicht mehr dran gedacht das muss ich die Tage gleich mal ausprobieren hab sogar noch en 2313 rumliegen xD
Muss ja nicht unbedingt ein 2313 sein. Ich denke mal das du das Prinzip an jeden x-beliebigen AVR anwenden kannst.
Jo glaub auch, aber hab eh noch glaub sogar 2 Stück da alternativ noch en Tiny28... muss ich mir alles mal in Ruhe anschauen ;)
So bin endlich wieder Zuahuse;D und hab gleich schon wieder Fragen xD: 1. Kann man die Variante (die von Michael vorgestellt wurde) empfindlicher machen, sodass sie auch noch durch 2-3mm Kunststoff funktioniert? Angegeben sind nämlich nur 1mm. 2.Kann man die Größe der Elektroden verändern und somit auch durch Elektrodendesign die Empfindlichkeit noch verbessern? Wäre sehr dankbar, wenn mir jemand helfen könnte.
Afaik funktioniert der von elm-chan anders als die von atmel, die arbeiten mit der charge-transfer technologie
Sers also ich hab das jetzt mal schnell nachgebaut und ein bisschen getestet aber ich finde es doch relativ unempfindlich. Bei 1mm muss man schon richtig drücken, was ich von den EDISEN Chips, die ich sonst grade verwende nicht gewohnt bin da reicht schon ganz leichtes antippen. Kann man das ganze nicht empfindlicher machen? Und nochmal zu diesen Touch libraries ich glaub ich hab des immer noch nicht gerafft sry. Ist das jetzt ein sozusagen fertiges Programm was ich auf meinen AVR flashe oder was kann ich darunter verstehn? Und wie sieht da die Außenbeschaltung aus? Auch nur Widerstand und Kondensator oder... hätte vielleicht mal jemand ein fertiges Projekt oder einen Schaltplan wo ich mich ein bisschen dran orientieren kann? Sowas hat doch bestimmt schonmal jemand gebaut xD
Doch hier. Wie gesagt, läd Elm-Chan einfach nur die Koppelplatte und entläd sie wieder. Die Charge-Transfer-Methode von Quantum / ATMEL ist entschieden empfindlicher, bei mir funktioniert es mit einem 2EUR-großen Stück Platinenmaterial durch eine 12,5mm Rigipsplatte, 3mm Fliesenkleber und 8mm Fliese mit noch etwas Luft bis zur Hand. Aber für eine vollständige und sichere Funktion benötigt man auch noch eine Driftkompensation über einen relativ langsamen Tiefpass, damit Temperatur und Luftfeuchtigkeitsunterschiede nicht zum Auslösen der Touches führen. Insgesamt sind die Routinen etwas anspruchsvoller, aber kein Hexenwerk. Ich gucke mal, ob ich zumindest die Routinen zur Burst-Erzeugung finde. Diese müssen dann an das eigene Programm angepasst werden und die Drifkompensation muß dann noch ´rein.
Ach hier, hab´s gerade gefunden, die Routine erzeugt zeitversetzt auf 2 Pins die Bursts und trägt Meßwerte mit 10 Bit Auflösung in 2 16-Bit SRAM-Register. Die Pins sind wie in der QTouch-Appnote mit einem externen C von 33nF nach Masse, einem Ladewiderstand von 2kOhm und einem Schutzwiderstand von 10kOhm zur Touchplatte angeschlossen. Die Auswertung der Werte erledigt das Programm zur Laufzeit. Die Routine darf nicht durch Interrupts unterbrochen werden. Die Pullups müssen während der Routine deaktiviert werden.
1 | ;-------------------------------------------------- |
2 | Touch: |
3 | sbi PortD, Touch1B |
4 | sbi PortD, Touch2B |
5 | clr XH |
6 | clr XL |
7 | ldi Temp, 0b01001010 |
8 | ldi TempH, 0b00000010 |
9 | ldi Temp3, 0b00100110 |
10 | out DDRD, TempH |
11 | |
12 | _TouchLoop: |
13 | out DDRD, Temp |
14 | out DDRD, TempH |
15 | out DDRD, Temp3 |
16 | out DDRD, TempH |
17 | adiw XH:XL, 1 |
18 | cpi XH, $04 |
19 | breq _TouchEnd1 |
20 | |
21 | sbis PinD, Touch1B |
22 | movw Di1:Di0, XH:XL |
23 | |
24 | sbis PinD, Touch2B |
25 | movw Di3:Di2, XH:XL |
26 | rjmp _TouchLoop |
27 | |
28 | _TouchEnd1: |
29 | sbi DDRD, Touch1A ;apply GND on touch terminal 1A |
30 | cbi PortD, Touch1B ;prepare low level on terminal 1B |
31 | sbi DDRD, Touch1B ;apply GND on touch terminal 1B |
32 | sbi DDRD, Touch2A ;apply GND on touch terminal 2A |
33 | cbi PortD, Touch2B ;prepare low level on terminal 2B |
34 | sbi DDRD, Touch2B ;apply GND on touch terminal 2B |
35 | sts Touch1L, Di0 |
36 | sts Touch1H, Di1 |
37 | sts Touch2L, Di2 |
38 | sts Touch2H, Di3 |
39 | sbi Status, _NewTouch |
40 | ret |
Wow vielen vielen Dank für die ausführliche Erklärung!! Muss ich unbedingt ausprobieren xD
Ja, hier noch die benötigten Definitionen:
1 | .def Di0 =r12 |
2 | .def Di1 =r13 |
3 | .def Di2 =r14 |
4 | .def Di3 =r15 |
5 | |
6 | .equ Status =GPIOR0 ;Flag register |
7 | .equ _NewTouch =0 |
8 | |
9 | .equ Touch1A =2 ;PortD |
10 | .equ Touch1B =3 |
11 | .equ Touch2A =5 |
12 | .equ Touch2B =6 |
13 | |
14 | .equ Touch1L =$0100 |
15 | .equ Touch1H =$0101 |
16 | .equ Touch2L =$0102 |
17 | .equ Touch2H =$0103 |
Berichtigung: >Die Pins sind wie in der QTouch-Appnote mit einem >externen C von 33nF nach Masse... Nein, der Kondensator liegt zwischen beiden Terminalpins!
Hier der relevante Schaltungsteil. Der GND-Anschluß an den Koppelplatten-Buchsen dient nur der Kabelschirmung und muß nicht belegt werden. Die Koppelplatten werden an T1-1 und T2-1 angeschlossen
Ah ein Schaltplan jetzt wird alles Klar xD vielen Dank für deine Mühe werde versuchen alles umzusetzten
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.