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


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


Lesenswert?

Hallo zusammen,

ich liebäugele mit einem Projekt (keine Serienproduktion), für dass eine 
LED-Matrix 64 x 32 eine angenehm einfache und preiswerte (oder nur 
billige?) Lösung als Display wäre. Diese hier: 
https://de.aliexpress.com/item/1005001863048422.html ist noch nicht 
einmal die billigste. Ich könnte das auch mit vielen einzelnen 
LED-Matrix-Anzeigen und '595 + Zeilentreiber machen - was für ein 
Aufwand, selbst wenn es nur monochrom wäre.

Nun finde ich aber nur tolle Bilder vom Display, oder wie es in der 
Firma des Herstellers aussieht, aber wie man so ein Display ansteuert, 
scheint Allgemeinwissen zu sei - nicht der Rede Wert. Datenblätter???

In einem anderen Angebot fand ich einen Hinweis auf eine Treiber-Board, 
in noch einem anderen auf VGA-, JPEG- etc. Kompatibilität (ohne Hinweis 
auf ein Treibermodul!)

So ein Treibermodul möchte ich vermeiden. Es sollte direkt an einen µC 
oder, wenn es zu komplex wird, an ein FPGA angeschlossen werden. Es geht 
auch nicht um die flüssige Wiedergabe von Video, sondern um eine relativ 
statische Ausgabe z. B. von Grafiken.

Also die Frage(n): Kennt jemand diese Dinger und weiß, wie sie 
angesteuert werden? Gibt's wohl möglich Datenblätter?

DZDZ

von Harry L. (mysth)


Lesenswert?

Diese Displays bestehen aus langen Schieberegistern für RGB an denen die 
LEDs hängen, und die Zeilen werden zusätzlich gemultiplext.

Die gibts mit 1:8, 1:16 und 1:32 Mux.
Die 1:8 sind brutal hell und eher was für Draussen.

https://bikerglen.com/projects/lighting/led-panel-1up/

: Bearbeitet durch User
von MWS (Gast)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> scheint Allgemeinwissen zu sei - nicht der Rede Wert. Datenblätter???

Das liegt daran, dass allgemein auch Treiberkarten für wenig Geld im 
System angeboten werden und niemand (i.d.R.) der Anwender das 
Selberbauen anfängt.

Dabei die Zeilen gemultiplext und zwar, wenn ich richtig erinnere, 2 
Zeilen pro Modul auf einmal, d.i. 1/16 Scan. Das Modul ist quasi ein 
Doppelmodul aus 2 identischen quadratischen Tiles. Im 2ten Tile sind die 
gemultiplexten Zeilen versetzt, damit möglichst wenig Flimmern entsteht.

Ein uC muss einen Bildspeicher bereitstellen und der ist fleißig damit 
beschäftigt, die Zeilen schnell genug rauszuhauen, damit nichts 
flimmert.

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


Lesenswert?

Zunächst schon mal vielen Dank, jetzt bin ich schon erheblich weiter. 
Mein Ziel: Datenerfassung bzw. -generierung, Aufarbeitung als Grafik und 
Ausgabe an das Display mit nur einem µC, ist erreichbar, wenngleich man 
auch ein bisschen tricksen muss.

32 x 32 Pixel x 1 Bit pro Farbe = 3072 Bit bzw. 384 Byte pro Tile. Bei 
100 Hz Bildfrequenz ergäbe das ~ 300 kHz Taktrate auf der SPI.

Für 2 Tiles wäre allerdings eine Dual-SPI erforderlich, für 4 eine 
Quad-SPI.

(M)ein MSP430 hat keine Dual- oder gar Quad-SPI. Also in Software: Mit 
Tricks komme ich auf 20 Clocks pro Doppel-Bit, also ca. 800 kHz 
Taktrate. (Quad-SPI in Software: 30 Clocks, ~ 500 kHz). Der µC wäre > 
60% ausgelastet - wenn ich mich nicht geirrt habe.

Allerdings müsste eine Hardware-Dual-SPI machbar sein, wenn eine SPI im 
Master-, und die andere im Slave-Mode läuft. (Aber das mache ich 
natürlich nicht, denn das wäre heutzutage ja rassistisch...)

MSPs mit ausreichend RAM und 2 SPIs gibt's. 2 oder vielleicht sogar 4 
Bit pro Farbe könnten mit der Idee der Dual-SPI evtl. möglich sein.

Ich tendiere zu einem Versuch mit 
https://de.aliexpress.com/item/32757647402.html, 64 x 64, u. A., weil 
dort auf der Leiterplatte anscheinend die Signale aufgedruckt sind. Da 
müssten es ja 5 Adressbits sein, nicht nur 4, wie in Harrys Link angeben 
ist. Aaaber: Da steht auch "14 bits pro Farbe" - was soll das? Entweder 
jedes Pixel braucht 14 Bit (5-5-4 Bit) oder das Treibermodul muss 
2^5-mal pro 10 ms Das Bild schreiben können? Hmmm - 10 MHz - durchaus 
realistisch. Hauptsache, ich muss nicht 14 Bit pro Pixel ausgeben.

PS, ich schreibe den ganzen Quatsch hier, weil es mich zwingt, genauer 
nachzudenken und abzuschätzen, was möglich ist.

von Harry L. (mysth)


Lesenswert?

Du musst die 3 SRs (RGB) gleichzeitig befüllen.
Mit SPI hat das eher wenig zu tun.

Ich hab dazu den FSMC in einem STM32 genutzt, aber das ist auch nur eine 
Möglichkeit.

von Harry L. (mysth)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Ich tendiere zu einem Versuch mit
> https://de.aliexpress.com/item/32757647402.html, 64 x 64, u. A., weil
> dort auf der Leiterplatte anscheinend die Signale aufgedruckt sind. Da
> müssten es ja 5 Adressbits sein, nicht nur 4, wie in Harrys Link angeben
> ist.
Die 64x64 Displays sind eigentlich 2 x 64x32 Panels.
Die RGB-Leitungen gibt es 2mal und man muß 6 SRs füttern.

Je nach Multiplex-Ratio gibt es zw. 3 und 5 Adressbits zur 
Zeilen-Adressierung.

Der Zahn der Zeit (🦷⏳) schrieb:
> Da steht auch "14 bits pro Farbe" - was soll das?

Das ist Marketing-Blabla.

Die Displays selbst haben keine Helligkeitsstufen.
Erst durch geeignete Ansteuerung (PWM) enstehen untersch. Helligkeiten.

von MWS (Gast)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> 32 x 32 Pixel x 1 Bit pro Farbe = 3072 Bit bzw. 384 Byte pro Tile. Bei
> 100 Hz Bildfrequenz ergäbe das ~ 300 kHz Taktrate auf der SPI.

4 Stück davon
https://www.freetronics.com.au/collections/display/products/dmd-dot-matrix-display-32x16-green
sind problemlos mit einem ATM328 zu betreiben.

Allerdings sind das nur 2048 Bit. Wenn ich mich recht erinnere ging das 
mit Soft-SPI per ISR bei 1/16 Scan, also immer eine Zeile/Tile an. Per 
ISR-Aufruf wurden immer 16 Leds  2 Tiles  4 Panels = 128 Bits so 
schnell wie möglich raus geschickt. Müsste es im Code nachsehen.

Im Link ist eine Quelle auf Github für die einfachen Displays zu finden, 
das Prinzip bleibt jedoch gleich, ob das nun 32x16x1 oder 64x32x3 ist, 
bei RGB gehen die parallel raus.

So
https://de.aliexpress.com/item/32223301206.html?spm=a2g0x.12010612.8148356.17.4d0b7198hvw38V
sieht eine professionelle Karte aus, wie erkennbar werkelt da ein 
Spartan drauf, was auch klar wird, da diese Karten Vollfarben 
darstellen.

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


Lesenswert?

Ich wollte gerade widersprechen - ja, jetzt sehe ich es ein. Getrennte 
Datenleitungen für R, G und B, dass hatte ich vor zwar gesehen, aber 
irgendwie ignoriert. Jede 32 x 32 Kachel hat 2 x 3 Datenbits, R, G und B 
obere und untere Hälfte. Bzw. bei 1:32-Multiplex nur 3 Datenbits, aber 5 
Adressbits. Ser. Clock und Latch können gemeinsam für das ganze Display 
sein sein. Gut - das macht die Software-SPI noch schneller - nur noch 
ein Clock für viele Datenbits. SPI: Es ist halt eine Multi-Bit-SPI mit 
bis zu 24 Datenbit bei 64 x 64 Pixeln und 1:16-mux. Wie bei 24 parallel 
arbeitenden '595. Von anderen Prozessoren kenne ich auch ähnliche 
parallele Schnittstellen, die die gleichen Signale (Clock und Daten) per 
Hardware und DMA liefern können. So etwas hätte ich aber nicht. Wie auch 
immer, 64x64, bei 1:32 mit 12 Datenbits, wird offensichtlich mit einem 
MSP430 mit reichlich Reserve in Software zu schaffen sein.

Harry L. schrieb:
> Die 64x64 Displays sind eigentlich 2 x 64x32 Panels.
> Die RGB-Leitungen gibt es 2mal und man muß 6 SRs füttern.
Sind die 64x32 nicht eigentlich auch 2 x 32x32 (es gibt auch zwei 
IDC-Verbinder) und die 32x32 2 x 32x16 (mit nur einem gemeinsamen 
IDC-Anschluss)? Oder, wenn 1:32 gemultiplext, tatsächlich 1 x 32x32, mit 
5 Adressbits aber nur 3 Datenbits?
>
> Je nach Multiplex-Ratio gibt es zw. 3 und 5 Adressbits zur
> Zeilen-Adressierung.
Klar.

> Der Zahn der Zeit (🦷⏳) schrieb:
>> Da steht auch "14 bits pro Farbe" - was soll das?
>
> Das ist Marketing-Blabla.
>
> Die Displays selbst haben keine Helligkeitsstufen.
> Erst durch geeignete Ansteuerung (PWM) enstehen untersch. Helligkeiten.
So habe ich das auch verstanden.

Ich hoffe, die Adress- und Datenbits sind aufgedruckt, oder auf einem 
mitgelieferten Dokument erkennbar.

Danke euch Beiden noch mal!

von Harry L. (mysth)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Sind die 64x32 nicht eigentlich auch 2 x 32x32 (es gibt auch zwei
> IDC-Verbinder)

Nein, an dem 2. Stecker wird das nä. Display angeschlossen.Das SR wird 
dann entsprechend länger.
Die 64x32-Typen haben nur einen Satz RGB-Pins.

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

Datenblätter gibt es direkt nicht, die Ansteuerung selbst ist recht 
einfach, allerdings variiert das Timing der Ansteuerung durchuas, 
jenachdem welche Treiber ICs verbaut sind. Die Datenblätter zu diesen 
sind im Netz zwar zu finden, sind aber recht unvollständig.

Ein brauchbares Bild habe ich auf die Schnelle jetzt nicht zustande 
gebracht:

Matrix 64x64 (diese HUB75-Teile) und ein ESP32 D1 mini.
Unten 64x32 als Kaminfeuereffekt mit Wind usw., Anregung und Grundlage 
war  mal aus dem Arduino-Forum.
Darüber Morph-Clock und Datum, oben Laufschrift für Wetter, Meldungen 
usw.
Dazu Webserver für die Config, MQTT-Client , Anzeige von CD-Cover seines 
Mediaplayers (nutze ich hier nicht, ist mehr Spaß am Machbaren bei ihm 
gewesen, 64x64 ist ja keine wirklich sinnvolle Auflösung dafür).
Bedingung war, daß alles ohne Aussetzer miteinander kombiert werden 
konnte, das Feuer kann ja z.B. mit 50fps aktualisiert werden und da darf 
keine LED falsch bei flackern, auch nicht wenn parallel die Uhr 
aktualisiert oder oben die Laufschrift durchläuft. MQTT Events dürfen 
genausowenig stören wie ein WLAN-reconnect usw.
Es ist ihm gelungen, läuft hier seit Monaten ohne einen Aussetzer.

Compiliert mit der ArduinoIDE, allerdings auch viele direkte 
IDF-Funktionen genutzt.
Ich kann den Sourcecode durchaus als Archiv hier mal anhängern, ABER: 
ich kann Fragen dazu nur sehr begrenzt beantworten und mein Bekannten 
werde ich kaum überreden, hier im Forum aufzutauchen...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von MWS (Gast)


Lesenswert?

Hier siehst Du Belegungen:

https://wiki.dfrobot.com/32x32_RGB_LED_Matrix_-_4mm_pitch_SKU_DFR0472
https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/new-wiring

Der Zahn der Zeit (🦷⏳) schrieb:
> Ich hoffe, die Adress- und Datenbits sind aufgedruckt, oder auf einem
> mitgelieferten Dokument erkennbar.

Die Hoffnung stirbt zuletzt.
Vom freundlichen Chinesen bestellt, kannst Du Dich weder auf das Eine 
noch das Andere verlassen. Das "Andere" eigentlich gar nicht, 
Datenblatt? LOL
Und das "Eine", der Aufdruck nur mit Glück.

Die verkaufen nicht primär an Kunden, die an einem Tile herumbasteln 
wollen, sondern an Kunden, welche mit den Tiles grössere Led-Wände 
bauen, bei denen wird nur zusammengesteckt und konfiguriert. Was Du 
daher in der Regel bekommen kannst ist die Konfigurationsdatei für die 
Konfiguration der FPGA-Treiberkarten auf den Tile-typ. Alles andere 
kannst Du vergessen.

Wenn Du mit brauchbarer Doku arbeiten willst, dann kauf das zweimal:
https://www.adafruit.com/product/607

Deutlich teurer als vom Chinesen, dafür aber dokumentiert und mit 
weniger Frust in Betrieb zu nehmen.

von Michael U. (amiga)


Lesenswert?

Hallo,

die Belegung ist eigentlich einheitlich, R0/G0/G1 und R1/G1/B1 für die 
Farben (Daten der Schiebergister). A/B/C/D/E Latchsignale für die 
Zeilen, CLK der Takt für die Schieberegister, LATCH Übernahme für das 
Zeilenlatch und OE Freigabe der Ausgangstreiber.
Je nach Modulgröße sind R1/G1/B1 nicht genutzt und je nach Zeilen-Mux 
(8,16,32) beliben D und E ungenutzt.
Eine 64x64 Matrix kommt hier mit einem Steckernetzteil 5V/4A problemlos 
zurecht.

P2,5 (2,5mm Abstand LED zu LED) ist selten zu finden, P3 für Innen noch 
brauchbar, darüber wäre mir schon zu grob aufgelöst.

Bei Amazon findet man oft welche zu günstigen Preis mit Defekten, daß 
muß man mit seinem Gewissen ausmachen. Da fehlt dann meist in einer Ecke 
eine LED (Transportschäden?). Ich habe da z.B. 64x64 als 2er Pack für 
unter 50€ gekauft und kann mit diesen Fehlern gut leben.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von MWS (Gast)


Lesenswert?

Michael U. schrieb:
> P2,5 (2,5mm Abstand LED zu LED) ist selten zu finden,

Kann ich nicht bestätigen, die Suche nach "p2.5 led" bringt mir 716 
Treffer auf Aliexpress, wobei nicht alle "Treffer" wirklich treffen, 
aber 3-4/5 davon sicher. Von "selten" kann nicht die Rede sein.

Michael U. schrieb:
> die Belegung ist eigentlich einheitlich, R0/G0/G1 und R1/G1/B1 für die
> Farben (Daten der Schiebergister).

Dass die Nomenklatur R0/R1... und der Latchadressen immer ähnlich sind, 
liegt an der zugrunde liegenden Technik, den Schieberegistern mit 
Multiplex. Dass die Belegung immer gleich ist, d.h. die immer auf der 
selben Pinnummer liegen, darauf würde ich mich nicht verlassen.

von Michael U. (amiga)


Lesenswert?

Hallo,

MWS schrieb:
> Dass die Nomenklatur R0/R1... und der Latchadressen immer ähnlich sind,
> liegt an der zugrunde liegenden Technik, den Schieberegistern mit
> Multiplex. Dass die Belegung immer gleich ist, d.h. die immer auf der
> selben Pinnummer liegen, darauf würde ich mich nicht verlassen.

Naja, ich kann nur für die ca. 8 verschiedenen Displays (64x64 und 
32x32) sprechen, die sind da alle identisch. Abweichend sind Anordnung 
und Typ der ICs, Lage des 4pol. Stromanschlusses.
Die Datenverbinder waren bisher immer einheitlich belegt.

Gruß aus Berlin
Michael

von MWS (Gast)


Lesenswert?

Michael U. schrieb:
> Bei Amazon findet man oft welche zu günstigen Preis mit Defekten, daß
> muß man mit seinem Gewissen ausmachen. Da fehlt dann meist in einer Ecke
> eine LED (Transportschäden?). Ich habe da z.B. 64x64 als 2er Pack für
> unter 50€ gekauft und kann mit diesen Fehlern gut leben.

Bei Ali USD 35,50, nach Paypal ~EUR 32 + Zoll/EUSt

https://de.aliexpress.com/item/1005001915725309.html?spm=a2g0o.productlist.0.0.cd076a8cpZE0To&algo_pvid=c54207c6-8476-47f8-9c28-b4c4bda9d761&algo_expid=c54207c6-8476-47f8-9c28-b4c4bda9d761-8&btsid=2100bb4716199706007115436ed1e0&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

Warum kauft man Ausschuss, wenn man für den gleichen Preis Neuware 
erwerben kann?

von MWS (Gast)


Lesenswert?

Michael U. schrieb:
> Die Datenverbinder waren bisher immer einheitlich belegt.

Einen Standard gibt's in China allein aus praktischen Gründen.
Das es zumindest nicht immer RGB lauten muss, sondern auch GRB oder BRG 
sein kann, kann ich aus eigener Erfahrung mit den Modulen und den 
Treiberkonfigurationen behaupten.

von Michael U. (amiga)


Lesenswert?

Hallo,

MWS schrieb:
> Warum kauft man Ausschuss, wenn man für den gleichen Preis Neuware
> erwerben kann?

weil es schon über 1 Jahr her ist?
Das mit der Farbfolge kann ich Dir bestätigen, zumindest mein Exot 64x32 
weicht ab, da ist aber auch das Timing exotisch...

Habe mir zum Spaß jetzt mal die bestellt:
https://de.aliexpress.com/item/33027153789.html?spm=a2g0o.search0302.0.0.10e8436ek95ceg&algo_pvid=df16e065-4f63-475e-a657-218bbbb41c6c&algo_expid=df16e065-4f63-475e-a657-218bbbb41c6c-7&btsid=2100bb4916199713988768171ec07a&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

Gruß aus Berlin
Michael

: Bearbeitet durch User
von MWS (Gast)


Lesenswert?

Michael U. schrieb:
> weil es schon über 1 Jahr her ist?

Das ging nirgendwo hervor.

Diesen Store kann ich empfehlen:

https://de.aliexpress.com/store/314096?spm=a2g0o.detail.1000007.1.7047d898DEjfjM

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


Lesenswert?

Harry L. schrieb:
> Nein, an dem 2. Stecker wird das nä. Display angeschlossen.Das SR wird
> dann entsprechend länger.
Ok, das hatte ich dann nach meinem letzten Post auch entdeckt. Das ist 
ja auch naheliegend.

> Die 64x32-Typen haben nur einen Satz RGB-Pins.
Hier ist ein 64x64 (P2, also 2 mm Pitch - das ist mir sympathisch), das 
von der Ansteuerung her offensichtlich wie 4 Stück 32x32 funktioniert: 
https://de.aliexpress.com/item/4000162556267.html

Was mit dem Timing bei der Ansteuerung möglich ist, muss ich wohl 
experimentell herausfinden. Mit viel Glück kann ich mit jedem 
8-Bit-Transfer zum Port 6 Datenbits und ein Clock-Bit ausgeben. Das 
würde bei mir doppelt so schnell gehen, als wenn ich Clock-Pulse in 
Software separat erzeugen muss. Im Zweifelsfall wird es aber zumindest 
mit einer ganz einfachen Verzögerung des Clock-Bits gehen, also ein 
R-C-Schmitt-Trigger.

MWS schrieb:
> Die Hoffnung stirbt zuletzt.
Das fürchte ich freilich auch.

Danke auch Michael, aber ich möchte - außer dem Display - weder nicht 
selbst gemachte Hard- oder Software einsetzen, noch so komplexe Lösungen 
anstreben, wie du sie hast.

Bei 1:32 wird der Gnd-Pin bei RGB2 als "E", also als das 5. Adressbit, 
genutzt.

Michael U. schrieb:
> Habe mir zum Spaß jetzt mal die bestellt:
> https://de.aliexpress.com/item/33027153789.html
Das hat auch nur einen Ein- und Ausgang.

Tipp: Bei einem Link alles hinter dem Fragezeichen weglassen. Das 
scheint alles nur für Tracking oder so ähnlich gedacht zu sein. Nicht 
nur bei Ali.

MWS schrieb:
> Diesen Store kann ich empfehlen:
> https://de.aliexpress.com/store/314096
Tipp sehr willkommen!

Gruß aus der Nähe von Hannover
DZDZ

von Mikro 7. (mikro77)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Nun finde ich aber nur tolle Bilder vom Display, oder wie es in der
> Firma des Herstellers aussieht, aber wie man so ein Display ansteuert,
> scheint Allgemeinwissen zu sei - nicht der Rede Wert. Datenblätter???

Wenn's nicht unbedingt ein uC sein muss: Als ich mich mit dem Raspberry 
Pi beschäftigt hatte, bin ich über dieses nette Projekt hier gestolpert.

https://github.com/hzeller/rpi-rgb-led-matrix

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


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Mit viel Glück kann ich mit jedem
> 8-Bit-Transfer zum Port 6 Datenbits und ein Clock-Bit ausgeben
Quatsch...

von Harry L. (mysth)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Der Zahn der Zeit (🦷⏳) schrieb:
>> Mit viel Glück kann ich mit jedem
>> 8-Bit-Transfer zum Port 6 Datenbits und ein Clock-Bit ausgeben
> Quatsch...

Kein Quatsch!
Genau so hab ich das mit dem FSMC gemacht.
Der NE-Pin dient dabei als Clk, und ich kann wunderbar schnell die Daten 
via DMA in das Display schaufeln.

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


Lesenswert?

Harry L. schrieb:
> Genau so hab ich das mit dem FSMC gemacht.
Das wird bei dir in Hardware möglich gewesen sein, aber die MSPs kennen 
solche Schnittstellen nicht. Also muss ich in Software ein 6-Bit-Wort 
zum Port transportieren, dabei wird ein 7. Bit (Clock) gelöscht, und 
anschließend das 7. Bit setzen. Das sind je 5 Cycles, macht 1,6 MHz 
Taktrate, wenn es linear programmiert ist.

2 Pixel pro Takt -> 1,28 ms + ein bisschen Overhead für ein 64x64 
Pixel-Bild. Reicht doch vollkommen, sogar z. B. für 4 Helligkeitsstufen 
(2 Bit) pro Pixel.

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.