Forum: Mikrocontroller und Digitale Elektronik Max7219 lässt alle LEDs der Matrix aufleuchten[Problem]


von Freezad0 (Gast)


Lesenswert?

Hallo,
ich baue (immer noch) eine 8x8 LED-Matrix komplett selber^^

habe jetzt alles verlötet, einen funktionierenden Code und ich habe 
schon so einiges Anzeigen lassen.
Jetzt gibt es aber ein kleines störendes Problemchen. Ich habe alles 
soweit verlötet und es sitzt eig alles ganz fest(LEDs etc natürlich aber 
auch der Arduino^^). Wenn ich etwas anzeigen lasse, klappt alles ganz 
normal. Wenn ich meine Matrix aber in ein( scheinbar) doofe Richtung 
mehr oder weniger stark Bewege kommt etwas sehr Komisches :S

Alle LEDs der Matrix leuchten^^. Das einzige was hilft ist Strom raus 
und wieder rein^^ Danach klappt es ganz normal

Ich habe das Problem aber auch ganz selten schon zu Beginn.

Was löst das aus und wie kann ich es abschaffen? Ich finde echt keinen 
Fehler in meiner Schaltung :S

Freue mich über jeder Antwort :)

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Freezad0 schrieb:
> Wenn ich meine Matrix aber in ein( scheinbar) doofe Richtung
> mehr oder weniger stark Bewege kommt etwas sehr Komisches :S
>
> Alle LEDs der Matrix leuchten

Dann ist es vermutlich ein "elektromechanisches" Problem.

Sprich:

- Schlechte Lötverbindung
- Irgendwo entsteht durch die Bewegung ein Kurzschluss


Poste mal Bilder von deinem Aufbau ++ Schaltplan.

von Freezad0 (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal mein Schaltplan:

http://tronixstuff.files.wordpress.com/2010/07/matrixschematic2.jpg

im Anhang sind ein paar Bilder

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Freezad0 schrieb:
> im Anhang sind ein paar Bilder

[ schauder ]

: Bearbeitet durch User
von Freezad0 (Gast)


Lesenswert?

es ist nicht perfekt, aber ich bin was Löten und so ein größeres Projekt 
anbelangt noch nicht soooo lange dabei^^ gibt es da nichts falsches zu 
sehen? oder was wäre am wahrscheinlichsten?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Freezad0 schrieb:
> oder was wäre am wahrscheinlichsten?
Eine EMV/ESD-Einkopplung die deinen uC aus dem Takt bringt...
Die "Blockkondensatoren" können ihren Dienst auch nicht so richtig 
verrichten: die sind ja eeeeeewig weit weg vom IC-Anschluss.

Auf dem uC läuft ein Programm, wenn der Fehler passiert, oder?

Das hier ist auch verdächtig:
1
Register Display Test (Adresse: 0Fh):
2
Mit diesem Register kann ein Selbsttest des MAX7219 erfolgen, 
3
d.h. alle Segmente leuchten mit der maximalen Helligkeit. 
4
Dazu muss nur das Bit D0 (im Register 0Fh) gesetzt werden. 
5
(siehe Tabelle 3.7).
Kann es sein, dass du den Din auf Vcc biegst? Dann würde der Takt allein 
ausreichen, um auf der Adresse F das Bit 0 zu setzen...

: Bearbeitet durch Moderator
von Freezad0 (Gast)


Lesenswert?

Was könnte denn solche Störungen auslösen? (EMV)

Hmmm also die Kondensatoren sind schon sehr weit weg, da hast du recht^^ 
Ich werde sie mal weiter "ranholen".

Also ich habe ein Programm am Laufen ja.

Lothar Miller schrieb:
> Das hier ist auch verdächtig:
>
1
> Register Display Test (Adresse: 0Fh):
2
> Mit diesem Register kann ein Selbsttest des MAX7219 erfolgen,
3
> d.h. alle Segmente leuchten mit der maximalen Helligkeit.
4
> Dazu muss nur das Bit D0 (im Register 0Fh) gesetzt werden.
5
> (siehe Tabelle 3.7).
6
>

Wie soll ich das jetzt anstellen? habe mal gegooglet aber nichts 
gefunden, was soll das genau sein?

Lothar Miller schrieb:
> Kann es sein, dass du den Din auf Vcc biegst? Dann würde der Takt allein
> ausreichen, um auf der Adresse F das Bit 0 zu setzen...

Entschuldige aber ich weiß leider nicht so ganz was du damit meinst. Wie 
soll ich denn den DIN auf meinen Vcc biegen?^^


Schonmal vielen dank für bisherige Hilfe :)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Freezad0 schrieb:
> Wie soll ich denn den DIN auf meinen Vcc biegen?^^
Mit einem Kurzschluss?

> habe mal gegooglet aber nichts gefunden, was soll das genau sein?
Ein Ausschnitt aus dem Datenblatt.

> Wie soll ich das jetzt anstellen?
Wenn du den DIN Pin mit Vcc verbindest und einen Takt anlegst kommt der 
Lampentest heraus. Gut für die Produktion, weil nur eine Taktquelle 
nötig ist...

: Bearbeitet durch Moderator
von Falk B. (falk)


Lesenswert?


von Freezad0 (Gast)


Lesenswert?

Also einen Kurzschluss gibt es nicht.
Der Lampentest war efolgreich.
Jetzt kann es doch nur noch das Problem mit den Kondensatoren sein oder 
mein Max7219 hat den Geist aufgegeben. Inzwischen zeigt es auch nur noch 
dieses "Problem" an(alle LEDs an).

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Ich kann auf deinen Fotos beim besten Willen nicht erkennen womit Pin 1 
(DIN) des MAX7219 verbunden ist. Dafür scheint aber Pin 12 (LOAD) 
doppelt mit deinem Arduino verbunden zu sein (1x über einen Widerstand 
auf die blaue Strippe und 1x direkt auf die gelbe Strippe).

von Freezad0 (Gast)


Lesenswert?

die gelbe strippe ist unterirdisch mit din verbunden. und die blaue 
stippe ist ja über den widerstand mit  load verbunden

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Freezad0 schrieb:
> Der Lampentest war efolgreich.
Ich glaube, du hast nicht verstanden, was ich gemeint habe:
Wenn durch einen Fehler der DIN-Pin nur noch high erkennt, dann kommt 
zufällig der "Lampentest" heraus. Bei diesem Fehler /leuchten alle 
Lampen/. Kommt dir das bekannt vor?

> Inzwischen zeigt es auch nur noch dieses "Problem" an(alle LEDs an).
Und welchen Pegel hast du am DIN-Pin? Hast du Zugriff auf ein Oszi?

: Bearbeitet durch Moderator
von Gerald B. (gerald_b)


Lesenswert?

Schönes Crosspostimg...
http://forum.arduino.cc/index.php?topic=210986.0
Hätte ich mir dort die Tipparbeit sparen können. Oder zumindest etwas 
straffen können :-/

von Freezad0 (Gast)


Lesenswert?

Also es hat hier zwischendurch schon nochmal etwas angezeigt(sketch)--> 
pin 1 klappt noch. ich habe noch ein problem gehabt. das max7219 hatte 
wackler auf dem aufsatz. ich löte es gerade nochmal direkt drauf. danach 
dürfte es zumindest dort keine wackler geben(die womöglich das problem 
isnd :S)

von Freezad0 (Gast)


Lesenswert?

Das tut mir leid Gerald :( Ich dachte dort finde ich niemanden der mir 
auf (die SChnelle. (ich stehe nebenbei noch etwas unter zeitdruck). 
Nochmals Entschuldige :(

von Gerald B. (gerald_b)


Lesenswert?

Ok, schon vergeben ;-)
Hättest dort, der Fairnis halber, vielleicht einen Link setzen können, 
damit nicht jedes Forum für sich losgelöst nach Lösungen sucht, die 
woanders schon gefunden wurden. Die Bilder, die dort nicht verlinkt 
sind, bestätigen eigentlich nur noch meinen Verdacht.
Es KANN (muß aber nicht zwingend) auch mit moderat längeren Kabeln 
funktionieren.
Ich arbeite z.B. an einem Projekt, wo ich die 8x8 Matrix nicht in 2 
Dimensionen, sondern linear als Balkenanzeige (also 64 LEDs als Band) 
betreibe - und das mit 3 MAXen kaskadiert! Ist mit 5mm LEDs fast 1m groß 
:-)))
Der Kern, also die 3x 7219 arbeiten stabil. Das ganze wird ein 
pseudoanaloges Thermometer. Neben die "Kapillare" bastele ich noch ca. 
500 Rechteck LEDs als Skalenstriche und 7 Segmentanzeigen als 
Beschriftung. Diese "Strafarbeit" hatte ich mir einfacher vorgestellt. 
Deshalb mache ich immer mal wieder Pausen :-)

Gruß Gerald

von Freezad0 (Gast)


Lesenswert?

Interessantes Projekt Gerald :)

Ich wollte mitteilen das die Matrix jetzt stabil läuft :)
Ich habe das Max7219 direkt auf die Platine gelötet, sodass keine 
Wackler enstehen können. Die Kondensatoren habe ich dort gelassen wo sie 
sind(klappt auch so^^). Nachdem ich soweit war, hat es dann aber immer 
noch nicht geklappt :S Danach habe ich nochmal an den 
Anschlussstellen(wo jumperkabel reinkommen) etwas rumgewerkelt und 
danach hat es endlich funktioniert :)

Ich danke euch allen für eure Hilfe und Unterstützung und auch das 
teilweise erneute Erklären von Dingen die ich nicht so ganz verstanden 
habe :)

MfG Freezado :)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Freezad0 schrieb:
> Ich habe das Max7219 direkt auf die Platine gelötet, sodass keine Wackler
> enstehen können.
Normalerweise ist eine Fassung kein Problem. Du musst wohl eher an 
deinen Lötkünsten arbeiten. Aber keine Sorge, das wird schon noch... 
;-)
Und dann natürlich: Datenblätter nicht nur lesen, sondern versuchen zu 
verstehen, was da drin steht.

von Grü (Gast)


Lesenswert?

Kenne das Prob auch! Irgendwo hier im Forum ist dazu sogar noch ein 
Beitrag welcher mehrere Jahre alt ist, find ihn aber nicht mehr. Es sind 
die Kondensatoren an der Speisung des MAX. Zu gross geht nicht, zu klein 
geht nicht, frag mich aber bitte nicht mehr wie gross er denn sein muss. 
Ebenso musst Du die Matrix nach dem Einschalten manuell "ausschalten", 
sprich dem 7219 mitteilen er soll alle ausschalten.
Ist es auch so, dass wenn die Matrix richtig läuft und Du nur ganz kurz 
einen Stromunterbruch machst, er ebenfalls im Lampentest hängen bleibt 
und alles an ist?

Gruss Grü

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Grü schrieb:
> Es sind die Kondensatoren an der Speisung des MAX. Zu gross geht nicht,
> zu klein geht nicht
Das halte ich für ein Ammenmärchen. Wenn einem der Grund und die 
Wirkungsweise von Entkopplungkondensatoren klar sind, dann versteht er 
auch, warum ich mir da so sicher bin.

Und das Datenblatt sagt:
"To minimize power-supply ripple due to the peak digit driver currents, 
connect a 10μF electrolytic and a 0.1μF ceramic capacitor between
V+ and GND as close to the device as possible."
Und "as close as possible" bedeutet nicht: mach den Kondensator direkt 
neben das IC und fahre dann mit den Anschlüssen dreimal im Kreis. 
Sondern es bedeutet einfach: verbinde diese Kondensatoren mit möglichst 
kurzen (und breiten) Leiterbahnen mit den zugehörigen GND und Vcc 
Anschlüssen.

Nachtrag:
> Zu gross geht nicht,
Das kann sein, wenn durch zu große Kapazität in der Versorgung und ein 
schwaches Netzteit die Anstiegszeit der Versorgungsspannung zu lang 
wird, und der MAX so nicht sauber aus dem Reset kommt.

: Bearbeitet durch Moderator
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.