Forum: Mikrocontroller und Digitale Elektronik Viele Schalter per Multiplexing mit AVR, "flackern"


von Phillip H. (philharmony)


Lesenswert?

Hi, ich habe eine ganz simple Schaltung mit einem Atmega32, bei dem die 
Ports A,B und C zusammen mit den Pins 2-7 von Port D eine Matrix 
aufspannen, mit der dann (natürlich mit Dioden gegen Rückstrom) 144 
Schalter ausgelesen werden können. Dazu Schaltet eine Timer-ISR jeweils 
einen der Pins von D auf Low, die anderen bleiben High, und checkt 
danach die Ports A-C. Um die Matrix etwas übersichtlicher zu machen, 
habe ich sie auf eine zweite Platine ausgelagert, die mit der AVR 
Platine mit 0,5mm² Kabeln in 2,54mm Phoenix-Schraubklemmen verbunden 
ist. Die Schalter sind Mil-Spec Switches von Cole; ich habe sie mal 
durchgemessen, sie schalten sauber durch mit nahezu 0 Ohm. Die übrigen 
beiden Pins von PortD verwende ich für den UART. Nun wird im Program 
einfach ein Array von der Timer-Routine mit den Werten der Ports A-C 
gefüttert und von der Main ausgelesen und mit einem zweiten Array "old 
data" verglichen. Wenn ein unterschied besteht, dann wird die Bit-Nummer 
und der zustand per UART verschickt. Das funktioniert auch bereits bei 
einem Bord mit einem einzelnen Schalter wunderbar, bei einem zweiten 
Board mit 10 Schaltern habe ich aber das Problem, daß, anfangs nur alle 
paar Sekunden, danach immer häufiger, "Blindwerte" geschickt werden, 
also auch wenn ich keinen der Schalter berühre. Meist ist es die 
Bitnummer eines einzelnen Schalters. Schalte ich diesen, passiert 
manchmal gar nichts, schalte ich dann einen anderen, wird es viel 
schlimmer. Die verwendeten Kabel sind ca 20cm cm lang, sind alle 
durchgemessen. Die abtastrate liegt bei ca 300Hz.
Habt Ihr eine Idee, woran sowas grundsätzlich liegen kann? 
Softwarefehler kann ich denke ich ausschließen, da das Problem nur dann 
auftritt, wenn die Schalter angeschlossen sind.

von Bernhard R. (barnyhh)


Lesenswert?

Die SW besitzt einen Fehler in Zeile 42. Bei Bauteil 42 tritt Fehler 42 
auf.

Bernhard

von vuyfv (Gast)


Lesenswert?

Kapazitaeten. Schaltplan?

von Phillip H. (philharmony)


Lesenswert?

Danke für die Hilfreichen Antworten. Das Projekt ist zu umfangreich um 
den Quelltext zu posten, der Schaltplan sieht einfach so aus, daß die 
Pins direkt auf eine Phoenix-Klemme gehn, von wo aus sie dann per Kabel 
(~10cm) mit der zweiten Platine verbunden sind. Dort wieder eine Klemme 
und die verbindung auf die Matrix

K----------|----------|-------------|   (Klemme zu einem Pin von PA-PC)
           |          |             |
           ^          ^             ^   (Dioden)
           |          |             |
          KK         KK            KK  (Klemmen, zw. jedem Paar ein 
Schalter)
          |          |             |
K---------|----------|-------------|   (Klemme zu einem der Pins von PD)

Dass eine Ferndiagnose bei einem speziellen Problem nicht geht ist mir 
schon klar, ich habe einfach bei Weitem nicht so viel Erfahrung in der 
Elektronik wie so manch anderer User dieses Forums, vielleicht gibt es 
bei solchen Schaltungen ja bekannte Probleme und Standardlösungen, die 
ich einfach nicht kenne. Darauf ziehlt das ganze ab.

vuyfv frage nach Kapazitäten, gibt es eine Möglichkeit, herauszufinden 
ob es daran liegt?nn

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.