No-Op beim MAX7219 unklar

Hallo allerseits,

wenn ich mir das PDF zum MAX7219 (8-Digit-LED Display Driver) so anschaue, ist mir eine Sache bisher noch nicht ganz klar.

Es geht speziell um den No-Op. Ich habe testhalber eine kleine LED-Matrix mit 2x 64 LED's (also mit zwei 7219, DOUT direkt auf DIN zum Naechsten) aufgebaut. Mittels Delphi habe ich mir ein kleines Prograemmchen zur Ansteuerung geschrieben. Grundsaetzlich habe ich es verstanden den MAX7219 richtig zu fuettern (TestMode, Shutdown, ScanLimit, usw. funktionieren korrekt). Allerdings dieser No-Op macht mir zu schaffen. Wenn ich das PDF richtig verstehe, dann muss man, um beispielsweise einen vierten 7219 in einer Reihe anzusteuern, das 16 Bit Datenwort gefolgt von drei No-Op's senden. Mit Wechsel von 0 auf 1 bei LOAD wird der 4te Chip dann zum Leben erweckt . Nach einigen Probieren bin irgendwie zum Schluss gekommen das das No-Op nicht 16Bit sondern 8Bit lang sein muss!? Das verstehe ich nun nicht. Wobei ich sagen muss, dass man darueber nicht wirklich Informationen im PDF findet (bezueglich der Laenge des Datenwortes). Oder habe ich da Tomaten auf den Augen? Oder ist der zeitliche Ablauf, bzw. die Reihenfolge der Datenwoerter anders?

Sicherlich hat hier schon mal jemand Applikationen mit dem MAX7219 entwickelt und kann mir evt. einen Tipp geben?

mfg Stefan

Reply to
Stefan Speckmann
Loading thread data ...

Hallo Stefan,

Stefan Speckmann schrieb:

hast du mal die Signalform des Taktsignals kontrolliert? Überschwinger auf dem Clock könnten dazu führen, dass die Schieberegister pro Takt zwei Bit einschieben.

Gruß Ernst

Reply to
Ernst Schwab

Hallo Stefan

Ich muss hier den Vorbehalt machen, dass ich nur den MAX7221 aus eigener Erfahrung kenne. Ich dachte der MAX7219 sei bereits obsolet und nicht mehr erhaeltlich?

Richtig

Nein. Die 0/1 Flanke aktiviert alle Chips in der Kette. Die Idee des No-Op Registers ist, dass solange man den No-Op Register beschreibt eben keine Funktion ausgehfuehrt wird, das heisst man kann eben auch die vorhergehenden Chips aktivieren und benoetigt eben nicht seperate LOAD(#CS) Leitungen - obwohl das, falls du die notwendigen Leitungen zu Verfuegung hast, sinnvoller sein kann.

Das Datenwort ist 16 Bit, siehe Table 1 im Datenblatt. Wobei fuer das No-Op Command nur die 4 Registerbits (D11-D8) Null sein muessen, die restlichen 12 Bits sind egal.

Wenn du mehrere MA7219 in einer Reihenschaltung mit den uebrigen Kommandos ansteuern kannst, dann muss auch, dass No-Op Register funktionieren. Angenommen du hast zwei MAX7219 in Reihe geschaltet, und du kannst durch zweimaliges senden des gleichen 16 Bit Kommandowortes beide Chips voellig symmetrisch ansteuern (beide Chips machen exakt das gleiche), dann mit das No-Op auch funktionieren.

Bist du sicher dass das No-Op Command in deiner Software richtig codiert ist (am einfachsten 16 mal 0)? Wie hoch ist dein Clock Signal bzw. bist du sicher, dass alle Setup/Hold Zeiten wie in Figure 1 angegeben eingehalten werden (obwohl es schwer vorstellbar ist, dass das nur Auswirkungen auf das No-Op Register haben sollte)?

HTH

Klaus

Reply to
Klaus Bahner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.