Problem mit MAX7219

Gast #148074
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
Angehängte Dateien:
Gast #148075
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.
Gast #148076
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
Gast #148078
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
Angehängte Dateien:
Gast #148084
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.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren