mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit MAX7219


Autor: Dominik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dominik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Peter Dannegger (peda)
Datum:

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


Peter

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Passt schon, muss ein Verdrahtungsfehler sein ;-)

Danke nochmal!

Autor: Dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: AxelR. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.