Forum: Mikrocontroller und Digitale Elektronik Problem mit MAX7219


von Dominik (Gast)


Angehängte Dateien:

Lesenswert?

Moin,

ich versuche gerad eine 7*5 LED-Dot-Matrix mit dem AT90S2313 und dem
MAX7219 zu programmieren.
Ich wollte gerade das ganze erstmal mit dem Source von crazy horse
testen.
http://www.mikrocontroller.net/forum/read-1-58248.html#58269

Leider spielt die Anzeige verrückt, mal sind alle LED's an, dann
resete ich wieder und alles ist aus.

Normal müsste sich doch was tun, wenn ich mit

init_max7219(1,5);

Daten in den MAX7219 schiebe?!!?

Schaltungsmäßig sollte eigentlich alles korrekt sein, Entstör - und
Blockkondensatoren  hab ich drin. Beide Masse-Pins sind angeschlossen.
Der Controller läuft auch brav mit 10,24 Mhz.
Ich habe allerdings den MAX7219 als SOL-24 Variante und mir eine
Adapterplatine geätzt, die habe ich aber schon durchgemessen, da gibts
keine Kurzschlüsse oder Unterbrechnungen.

Kann mir jemand nen Tip geben? Mein Sourcecode ist im Anhang.

Bin für jeden Ansatz dankbar,

Dominik

von Sven (Gast)


Lesenswert?

Leider keine Ansätze, aber Erfahrungen.

Ich habe den MAX7219 noch nie richtig zum laufen bekommen, und ich habe
mich sehr lange und intensiv damit befasst. Meine Schaltung,
Basisschaltung von Maxim, habe ich überprüft und ist in Ordnung. Habe
mir sogar einen zweiten 7219 gekauft (teuer) weil ich dachte das IC ist
kaputt - hat aber auch nichts gebracht. Zum Schluss habe ich die
Schaltung am Parallelport eines alten PCs geklemmt und simpelst mit
Q-Basic programmiert, ging aber auch nicht - es wurde mir nichts
logisches angezeigt, mal hats geblinkt etc.

Das einzige was mir noch einfällt wäre die Überprüfung ob die LED
Segmentanzeigen auch wirklich eine gemeinsame Kathode haten.

von crazy horse (Gast)


Lesenswert?

Der MAX7219 funktioniert schon (hat er bei mir schon oft bewiesen :-)

Erstmal hast du Fehler in der Portinitialisierung, die Ports für data,
clk und load müssen Ausgänge sein (DDRx.x=1)

Zum 2. sind meine Routinen für 4 kaskadierte MAX7219.
Die init_max7219 () brauchst du gar nicht, sondern nur write_spi() und
write_max7219().

write_max7219 (Adresse 0x09..0x0f, Daten); //für die
Initialisierungsdaten
write_max7219 (Adresse 0x01..0x08, Daten); //für die Digits
write_max7219 (0,xx);  //no op

von Peter D. (peda)


Lesenswert?

Ja, der MAX7219 funktioniert sehr zuverlässig.

Hier mal ein Beispielprogramm:

http://home.tiscali.de/peterd/appl/soft/c51/dcf77/index.htm


Da es in C ist, ist es sehr leicht auf den AVR portierbar.
Für den Anzeigeteil ist nur notwendig, die benutzten Pins auf Ausgang
zu setzen und die Memory-Bezeichenr (code, idata, data) raus zu
kommentieren.


Peter

von Dominik (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die bisherigen Antworten. Ich bin schonmal ein Stück
weiter. Jetzt werden wenigstens keine willkürlichen Sachen mehr
angezeigt. Aber leider tut sich garnichts auf der Dot-Matrix. :-(

Im Anhang mein jetziger Code.


Dominik

von Dominik (Gast)


Lesenswert?

Habe den Fehler schon gefunden: LOAD musste noch vor der Übertragung auf
0 und anschließend auf 1 gesetzt werden.

Danke für die Hilfe!

von Peter D. (peda)


Lesenswert?

Es muß nur nach der Übertragung eine 0-1-Flanke zur Übernahme erzeugt
werden, wann Du auf 0 setzt, spielt keine Rolle.


Peter

von Dominik (Gast)


Lesenswert?

Okay. Ich habe jetzt nur noch das Problem, dass die Daten alle um 1 nach
links verschoben auf dem Display stehen, also das niederwertigste Bit
steht an Stelle 2 und das letzte Bit fehlt.

von Dominik (Gast)


Lesenswert?

Passt schon, muss ein Verdrahtungsfehler sein ;-)

Danke nochmal!

von Dominik (Gast)


Lesenswert?

Sehe ich das eigentlich richtig, dass wenn ich die 8*5 LED-Matrix von
Pollin habe immer nur eins pro MAX7219 verwenden kann?
Oder kann man da irgendwie tricksen?

von AxelR. (Gast)


Angehängte Dateien:

Lesenswert?

Kann es sein, dass der 19er kein echtes SPI macht, sonder nur der 21er?
ich habe eine Karte mit sechs Stück MAX7219, deren Clock und Enable
Eingänge zusammen herausgeführt sind, die "Data-Lines" für jeden
einzeln separat. Schonmal ungewöhnlich...
Naja Microsoft eben (war ein Demodisplay vom Gamepad mit Gyrosensor.
genauen Namen habe ich vergessen).
Hier musste ich auch selbst ran, hatte aber glücklicherweise keine
Probleme. Ist aber auch schon wieder zwei Jahre her .Kinder wie die
Zeit rennt. Ich weiss zwar nicht mehr genau, was mich damals geritten
hat, aber ich habe den ASM Text mal angehangen. Vielleicht kann man mit
der INIT was anfangen
AxelR.

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.