Forum: Haus & Smart Home Touch-Sensoren mit MTCH 105 - Design funktioniert nicht


von Michael W. (micha124)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe im Nachbarforum schonmal nachgefragt, aber keine sinnvollen 
Antworten erhalten. Ich hoffe, hier im SmartHome-Bereich mehr 
Erfahrungen zu finden.

Beitrag "Designhilfe kapazitive Touch-Platine für Thermostat"

Und zwar will ich für meine Thermostate und auch weitere Schaltungen 
Touch-Sensoren nutzen. Diese sollen durch 2-5mm Plastik/Glas 
funktionieren.
Für die zwei konkreten UseCases habe ich auch entsprechende Platinen 
erzeugt.

Leider bringen diese nicht das gewünschte Ergebnis. Ich habe in 
Einzelfällen mal ein Signal bei Direktkontakt erhalten, aber wirklich 
nur vereinzelt.

Geplant habe ich mit den MTCH-105 mit aktivem Shield

Auch nach Studium der Design-Guides 
(https://ww1.microchip.com/downloads/aemDocuments/documents/TXFG/ApplicationNotes/ApplicationNotes/Capacitive-Touch-Sensor-Design-Guide-DS00002934-B.pdf) 
komme ich hier nicht weiter und habe den Eindruck, dass ich hier einen 
grundlegenden Fehler drin habe.

Nun meine Frage: Wo liegt der Fehler?

Angehängt habe ich mal sowohl die reine Sensorplatine des Thermostats, 
die Schaltung des Mischers (welche effektiv mit der des Thermostats 
identisch ist bis auf einen weiteren Sensor - PullUps sind auf der 
CPU-Platine enthalten), sowie die Platine des Mischers (rechts unten)

Danke und Gruß
Micha

: Bearbeitet durch User
von H. H. (Gast)


Lesenswert?

Michael W. schrieb:
> Angehängt habe ich mal sowohl die reine Sensorplatine des Thermostats,
> die Schaltung des Mischers (welche effektiv mit der des Thermostats
> identisch ist bis auf einen weiteren Sensor - PullUps sind auf der
> CPU-Platine enthalten), sowie die Platine des Mischers (rechts unten)

Allerdings nicht für jeden lesbar.

von Michael W. (micha124)



Lesenswert?

Hallo,

wenns hilft noch anbei die Platinen als Bild - was für den Designcheck 
aber vermutlich nur begrenzt hilft. Wenn es da ein sinnvolleres Format 
gibt, was ich aus Kicad rausbringen kann, gerne um Info.

Thermostat-Platine ist 60x25mm, Mischer ist 89x39mm

Grüße Micha

von Frank K. (fchk)


Lesenswert?

Ich habe 4k7 als Serienwiderstände zu den Pads und keinen Widerstand in 
der Guard-Leitung.

Du hast aber keinen 100n X7R zwischen VCC und GND (Pin 13 und 14). Der 
ist nicht zum Spaß da, und er muss dichtmöglichst an den beiden Pins 
liegen. Der Abstand ist kritisch. Bei der Spannungsversorgung die 
Leiterbahnen so breit wie möglich machen. Bei mir ist vor der Versorgung 
des MTCH noch ein Ferrit (BLM15HD102SN1D) und davor nochmal 10uF X7R 
gegen GND.

Damit funktioniert es bei mir.

fchk

von Michael W. (micha124)


Lesenswert?

Hi fchk,

vielen Dank für Deinen Input, der hat mich massiv weitergebracht!

Ich hab (auf dem Testbrett mit MTCH108 mit entsprechend angebundener 
Platine) den Widerstand im Guard entfernt und den für den ersten Kanal 
auf 4k7 reduziert. Ebenso den 100nF angefügt direkt zwischen den Pins.

Ferrit habe ich gerade keinen da und konnte daher auch keinen einfügen.

Test 1:
Auf der Mischer-Platine funktionierten die runden Sensoren nun immerhin 
in 99% der Fälle bei direkter Berührung. Der längliche Sensor 
allerdings liefert ebenso gar kein Signal, wie auch die runden kleinen 
Sensoren beim Thermostat. Berührungslos (d.h. mit Abstand) funktioniert 
noch keine der Flächen. D.h. die Sensibilität ist noch zu niedrig.

Test 2:
Um sicherzugehen, dass die Sensitivität auf Maximum ist, habe ich den 
Trimmer überbrückt auf GND - und siehe da, da tat sich was. Ich lese 
daraus, dass zusätzlich zu den Versäumnissen oben entweder der Trimmer 
defekt ist oder auf dem Steckbrett nicht genügend Kontakt hat (und damit 
vermutlich in der Luft hing oder gegen + ging).

Auf der kleinen Platine bekomme ich nun alle Sensoren ausgelöst (wenn 
auch zu sensibel - da muss ich noch die passenden Widerstände (wenn ohne 
Trimmer für den Test) herausfinden.

Auf der großen Platine sieht es ähnlich aus, nur dass der große 
rechteckige Sensor wesentlich unsensibler ist, als die anderen.

Auch wenn ich aus dem aktuellen Stand so wie es aussieht, was 
brauchbares herausbekomme.

Die Situation mit dem großen rechteckigen Sensor ist mir aber noch nicht 
ganz geheuer. Zweck des Sensors ist das Anschalten der 
Displaybeleuchtung für eine gewisse Zeit, wenn jemand da ist. D.h. zu 
sensitiv gibt es hier fast nicht und Fehlauslösungen durch Betätigung 
der Nachbarsensoren sind auch unkritisch (Notfalls könnte ich das auch 
noch Softwaretechnisch lösen, fände es so aber "schicker").

Gibt es Punkte im Design, welche hier die Sensitivität verbessern 
könnten (Platinen muss ich eh neue machen lassen um die obigen Punkte zu 
integrieren). Was wäre, wenn ich statt einer großen Fläche einen Kamm 
mache - würde das die Sensitivität erhöhen oder verringern? Sonst noch 
Ideen?

Grüße und Danke

Micha

von Frank K. (fchk)


Lesenswert?

Ich lese da "Steckbrett". Nein, das ist ein ganz großes "NEIN". Vergiss 
das.

Bei mir ist das ziemlich empfindlich, ich habe da keine Probleme.

Die einfachen MTCH-Bausteine haben nur einen Eingang für die 
Empfindlichkeit, der für alle Pads gleichermaßen gilt. Das kann bei 
massiv unterschiedlichen Touchflächen natürlich Problme geben. Hier sind 
die CAP11../CAP12.. Bausteine besser, weil Du da jeden Eingang separat 
per I2C parametrieren kannst.

https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/00001569B.pdf

Soviel zu meinen Erfahrungen.

fchk

Beitrag #7441996 wurde vom Autor gelöscht.
von Michael W. (micha124)



Lesenswert?

Frank K. schrieb:
> Ich lese da "Steckbrett". Nein, das ist ein ganz großes "NEIN".
> Vergiss
> das.

das ist dem Chipmangel geschuldet. Die MTCH105 kommen erst in ein paar 
Wochen, weswegen ich hier erstmal mit dem MTCH108 getestet habe, weil 
die für mich hauptsächliche Unbekannte das richtige Sensordesign ist. 
Daher hab ich dann an den Platine via Litze das Steckbrett angehängt und 
dort auf einer Bread-Platine den MTCH108 drauf.
>
> Bei mir ist das ziemlich empfindlich, ich habe da keine Probleme.

OK - dann gehe ich mal von aus, dass das bei mir auch funktioniert und 
mache neue Platinen und warte dann auf die Chips.

>
> Die einfachen MTCH-Bausteine haben nur einen Eingang für die
> Empfindlichkeit, der für alle Pads gleichermaßen gilt. Das kann bei
> massiv unterschiedlichen Touchflächen natürlich Problme geben. Hier sind
> die CAP11../CAP12.. Bausteine besser, weil Du da jeden Eingang separat
> per I2C parametrieren kannst.
>
> 
https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/00001569B.pdf

super - danke für den Vorschlag. Werde ich mir mal anschauen.

Bis dahin würde ich aber erstmal den bisher eingeschlagenen Weg weiter 
verfolgen.

Anbei ein aktueller Schaltplan. Kannst Du da bitte nochmal einen kurzen 
Blick drauf werfen?

Grüße und nochmal Danke
Micha

Edit: Schaltung korrigiert - Position Elko/Ferrit

von Frank K. (fchk)


Lesenswert?

Ich habe zwischen MTSA und dem Trimmpot noch einen 10k.

fchk

von Dieter R. (drei)


Lesenswert?

Mit MTCH1xx und dergleichen habe ich keine Erfahrung, kann aber ein paar 
Hinweise aus Designs mit ATtiny Series 1 beisteuern. Vielleicht ist es 
hilfreich.

1. 5 mm Abstand durch Glas/Acryl funktioniert, ist aber schon 
grenzwertig, man muss die interne Verstärkung dann ziemlich hoch setzen. 
Mein Vorschlag wäre, nicht über 3 mm zu gehen.

2. Einige bei mir erprobte Designparameter:
Board 1,6 mm.
Rückseite Shield, Grid 45 deg, Grid Size 1.5 mm, Trace Width 0.15 mm.
Vorderseite Shield, Grid 45 deg, Grid Size 1.0 mm, Trace Width 0.15 mm.
Shields möglichst etwas größer als Buttons, ca. 1 mm.
Clearance Buttons zu Shield 0.5 mm.
Buttons 9 mm x 11 mm bis 8 mm x 15 mm bzw. äquivalente Fläche.
Traces 0.15 mm, Clearance 0.5 mm gegen Shield.
Entkopplungswiderstände nahe Prozessor, 10k 0402.

3. Von Microchip gibt es ein ATtiny817 QTouch Moisture Demo Kit. Ich 
habe dieses nicht vorliegen, aber folgende Daten aus den Gerber-Files 
ausgemessen:
Buttons Durchmesser 10 mm.
Clearance Buttons zu Shield 1.0 mm.
Trace Width 0.2 mm.
Rückseite Bauteile (einschl. Prozessor), Traces von Buttons an 
Prozessor.
Vorderseite Buttons und Shield, Grid 45 deg, Grid Size 2,0 mm, Trace 
Width 0.2 mm.
Rückseite unter Buttons großflächig frei.
Buttons über 10k an Prozessor, Shield direkt angeschlossen, Shield auf 
gesamter Größe des Boards.

4. Grundsätzlich: das Drumherum um die Buttons sollte kapazitätsarm 
sein, deshalb Shield nicht als durchgehende Fläche, sondern als Gitter. 
Traces zum  Prozessor untereinander mit größmöglichem Abstand, so kurz 
wie möglich, von einer Seite des Prozessors ohne Umwege direkt zu den 
Buttons. Irgendwelche Shield-Ringe um die Buttons sind überflüssig, 
einfach (mit der erwähnten Clearance) eine durchgängige Fläche, die alle 
Buttons seitlich umfasst. Ich würde (im Gegensatz zum Moisture Demo Kit) 
auf der Rückseite auch ein Shield vorsehen, um den Einfluss vom Rest des 
Gerätes und der Umgebung auf die Buttons zu minimieren.

5. Mein Vorschlag wäre, das Ganze mit einem passenden ATtiny zu machen. 
Die QTouch-Lib von Atmel/Microchip ist riesig, deshalb eine Version mit 
16kB oder 32kB. Für deine Anforderungen bietet sich ein ATtiny1614 an, 
14 Pin SO, DIY-tauglich. Anbindung an Hauptprozessor z. B. über serielle 
Schnittstelle. Der ATtiny braucht eine saubere Stromversorgung, 3,3V mit 
LDO, eventuell Entkopplung vom Rest des Boards über kleinen 
Vorwiderstand, 100nF direkt am Prozessor reicht erfahrungsgemäß. Vorteil 
sind die umfangreichen Debug-Möglichkeiten. Innerhalb der 
Entwicklungsumgebung ist eine Oszilloskop-ähnliche Darstellung der 
Touch-Signale möglich, jeder Button lässt sich unabhängig optimieren. 
Kostet etwas Einarbeitung, ist dann aber sehr flexibel konfigurierbar. 
Man kann statt der QTouch-Lib auch eigene Routinen zur Touch-Abfrage 
schreiben, die können viel kompakter ausfallen, aber die (bei größerem 
Betätigungsabstand erforderliche) volle Empfindlichkeit erhält man nur 
mit der originalen Library, es sei denn, es findet mal jemand die 
Funktion der nichtdokumentierten Register heraus.

von Michael W. (micha124)



Lesenswert?

Hallo,

ein (ernüchterndes) Update, nachdem ich nun Platinen hab machen lassen 
und auch mit den richtigen Bauteilen gelötet.


Beim Thermostat funktioniert die Taste "down" wie gewünscht, Menu und Up 
bringen keine Reaktion. PullUps sind Prozessorseitig vorhanden. Wenn ich 
manuell die "Up"-Leitung auf GND ziehe, reagiert auch der Prozessor - 
ein SW-Fehler schließe ich daher mal aus.

Ich habe die Platine soweit möglich durchgemessen und keine 
Auffälligkeiten gefunden. Die Sensorflächen über die 4k7 kommen am Chip 
an und der Ausgang kommt an der Steckverbindung an.

Beim Mischer funktioniert gar keine Taste. Hier funktioniert ein Test 
ohne Touchplatine - d.h. auch hier, dürfte das Problem einzig und 
alleine an der Touch-Platine liegen.
Da ich beim Mischer die Eingabeplatine auch leicht tauschen kann, habe 
ich zur Sicherheit 2 Platinen gelötet und ausprobiert.

Da die Platinen mit dem Steckbrett funktioniert hatten, vermute ich, 
dass die nun auf der Platine aufgelöteten Bauteile hier das Problem 
verursachen. Da ich mit meinem Latein aktuell am Ende bin, bitte ich 
nochmal hier um einen kritischen Blick.

Dieters Infos kamen erst nach Bestellung der Platinen und sind daher 
nicht mehr eingeflossen - könnten diese die Lösung sein?

Grüße und Danke

Micha

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Ein Unterschied zu meinem Design: Ich habe keine Flood Fills, und ich 
habe keine Steckverbinder oder Kabel oder so zwischen MTCH und Pads. Das 
ganze muss so kapazitätsarm wie möglich realisiert werden, und jegliches 
Kupfer muss so wenig wie möglich und so weit weg wie möglich sein.

So wie Du es in den Bildern siehst, funktioniert das bei mir 
hervorragend und ist sehr empfindlich.

fchk

von Michael W. (micha124)


Lesenswert?

Frank K. schrieb:
> Ein Unterschied zu meinem Design: Ich habe keine Flood Fills, und ich
> habe keine Steckverbinder oder Kabel oder so zwischen MTCH und Pads. Das
> ganze muss so kapazitätsarm wie möglich realisiert werden, und jegliches
> Kupfer muss so wenig wie möglich und so weit weg wie möglich sein.

Steckverbinder oder Kabel habe ich auch erst zwischen MTCH und CPU (und 
das v.a. aufgrund unterschiedlicher Höhen)

Großer Unterschied ist aber das Kupfer. Ich habe die Guards als 
komplette Kupferfläche realisiert. Das mag evtl. der Grund (und meine 
Fehlinterpretation) sein. Ich bin mir nicht sicher, ob ich bei der 
damals funktionierenden Steckbrettvariante den Guard "überall" 
angeschlossen hatte.

D.h. als Guard darf/sollte nur ein schmaler Ring/Streifen/whatever um 
die entsprechende Fläche sein. Der Rest dann komplett leer oder als 
Fläche auf GND?

>
> So wie Du es in den Bildern siehst, funktioniert das bei mir
> hervorragend und ist sehr empfindlich.

Danke für das Beispiel. Ich denke, ich werde auf der Basis mal einen 
neuen Versuch starten.

Grüße Micha

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.