Forum: Mikrocontroller und Digitale Elektronik Nochmal: Ansteuerung LED-Matrix 64 x 32 aus China


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

... aber dieses Mal die Frage an jemanden, der so ein Ding (oder auch 
eins mit anderer Größe, natürlich) hat: Ist erkennbar, wie die 
verwendeten Zeilen- und Spaltentreiber heißen? Also nicht IC1, IC2 
etc... 😉 Die sind auf den Fotos ja leicht zu identifizieren, aber nicht 
ihre Beschriftung. Dann gibt es noch ein paar wenige ICs mehr, 
vielleicht Leitungstreiber oder Adressdecoder.

Es schließt sich dann die Frage an, ob es Unterlagen zu diesen ICs gibt. 
Das wäre aber erst der nächste Schritt. (Nein, ich will kein Display 
nachbauen...)

von Stefan F. (Gast)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> so ein Ding

Welches Produkt meinst du denn mit "so ein Ding"?

Soll sich jetzt jeder eins aussuchen und einen Aufsatz schreiben? Was 
bekommt denn der Gewinner, der richtig geraten hat?

Du bist lange genug dabei, um zu wissen, wie man vernünftig Fragen 
stellt.

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Gibt es mehr als ein Ding, für dass die Bezeichnung "LED-Matrix 64 x 32 
aus China" (oder auch eins mit anderer Größe) zutrifft?

Wer so ein Ding da hat, weiß, was gemeint ist. Und die anderen können 
gar nicht antworten.

Ich erwarte nicht, dass auf den verschiedenen Produkten unterschiedliche 
ICs sind. Und wenn doch, ist auch ok - ich will nur wissen, was das für 
welche sind. Das wird kein Aufsatz - es ist das Nennen von genau 2 
IC-Bezeichnungen.

Ich sehe nicht, dass irgendwas an der Frage unvernünftig oder 
unvollständig ist.

Ok, du kennst so ein Ding also nicht, demnach hast du auch keins. Die 
Frage war daher explizit nicht an dich gerichtet. Also zu deiner Info 
folgendes Beispiel:
https://de.aliexpress.com/item/32514844235.html

von Andre (Gast)


Lesenswert?

Schau mal, ob du hier einpassenden Blick erhaschen kannst. Der repariert 
so ein Teil:

https://youtu.be/m4H2ftpWheU

von Michael U. (amiga)


Lesenswert?

Hallo,

74HCT245 als Treiber an den Datenein-/ausgängen.
FM6124 LED-Treiber 16 Kanal-Konstantstromausgang
TC7262A PMOS Treiber On-Widerstand 120 m Ω, der maximale Strom 2.5A

als Beispiel eines meiner Displays. Datenblätter (in chinesisch) sind im 
Netz, ansonsten kann man auch einfach z.B. mal in die Arduino 
FastLED-Sourcen schauen, dann hat man auch Beispiele zum Timing der 
Ansteuerung.
Ist ja nicht so, daß noch niemand die Dinger benutzt hat...

Gruß aus Berlin
Michael

von MaWin (Gast)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Gibt es mehr als ein Ding, für dass die Bezeichnung "LED-Matrix 64 x 32
> aus China" (oder auch eins mit anderer Größe) zutrifft?

Natürlich.

Der Zahn der Zeit (🦷⏳) schrieb:
> Ich erwarte nicht, dass auf den verschiedenen Produkten unterschiedliche
> ICs sind

Sind sie aber.

Manche verwenden 74HC595 mit Widerständen, andere TPIC6B595, wieder 
andere DM13A oder ähnliche Konstantstromtreiber. Softwaretechnisch sind 
es aber immer Schiebetegister ohne PWM, können also nur ein/aus.
Spaltenansteuerung erfolgt entweder über Decoder wie 74HC138 oder 
Schieberegister wie RT5957.

Der Stecker ist HUB75, die Belegung ist aber je nach Organisation 
teilweise unterschiedlich.

von Michael U. (amiga)


Lesenswert?

Hallo,

MaWin schrieb:
> Manche verwenden 74HC595 mit Widerständen, andere TPIC6B595, wieder
> andere DM13A oder ähnliche Konstantstromtreiber. Softwaretechnisch sind
> es aber immer Schiebetegister ohne PWM, können also nur ein/aus.
> Spaltenansteuerung erfolgt entweder über Decoder wie 74HC138 oder
> Schieberegister wie RT5957.

Ist mir bei den angesprochenen Anzeigemodulen noch nie begegnet. Bei mir 
und einem Bekannten sind wohl 5 Stück in Nutzung, 64x32 oder 64x64. Alle 
nutzen obige Bestückung, allerdings sind die Treiber ICs duchaus 
verschiedene Typen, aber mit prinzipiell identischer Funktion, nur das 
Timing bei CLK/STB/OE war etwas abweichend.

Natürlich wird es auch andere Sachen an HUB75 geben, ich bezieh mich 
hier nur auf die vielfach angebotenen Matrix-Module nach denen der TO 
gefragt hat.

Gruß aus Berlin
Michael

von MaWin (Gast)


Lesenswert?

Michael U. schrieb:
> Ist mir bei den angesprochenen Anzeigemodulen noch nie begegnet

https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/how-the-matrix-works

von Stefan F. (Gast)


Lesenswert?


von Johannes S. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Davon 8 Stück, dann hast du 64x32 Pixel.

aber nix mit RGB. Die Module die der TO meint sind für größere 
Videowände, da wird man mit den kleinen MAX7219 Modulen nicht glücklich.

von Stefan F. (Gast)


Lesenswert?

Johannes S. schrieb:
> aber nix mit RGB

Guter Hinweis, das habe ich übersehen.

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Große Klasse, viele informative Antworten 😊😊😊! Danke.

Ich hatte befürchtet, dass, selbst wenn die Bezeichnungen zu erkennen 
sind, das nichts nützt, weil es undokumentierte in China für den 
Eigenbedarf hergestellte ICs sind. Bist auf "undokumentiert" ist es auch 
so, denn die Daten sind zu finden! Allerdings in chinesisch, aber 
trotzdem verständlich. Und der Rest ließe sich leicht so zu übersetzen, 
dass man versteht, was gemeint ist.

74HC595 mit Widerständen würde man auf den Fotos von den Rückseiten, die 
es in den Angeboten gibt, erkennen. Da habe ich es auch noch nie 
gesehen. Ich glaube, MaWin hat sich auch geirrt, denn in dem Text steht:
"So, on the PCB is 12 LED driver chips. These are like 74HC595s but they 
have 16 outputs and they are constant current."

Lange Videos mag ich nicht, aber das mit der Reparatur war technisch gut 
gemacht und informativ.

Ich habe 2 Stück 64x32 P4 bestellt und werde die mit einem MSP430 mit 8 
kByte RAM ansteuern. Kein Adafruit, Raspi, ESP.... Eigene Hardware. Mit 
den Datenblättern kenne ich jetzt die Setuup- und Hold-Zeiten etc.. Es 
ist angenehmer, zu wissen, dass es klappen wird, als es nur zu vermuten. 
4 Helligkeitsstufen müssten bei dieser Hardware darstellbar sein.

von MaWin (Gast)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Da habe ich es auch noch nie gesehen

https://cassiopeia.hk/iotclock/

Es ist immer die Frage, welche Schaltung zum Herstellungszeitpunkt am 
billigsten zu realisieren ist.

ICN2037, ICN2038S, FM6124, MBI5124 etc. sind heute verbreitet.

von Michael U. (amiga)


Lesenswert?

Hallo,

die Grundhelligkeit kann in meiner Anzeoge in 10 Stufen zwischen 0 und 
100% eingestellt werden.
Das Lagerfeuer wird mit 256 Stufen berechnet, subjektiv dürften es wohl 
64 Helligkeitsstufen sein.
Man kann auf den Displays ja schließlich in der realen Nutzung Filme 
abspielen.

Was ist "keine eigene Hardware"? Ob ein MSP430 oder eben ein ESP32 die 
Daten rausschiebt ist ja letzlich egal. Die Daten müssen eben schnell 
genug bereit stehen und schnell genug rausbefördert werden.

Gruß aus Berlin
Michael

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Michael U. schrieb:
> Die Daten müssen eben schnell
> genug bereit stehen und schnell genug rausbefördert werden.
"Schnell genug" kann sehr schnell sein. Wenn man da keine passende 
Hardware mit entsprechender Schnittstelle hat, ist nicht viel drin:

Um ein übliches 64 x 32-RGB-Display mit 1:16 zu füttern, müssen 2 x 1024 
LEDs je 3 Bit, also 6 Bit -> 1 Byte ausgegeben werden.

Wenn ich z. B. 8 Bit Helligkeitsinformation darstellen will, muss das 
256-mal innerhalb einiger ms geschehen, also bei 100 Hz Auffrischrate 
innerhalb 10 ms.

1024 * 256 = 262144 Byte in 10 ms = 26214400 Hz (26 MHz). Das geht, wenn 
eine  entsprechende Schnittstelle vorhanden ist, als z.B. mit einem 
FPGA, aber bestimmt auch bei einigen µCs per DMA. Mit dem FPGA ließen 
sich die Ausgabedaten in Echtzeit berechnen, bei µCs, mit oder ohne DMA, 
müssen sie in einem Bildwiederholspeicher passend vorbereitet werden. 
Das ist ein Haufen Bit-Fummelei.

"Eigene Hardware": Ich habe zufällig ein selber gemachtes Board, 
ursprünglich als TQFP-auf-DIL-Adapter für einen MSP430F233 entworfen, 
aber mit Zubehör wie 3,3V-Stabi, Oszillator, Spy-by-Wire etc.. Auf den 
passt auch ein Pin-kompatibler MSP430F2618, der viel mehr RAM hat. Mit 
diesem MSP430 muss ich die Schnittstelle aber in Software machen und 
komme damit auf nur ca. 1,8 MHz bzw. weniger, weil zwei Displays 
angesteuert werden sollen. Aber ich habe auch nichts vor, wofür mehr als 
4 Helligkeitsstufen erforderlich wären. Viel Kapazität zum Berechnen 
eines Bildes und Aufbereitung zur Ausgabe bleibt auch nicht. (Ich weiß 
noch nicht einmal genau, was ich überhaupt machen werde... Ich will doch 
nur spielen...)

von Michael U. (amiga)


Lesenswert?

Hallo,

Der Zahn der Zeit (🦷⏳) schrieb:
> 1024 * 256 = 262144 Byte in 10 ms = 26214400 Hz (26 MHz). Das geht, wenn
> eine  entsprechende Schnittstelle vorhanden ist, als z.B. mit einem
> FPGA, aber bestimmt auch bei einigen µCs per DMA. Mit dem FPGA ließen
> sich die Ausgabedaten in Echtzeit berechnen, bei µCs, mit oder ohne DMA,
> müssen sie in einem Bildwiederholspeicher passend vorbereitet werden.
> Das ist ein Haufen Bit-Fummelei.

Beim ESP32 wird über 8 I2S-Kanäle per DMA ausgegeben. I2S Takt ist 
20MHz, mehr schaffen die Anzeigen wohl nicht. AdafruitGfx nutzt die 
FastLED-Lib wegen der Kompatibilität der Grafikaufrufe. Intern wird mit 
RGB565 gerechnet.
Ich habe mich da aber nicht komplett durchgewühlt...
Warum ESP32? Weil er billig ist, weil er hier rumliegt, weil er trotz 
einiger Ungereimtheiten einiges an interner Hardware und Rechenleistung 
bietet.

Der Zahn der Zeit (🦷⏳) schrieb:
> (Ich weiß
> noch nicht einmal genau, was ich überhaupt machen werde... Ich will doch
> nur spielen...)

Warum sollte es Dir besser gehen als mir (und auch meinem Bekannten)? 
;-)

Gruß aus Berlin
Michael

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Michael U. schrieb:
> Beim ESP32 wird über 8 I2S-Kanäle per DMA ausgegeben.
8-kanalig I2S, also 16 Audiokanäle kann der? Und ein Takt & Sync für 
alle 8 Kanäle? Das wäre sehr interessant für eine andere Baustelle.

Mir geht es gut. Ich hoffe, dir nicht schlechter...

von Michael U. (amiga)


Lesenswert?

Hallo,

Der Zahn der Zeit (🦷⏳) schrieb:
> Michael U. schrieb:
>> Beim ESP32 wird über 8 I2S-Kanäle per DMA ausgegeben.
> 8-kanalig I2S, also 16 Audiokanäle kann der? Und ein Takt & Sync für
> alle 8 Kanäle? Das wäre sehr interessant für eine andere Baustelle.

Ich habe mir da die Hardware nicht so genau angeschaut, ganz unabhängig 
dürfte das nicht sein, schon wegen der nötigen Pins.
I2S kann doch meines Wissens nach sowieso mehr als 2 Audiokanäle 
ausgeben, TDM-Mode? Damit habe ich aber noch nichts gemacht.

Gruß aus Berlin
Michael

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Michael U. schrieb:
> I2S kann doch meines Wissens nach sowieso mehr als 2 Audiokanäle
> ausgeben, TDM-Mode? Damit habe ich aber noch nichts gemacht.
I2S mache ich oft, nächstes Ziel ist 4 x I2S in den Prozessor und 4 x 
I2S aus ihm heraus (8 + 8 Kanäle). Ein PIC32MZ kann das prinzipiell, 
wobei ich die Firmware nicht selber mache. Aber das sind auch nur 4 
Datenleitungen zur Ausgabe, das würde auch mit dem PIC auch mit SPI 
gehen. Die Displays wollen aber 6 Datenleitungen + 1 Clock, I2S hilft da 
wenig. Auch TDM ist nicht nur 2, sondern viele Kanäle auf einer 
Datenleitung.

Grüße aus der Nähe von Hannover
DZDZ

von Michael U. (amiga)


Lesenswert?

Hallo,

@Der Zahn der Zeit (🦷⏳) (Gast): ok, da hatte ich Dich bei I2S 
mißverstanden, ich dachte, Du warst da bei echter Audioausgabe.
Für die Displays werden I2S Daten für R0/G0/B0/R1/G1/B1 mit gemeinsamen 
Clock genutzt. Wie der Rest da gemappt ist, müßte ich mir mal anschauen, 
ich habe nur grob in den Source der Lib reingeschaut.

Gruß aus Berlin
Michael

von Der Zahn der Zeit (🦷⏳) (Gast)


Angehängte Dateien:

Lesenswert?

Ich kann und will den Faden (aka Thread) noch mal weiter spinnen. Mein 
Spieltrieb ist weitgehend befriedigt, die Erfahrung gesammelt, alles 
funktioniert, nur wollte ich es jetzt deutlich "hübscher" machen und 
statt zwei P4-Displays 64 x 32 zwei P2-Displays 128 x 64 ansteuern.

Die sollten lt. Hersteller 1 : 32 gemultiplext sein. Logisch, geht mit 
HUB75 nicht anders. Sie sind heute gekommen, und nun mache ich ein 
(überdurchschnittlich) dummes Gesicht:

1 : 32 gemultiplexte Displays haben 5 Zeilenadressen, A, B, C, D und E. 
Diese Displays haben nur 3! Adressen: A, B und C. Die Pins für D und E 
sind sowohl auf dem Bestückungsdruck als Masse dokumentiert (s. Foto), 
als auch tatsächlich nach Masse kurzgeschlossen.

Also dachte ich "dann haben die wohl 512 Pixel lange Schieberegister für 
je 4 statt für nur eine Zeile - wie soll das sonst gehen?". Aber es gibt 
nur Schieberegister-ICs für 128 Spalten bzw. LEDs, also für nur eine 
Zeile (s. Foto)!

Technisch scheint mir das unmöglich. Außer den 2 x 3 x 8 
16-Bit-Schiebergistern (ICND2038S) gibt es noch 3 74'245-äqivalente 
Bustreiber (MW245) und, auf dem Foto nicht sichtbar, 8 ICs im 
SO16-Gehäuse, vermutlich äquivalent zu z. B. SM5166, die die 
Zeilentreiber sein müssen. Weil sie abgedeckt sind, kann ich auch ihre 
Beschriftung nicht erkennen. Wenn die nicht noch irgendeinen 
Zeilenzähler o. ä. haben, kann das Ganze doch gar nicht nicht gehen. Und 
selbst wenn es so einen Zeilenzähler gäbe, bräuchte der ein Reset-Signal 
von der Steuerung.

Sollte zufällig jemand die Lösung kennen - das wäre schön. Vielleicht 
finde ich sie auch selber oder der Hersteller hilft. Im Moment habe ich 
keine Zeit, das zu erforschen. Eigentlich hätten die Displays sofort mit 
der vorbereiteten Ansteuerung laufen sollen.

DZDZ

von Peter D. (peda)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> zwei P2-Displays 128 x 64 ansteuern.

Ist es denn wieder so unsäglich schwer, einen Link darauf zu posten?

von Joachim B. (jar)


Lesenswert?

Peter D. schrieb:
> Ist es denn wieder so unsäglich schwer, einen Link darauf zu posten?

nein,
aber so kann der Hilfesuchende erkennen wer sich Mühe gibt oder er 
trollt nur oder ist dusslig oder er ist Salamivertreter.

: Bearbeitet durch User
von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Peter D. schrieb:
> Der Zahn der Zeit (🦷⏳) schrieb:
>> zwei P2-Displays 128 x 64 ansteuern.
>
> Ist es denn wieder so unsäglich schwer, einen Link darauf zu posten?

Wo drauf???? Auf das Angebot? Glaubst du ernsthaft, dass des dort mehr 
Informationen gibt, als das, was ich hier schreibe???

von Joachim B. (jar)


Lesenswert?

Frage warum bricht das Internet zusammen?
Weil 1 Million Hilfswilliger nun das Display suchen.

von Michael U. (amiga)


Lesenswert?

Hallo,

Der Zahn der Zeit (🦷⏳) schrieb:
> Wo drauf???? Auf das Angebot? Glaubst du ernsthaft, dass des dort mehr
> Informationen gibt, als das, was ich hier schreibe???

naja, andere Bilder eines solchen Displays zeigen eindeutig D und E in 
der Beschriftung...

Gruß aus Berlin
Michael

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Michael U. schrieb:
> naja, andere Bilder eines solchen Displays zeigen eindeutig D und E in
> der Beschriftung...
Das stimmt. Es geht ja auch gar nicht anders. Deswegen habe ich das Foto 
gemacht. Bilder mit nur 3 Adressleitungen habe ich noch nie gesehen 
(müssten aber bei 16-zeiligen Displays zu finden sein.) Und die Fotos 
vom Anbieter haben ohnehin nichts mit den tatsächlichen Produkten zu 
tun, selbst auf seiner Angebotsseite sind widersprechende Fotos zu ein 
und dem selben Produkt zu finden :-( Bei anderen Anbietern ist das auch 
nicht anders.

Aber das ist hier nicht das Thema(!). Trotzdem, nur damit ich beweisen 
kann, dass im Angebot tatsächlich 32:1 steht:
https://de.aliexpress.com/item/4000029775879.html

von Harry L. (mysth)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Bilder mit nur 3 Adressleitungen habe ich noch nie gesehen

Mein Display (64x64) hat auch 1:8 Multiplexing (A,B und C)
Die Schieberegister sind 256 Bit lang (4 Zeilen)

Die 1:8 sind allerdings primär für Outdoor-Einsatz gedacht (brutal 
hell!)

Für Indoor würde ich auf 1:32 Wert legen!

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Harry L. schrieb:
> Mein Display (64x64) hat auch 1:8 Multiplexing (A,B und C)
> Die Schieberegister sind 256 Bit lang (4 Zeilen)
Das ist interessant! Demnach müsstest du also 2 x 3 x 256 
Spaltentreiber, also 6 x 16 = 96 von den 24-poligen ICs haben?

Nach diesem Verfahren müssten es bei mir 192 davon sein, es sind bei mir 
aber nur 48.

von Harry L. (mysth)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Das ist interessant! Demnach müsstest du also 2 x 3 x 256
> Spaltentreiber, also 6 x 16 = 96 von den 24-poligen ICs haben?
>
> Nach diesem Verfahren müssten es bei mir 192 davon sein, es sind bei mir
> aber nur 48.

Keine Ahnung!
Ich hab nie die Chips gezählt, aber das auszuprobieren (mit nur 1 
Zeile!) ist ja wahrlich kein Hexenwerk.
Das musste ich bei meinem Display auch erst herausfinden.

Zum Testen, einfach 64 rote, danach direkt 64 blaue Pixel usw.....

Dann siehst du sofort wie das läuft.
Dazu muß man auch nicht multiplexen.

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Harry L. schrieb:
> Zum Testen, einfach 64 rote, danach direkt 64 blaue Pixel usw.....
>
> Dann siehst du sofort wie das läuft.
> Dazu muß man auch nicht multiplexen.
Das ist auch mein Plan. Den kann ich aber nicht kurzfristig verfolgen.

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Ich habe mir ein bisschen Zeit genommen (mehr, als ich mir leisten 
will), und bin ein bisschen weiter gekommen:

Es gibt Displays, allerdings offensichtlich relativ selten, bei denen 
die Row-Adressen nicht parallel (ABCDE), sondern seriell gesendet 
werden. Ein einfaches Schieberegister müsste reichen, nur Clock und 
Data, noch nicht einmal Ausgangs-Register wie in der '595, oder 
-Latches, wären erforderlich. Ein dafür in Frage kommendes IC kann ich 
aber auf meinen Displays nicht entdecken. Es müsste sich schon verdammt 
gut verstecken.

Wie das seriell genau geht, weiß ich noch nicht. Vielleicht finde ich 
das später mit Versuchen heraus, vielleicht auf einem anderen Weg. Zum 
Beispiel, wenn mir jemand den Code, den offensichtlich Henner Zeller, 
der hier schon öfter verlinkt wurde, für einen Raspi geschrieben hat: 
https://github.com/hzeller/rpi-rgb-led-matrix, Stichwort "led-row-addr". 
Es ist nicht meine Welt, mich dort selber zu vertiefen. C kann ich 
bestenfalls rudimentär. (Ich fürchte, das gibt wieder böse Kritik... die 
muss ich dann ignorieren:-)

DZDZ

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.