Forum: Mikrocontroller und Digitale Elektronik Cap Touch funzt mit 3V3, nicht aber mit 3V


von Felix A. (davinciclaude)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich wollte mal etwas machen mit LED multiplexen, low power und cap 
touch. An der Schule habe ich einen Prototypen-Print gelasert, dieser 
funktionierte ohne Probleme. Nun habe ich das Layout nochmals 
überarbeitet und verkleinert, um es bei OSH Park in Produktion zu geben 
(Siehe Bilder oben). Die finale Schaltung funktioniert soweit. Ich habe 
aber folgendes Problem: Am Debugger wird das betätigte Touchpad erkannt, 
nicht jedoch ab Batterie.

Die Abfrage des Touchpads sieht folgendermassen aus:

1
int touchPressed() {
2
  static unsigned int oldState, start, end, difference;
3
  oldState = P1IN & TOUCH_MEASURE;           // Abspeichern des alten Ladezustands
4
  start = TA0R;
5
  P1OUT ^= TOUCH_CHARGE;                     // Umladen starten
6
  while((P1IN&TOUCH_MEASURE) == oldState){}  // Warte bis Kondi bei V_IH/V_IL
7
  end = TA0R;                                // Messende
8
  difference = end-start;
9
  if(start > end)                            // OF abfangen
10
    difference=65536-start+end;              // z.B. 65'536 - 65'500 + 50 = 86 Steps
11
  return (difference > 42);
12
}

Speise ich mit dem Launchpad, zähle ich bei nicht gedrücktem Pad auf 40, 
bei gedrücktem auf deutlich mehr (siehe Bilder 4 und 5). Die Betätigung 
mit einem Finger reicht völlig aus. Wenn das ganze ab Batterie läuft, 
muss ich jedoch den Print mit zwei Fingern ins Sandwich nehmen oder gar 
R2 berühren, damit mein Finger erkannt wird.

Mir ist bewusst, dass eine Knopfzelle nicht für meine Belastung mit LEDs 
ausgelegt ist. Jedoch spricht touchPressed() auch nicht an, wenn ich aus 
dem LPM3 (I < 3 uA) heraus den DCO kurz auf 8 MHz aufstarte, und sie 
(die Funktion) aufrufe. Somit fällt "Überbelastund der Knopfzelle" schon 
mal weg.

Hat jemand eine Idee, woran das liegen könnte?

von Max D. (max_d)


Lesenswert?

Ein Stichwort: Masse.
Verbinde mal nur gnd/minuspol von Debugger und schaltung.

von Felix A. (davinciclaude)


Lesenswert?

Volltreffer.
Danke!
Aber warum?

(Ich nehme an, das ganze ist zu hochohmig und ich fange mir irgendwas 
über meine Körperkapazität ein...?)

von Felix A. (davinciclaude)


Lesenswert?

Ich habe noch ein Bisschen rumprobiert. Plus- oder Minuspol der Batterie 
an den Wasserhahn halten -> funktioniert. Interessanterweise reicht eine 
Kecksdose auch schon, obwohl da gar kein definiertes Potenzial vorhanden 
ist. Anscheinend ist als nur die Grösse massgebend, und bei meinem 
ersten Prototypen war sie wahrscheinlich gerade noch genügend. Von dem 
her hat sich das ganze erledigt, da der Print an einem Spind montiert 
wird.
Bliebe nur noch die Frage, wie man diese Problematik schaltungsmässig 
eliminieren könnte. Weiss da einer Rat?

von Wolfgang (Gast)


Lesenswert?

Claude D. schrieb:
> Aber warum?

Weil das Touch-Ding die Veränderung einer Kapazität misst.

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.