LED Matrix mit MAX7221 und Platinen auslegen

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

Antworten
Kopernikus
Mini-User
Beiträge: 4
Registriert: Di, 21.03.17, 12:43

So, 26.03.17, 14:38

Hallo in die Runde,

ich möchte mit dem IC "MAX7221" mir selbst eine LED Matrix bauen, für die ich auch eine Platine entwerfen möchte.
Ein IC kann 8x8 LED bedienen.
Da ich 40x40 LED´s ansteuern möchte, müsste ich 25 IC´s verschalten

Was wäre nun grundsätzlich für die Auslegung zu beachten?

Soweit ich die Elektronik hier verstanden habe, werden die meisten Leitungen Parallel geschaltet, und nr die Gelbe Signalleitung in Reihe.
http://www.instructables.com/id/16x8-LE ... 19-module/

Wie würde ich nun den Leistungsbedarf an einer LED berechnen?
Welche Leiterbahnenquerschnitte würden sich dann für mich ergeben?
dieterr
Hyper-User
Hyper-User
Beiträge: 1144
Registriert: Mo, 04.01.16, 18:16

So, 26.03.17, 20:28

Kopernikus hat geschrieben:Da ich 40x40 LED´s ansteuern möchte, müsste ich 25 IC´s verschalten

Was wäre nun grundsätzlich für die Auslegung zu beachten?
Dass du 1600 LEDs verlöten musst. Nichts gegen deine Ambitionen, aber mir scheint das für ein erstes Projekt (so verstehe ich zumindest die weiteren Fragen) etwas vermessen.
Kopernikus hat geschrieben: Wie würde ich nun den Leistungsbedarf an einer LED berechnen?
Welche Leiterbahnenquerschnitte würden sich dann für mich ergeben?
Inwiefern ist das relevant? Du musst alle LEDs ja sowieso über ein einzelnes Modul separat ansteuern, also bleibt bei Modulen ja alles beim alten. Nur der Gesamtbedarf multipliziert sich entsprechend.
Benutzeravatar
Achim H
Star-Admin
Star-Admin
Beiträge: 13067
Registriert: Mi, 14.11.07, 02:14
Wohnort: Herdecke (NRW)
Kontaktdaten:

So, 26.03.17, 23:34

Dass du 1600 LEDs verlöten musst. Nichts gegen deine Ambitionen, aber mir scheint das für ein erstes Projekt (so verstehe ich zumindest die weiteren Fragen) etwas vermessen.

Bei Verwendung von 8x8 Dot-Matrix Displays sind es nur 25 Matritzen. Jede Dot-Matrix hat 16 Anschlüsse (8 Reihen + 8 Spalten = 64 Leds).
Sich die 8x8 Matritzen auch noch selber herzustellen, wäre in der Tat eine Wahnsinnsarbeit.
Kopernikus hat geschrieben:Welche Leiterbahnenquerschnitte würden sich dann für mich ergeben?

Das hängt davon ab, wieviel Strom durch jede Leiterbahn fließt.
Guckstu (Link zu bunbury.de): Strombelastbarkeit und Isolationsabstände von Leiterbahnen.

Typisch werden Matritzen gemultiplext, dass heißt, es wird immer nur 1 Led angesteuert. Bei hoher Frequenz sieht es so aus, als wären viele Leds gleichzeitig an.
Kopernikus
Mini-User
Beiträge: 4
Registriert: Di, 21.03.17, 12:43

Mo, 27.03.17, 20:07

Hallo zusammen,

@ dieterr,

1600 LED´s sind richtig berechnet. Das sind 3200 Lötpunkte nur für die LED´s. Wieso hältst du das für vermessen? Für mein erste Projekt hatte ich ca 150 LED´s miteinander verschaltet, und ich meine, jedem habe ich einen einzelnen Widerstand gegönnt (Verdammt, das ist schon über 10Jahre her!! :shock: ) Für ein anderes Projekt hatte ich mir mal einen Vakuumtisch gebaut, der hatte 26400 Löcher, habe das gerade noch mal nach recherchiert.
Ich denke die Hand voll Lötpunkte bekomme ich hin... :lol:

Code: Alles auswählen

Inwiefern ist das relevant? Du musst alle LEDs ja sowieso über ein einzelnes Modul separat ansteuern, also bleibt bei Modulen ja alles beim alten. Nur der Gesamtbedarf multipliziert sich entsprechend.
Jain, für den Leistungsbedarf der LED´s stimme ich dir zu. Aber die Signalleitung "DIN" & "DOUT" wird auf jeden Fall durch jede Platine geschleift. Wenn ich für das Modul 100x100mm ansetze, haben wir 2,5 Meter, zuzüglich der Kontakte.

@ Achim,

Vielen Dank für den Link.

In der Tat plane ich noch eigene Platinen.
Daher auch die Frage.

Genau, es hängt von dem Strom ab, aber wie berechne ich diesen?
Die LED´s werden gemultiplext, welche Auswirkung hat dies? Ein Elektromotor benötigt beim Einschalten eine sehr hohen Strom, wie ist dies bei den LED´s?


Gruß
Burkhard
dieterr
Hyper-User
Hyper-User
Beiträge: 1144
Registriert: Mo, 04.01.16, 18:16

Mo, 27.03.17, 20:33

Nun denn, du weißt wohl was du tust :D

Pro Modul sind immer maximal 8 LEDs gleichzeitig an, ich vermute mal mit 20mA. Also 160mA, da ist die Breite der Leitungen eher unkritisch, siehe auch die Tabelle. Laut Datenblatt kann der IC max. 40mA, also 330mA. Die LEDs haben keinen höheren Einschaltstrom, also alles gut. Ebenso die Signalleitungen, da geht ja kaum Strom drüber. Die Länge, und damit der Spannungsabfall darüber ist auch eher irrelevant.

Höchsten du willst die Platinen direkt hintereinander reihen, ohne extra Kabel? Dann muss für Power Plus und Minus durch die erste Platine natürlich der Gesamtstrom für alle Module, also rund 4-5A. Das würde dann spannender :mrgreen:
Borax
Star-Admin
Star-Admin
Beiträge: 11985
Registriert: Mo, 10.09.07, 16:28

Di, 28.03.17, 08:06

Ebenso die Signalleitungen, da geht ja kaum Strom drüber. Die Länge, und damit der Spannungsabfall darüber ist auch eher irrelevant.
Ja, aber die Signalleitungen bilden einen Datenbus, so dass eben (insbesondere bei hohen Taktfrequenzen) lange Leitungen trotzdem nicht möglich sind. Das gilt aber insbesondere für die (gemeinsame) CLK Leitung. Im Prinzip ist das ja nichts anderes als hier beschrieben:
http://rn-wissen.de/wiki/index.php?titl ... der_am_AVR
Kopernikus
Mini-User
Beiträge: 4
Registriert: Di, 21.03.17, 12:43

Di, 28.03.17, 19:23

Hi in die Runde,

@dieterr,

genau, nehmen wir einfach mal diese LED bedrahtet Gelb Rund 5 mm 3000 mcd 20 ° 20 mA. Diese hat 20mA, also würden wenn ich alle, oder jeweils 8 waagerecht, bzw. senkrecht schalte, maximal die 160mA auf den Leitungen anstehen.

-> verändert sich eigentlich die Helligkeit, wenn ich eine, oder alle 64 LED´s ansteuere, oder wird die einzelne LED auch gemultiplext?

Nach dem Link von Achim würden 0,1mm bei 17,5 µm Schichtstärke ausreichen. (max. 250mA)
Der Leiterbahnen Minimalabstand mit Lötstoplack wäre also 0,25 mm.

Eigentlich wollte ich die Module schon hintereinander schalten, aber bei den Polen wollte ich schon separat ein Kabel ziehen.
Aber wie Borax das beschreibt, wird das wohl nichts... :(


@ Borax,
Danke für den Link, ich chaue mal, was ich da machen kann... :(
dieterr
Hyper-User
Hyper-User
Beiträge: 1144
Registriert: Mo, 04.01.16, 18:16

Di, 28.03.17, 19:33

Borax hat geschrieben:Ja, aber die Signalleitungen bilden einen Datenbus, so dass eben (insbesondere bei hohen Taktfrequenzen) lange Leitungen trotzdem nicht möglich sind. Das gilt aber insbesondere für die (gemeinsame) CLK Leitung. Im Prinzip ist das ja nichts anderes als hier beschrieben:
http://rn-wissen.de/wiki/index.php?titl ... der_am_AVR
Du hast Recht damit. Kann das ein Thema werden? Die Taktfrequenz bei 25 seriellen Bausteinen muss ich doch gegenüber einem einzelnen mit 25 multiplizieren, wenn ich die gleiche Wiederholfrequenz des Displays haben will, oder?

quote="Kopernikus"]
-> verändert sich eigentlich die Helligkeit, wenn ich eine, oder alle 64 LED´s ansteuere, oder wird die einzelne LED auch gemultiplext?
([/quote]
Ob eine oder alle 64 an sind, ändert nichts, sofern die Spannungsquelle nicht einbricht. Es wird immer gemultiplext, und alle sind max 1/8tel der Gesamtzeit an.
Borax
Star-Admin
Star-Admin
Beiträge: 11985
Registriert: Mo, 10.09.07, 16:28

Di, 28.03.17, 20:54

Die Taktfrequenz bei 25 seriellen Bausteinen muss ich doch gegenüber einem einzelnen mit 25 multiplizieren, wenn ich die gleiche Wiederholfrequenz des Displays haben will, oder?
Frage: Wie groß soll / muss denn die Wiederholfrequenz sein?
Respektive wie oft muss ein 'Update' erfolgen?
Weil: Die Schieberegister sind 'gelatcht'. Will heißen, die Datenübertragung findet 'im Hintergrund' statt. Da flimmert nichts, selbst wenn die Daten mit 100 Bit/s übertragen werden. Erst wenn alle Bits ausgegeben wurden und an ihrer Position sind, werden die Bits durch ein Strobe an RCK (bzw. LOAD am MAX7221) an die Ausgänge gelegt und bleiben dort, bis sie wieder überschrieben werden. Wenn es reicht, ca. 15 Updates pro Sekunde zu machen, dann kann die Datenübertragung ja locker 50ms lang dauern. In diesem Fall (1600 Bits in 50ms) reicht ja schon eine Bus-Geschwindigkeit von 32 kBit/s. Das ist noch völlig unkritisch. Auch bei 100 kBit/s sollte ein brauchbares CLK Signal noch gut auf ca. 2-3m Bus-Länge funktionieren. Aber mehrere hundert kBit sind vmtl. schon eher hoffnungslos. Auch wenn der MAX7221 selbst mehrere MBit könnte...
Benutzeravatar
Achim H
Star-Admin
Star-Admin
Beiträge: 13067
Registriert: Mi, 14.11.07, 02:14
Wohnort: Herdecke (NRW)
Kontaktdaten:

Mi, 29.03.17, 01:17

1600 Leds muss man doch gar nicht über 1 Datenleitung ansteuern.
Die Matrix soll im Format 40x40 Leds erstellt werden, demnach könnte man auch 5 Datenleitungen verwenden. Der µC muss nur 5 Ausgänge haben.
1600 Leds / 5 Datenleitungen = 320 Leds.
Borax
Star-Admin
Star-Admin
Beiträge: 11985
Registriert: Mo, 10.09.07, 16:28

Mi, 29.03.17, 08:34

Das ginge natürlich auch, aber die Software wird dadurch wesentlich komplizierter. Außerdem ist nicht nur ein Ausgang pro Datenleitung nötig, sondern 3 (DIN, CLK und LOAD/CS).
@ Kopernikus
Willst Du wirklich den MAX7221 verwenden, oder doch den MAX7219 ? Im angegebenen Link ( http://www.instructables.com/id/16x8-LE ... 19-module/ ) geht es um den MAX7219. Dieser wird ähnlich wie die 74595 Schieberegister in einer langen Kette 'beschrieben'. Der MAX7221 wird dagegen quasi einzeln über die CS (=Chip Select) Leitung angesprochen. Dann ist aber eigentlich eine eigene CS Leitung zu jedem MAX7221 nötig. Sonst wird das bei so vielen in einer Kette eher umständlich.
Ich habe das Datenblatt jetzt noch mal näher durchgeschaut... Um einmal alle 1600 Bits zu setzen sind doppelt so viele Bits nötig, weil ja ein Datenwort aus 16 Bits besteht ( 4 'Don't care' Bits, 4 Address Bits und 8 Datenbits).
Gerade zufällig gefunden... Mit 32x32 LEDs gibt es so was fertig zu kaufen: https://eckstein-shop.de/3232-Dot-Matri ... le-MAX7219 Die kommerziellen verwenden alle den MAX7219...
Kopernikus
Mini-User
Beiträge: 4
Registriert: Di, 21.03.17, 12:43

Mi, 29.03.17, 19:19

dieterr hat geschrieben:Ob eine oder alle 64 an sind, ändert nichts, sofern die Spannungsquelle nicht einbricht. Es wird immer gemultiplext, und alle sind max 1/8tel der Gesamtzeit an.
Okay, das beruhigt mich schon einmal :)
Borax hat geschrieben:@ Kopernikus
Willst Du wirklich den MAX7221 verwenden, oder doch den MAX7219 ? Im angegebenen Link ( http://www.instructables.com/id/16x8-LE ... 19-module/ ) geht es um den MAX7219. Dieser wird ähnlich wie die 74595 Schieberegister in einer langen Kette 'beschrieben'. Der MAX7221 wird dagegen quasi einzeln über die CS (=Chip Select) Leitung angesprochen. Dann ist aber eigentlich eine eigene CS Leitung zu jedem MAX7221 nötig. Sonst wird das bei so vielen in einer Kette eher umständlich.
Ich habe das Datenblatt jetzt noch mal näher durchgeschaut... Um einmal alle 1600 Bits zu setzen sind doppelt so viele Bits nötig, weil ja ein Datenwort aus 16 Bits besteht ( 4 'Don't care' Bits, 4 Address Bits und 8 Datenbits).
Gerade zufällig gefunden... Mit 32x32 LEDs gibt es so was fertig zu kaufen: https://eckstein-shop.de/3232-Dot-Matri ... le-MAX7219 Die kommerziellen verwenden alle den MAX7219...
Jetzt macht ihr mich völlig fertig, das war das einzige Teil, bei dem ich mir sicher war..... :lol:
Hiernach bin ich davon ausgegangen, dass es sich bei dem MAX7221 lediglich um einen Nachfolger des MAX7219 handelt, der eine Verbesserung im EMV-Bereich erfahren hat.
Da es diverse Abbildungen gibt, die ein IC darstellen, dass beide Bezeichnungen trägt, habe ich das nicht weiter hinterfragt.

Ursprünglich hatte ich auch das 74595 in Visier, aber bei einer vergleichbaren Einschaltzeit (effektive Lichtstärke) müsste ich immer 2 IC´s mit 64 Dioden verschalten. Folglich 50 statt 25 IC´s ansteuern.

Was ich aber noch nciht so ganz Verstanden habe, ist der Unterschied zwischen dem MAX7219 und dem MAX7221.
Borax
Star-Admin
Star-Admin
Beiträge: 11985
Registriert: Mo, 10.09.07, 16:28

Do, 30.03.17, 09:18

Ganz so groß scheint der Unterschied auch nicht zu sein. So gesehen geht das mit dem 7221 wahrscheinlich genauso. Was mich zunächst stutzig gemacht hat war diese Anmerkung im Datenblatt:
For the MAX7221, CS must be low to clock data in or out. The data is then latched into either the digit or control registers on the rising edge of LOAD/CS. LOAD/CS must go high concurrently with or after the 16th rising clock edge, but before the next rising clock edge or data will be lost.
Aber das bezieht sich auf beide und heißt nur, dass die Datenübernahme mit LOAD/CS vor dem nächsten clock Puls kommen muss, was aber sowieso logisch ist. 'Durchschieben' tun sie aber beide:
Data at DIN is propagated through the shift register and appears at DOUT 16.5 clock cycles later.
Der wesentliche Unterschied ist das Verhalten der LOAD / CS Pins:
For the MAX7219, serial data at DIN, sent in 16-bit packets, is shifted into the internal 16-bit shift register with each rising edge of CLK regardless of the state of LOAD. For the MAX7221, CS must be low to clock data in or out.
Letztlich ist das aber auch egal, weil man würde ja sowieso den LOAD / CS Puls erst dann setzen, wenn alle Daten übertragen sind.
Also such Dir einen aus :)
BTW: Womit willst Du die eigentlich steuern? Arduino, RasPi oder noch was anderes?
Antworten