Forum: Mikrocontroller und Digitale Elektronik RGB 8x8 LED Matrix 100HZ 8Bit PWM


von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

hier wie versprochen erste Bilder meines TESTAUFBAUS.

Ich hatte das Ziel eine RGB Matrix aufzubauen, mit einer Farbtiefe von 
8Bit pro Farbe und einer Bildwiederholfrequenz von 100HZ

Hier sind erste Bilder meines Testaufbaus.

Zur Auswahl stehen 3 Möglichkeiten:

1)mit AVR (30HZ absolutes Maximum)
2)mit Propeller
3)mit fpga (auch schon hier im forum, von falk)
Beitrag "LED-Matrix, 9x9 RGB, Voll dimmbar"

Momentan mache ich den Weißabgleich.
Zum einsatz kommt ein ATmega162 mit 16MHZ Taktung.

Gruß,
Dennis

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

hier wird eine Zeile mal direkt angesprochen um die farbmischungen zu 
testen...

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

hier findet gerade der Weißabgleich statt, die widerstände müssen noch 
angepasst werden.

Die Matrix wird hier mit einem ATmega162 betrieben, und erzeugt bereits 
ein Bild mit einer Widerholfrequenz von 30HZ.

Die jeweilige Farbe wurde auf 100% über alle Pixel gestellt.

Die Tage gibts noch Bilder von Farbübergängen oder/und unterschiedlichen 
Farbrampen.

Dennis

von Peter D. (peda)


Lesenswert?

Schönes Beispiel.

Warum also mit schwer lötbaren Pinmonster-FPGAs, wenns ein AVR auch tut.

Hat natürlich den "Nachteil", daß Dein AVR die LEDs sofort ansteuern 
kann und nicht erst 5s lang booten muß :-)


Peter

von Tobias (Gast)


Lesenswert?

Hey, sieht sehr hübsch aus. Die LED-Matrix sieht wie ein fertiges Modul 
aus. Wo hast du das denn her, und wie teuer war es? Was für ein 
Multiplexing verwendest du, und mit welchem Strom fährst du die Dioden?
30Hz ist wahrscheinlich noch nicht so der Hit. Wie wäre es mit 
verteilen, z.B. auf 4 mega8?

von Dennis (Gast)


Lesenswert?

...naja das "Pinmonster" hat eine 13 bit linearisierte kennline 
integriert.

zumal der Controller bis unter die decke ausgelastet ist, und "nur" 30HZ 
schafft, da gilt es jetzt noch die daten hinein zu bekommen "spi" oder 
was auch immer.

dennis

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

@Tobias:
>>Hey, sieht sehr hübsch aus. Die LED-Matrix sieht wie ein fertiges Modul
>>aus. Wo hast du das denn her, und wie teuer war es?

Beitrag "rgb matrix led modul -> quelle"

http://www.sparkfun.com/commerce/product_info.php?products_id=760#

rund 30€ incl, versand (modul22€)

>>Was für ein Multiplexing verwendest du,

Zeilendecoder:4051 (hate ich gerade rumfliegen)

>>und mit welchem Strom fährst du die Dioden?

stell ich gerade ein...(weißabgleich) ist später also unterschiedlich, 
je nach LEDGrundfarbe (RGB)...

>>30Hz ist wahrscheinlich noch nicht so der Hit. Wie wäre es mit
verteilen, z.B. auf 4 mega8?

es existieren ein paar ansätze, der gehört auch dazu...
letztenlich sollte es auf eine "backplane" passen, also treiber und 
controller, das wäre auch mit dem fpga möglich mit einer doppelseitigen 
platine...

ist letztendlich auch eine kosten-platz-rechnung.

-propeller kosten +-15e +22modul +platine +kleinkram (nur im dill geh.)
-avrs  (4)        +-10  +22modul +platine +kleinkram etwas mehr platz
-fpga  (1)        +-11e +22modul +platine +kleinkram etwas mehr platz

da kommt schon was zusammen...aber man darf ja auch nicht vergessen, es 
sind RGB Matrix displays. Zumal ich vorerst nur Interesse an der 
machbarkeit habe.

Letztendlich wäre es ganz schön wenn man bis zu 16 an einem datenstrang 
zusammenfassen könnte usw...soweit bin ich aber noch nicht..

dennis

von Michael P. (desilva)


Angehängte Dateien:

Lesenswert?

Tja, dann wäre doch Variante 2 ("Propeller") ein wirklich guter Gedanke 
:-) Hier ein - allerdings monochromes - Beispiel. Es wird hier KEINERLEI 
externe Hardware verwendet, weil ein Propellr Ausgang 40 mA liefern 
kann, was für einen 8-fach Multiplex ausreicht. Für 3x8x8 Dioden sieht 
die Strombilanz aber "düsterer" aus.

Der Propeller wird zu etwa 1% ausgelastet.
Übrigens nicht mein Design, sondern "Made by Clemens"

von Falk B. (falk)


Lesenswert?

@ Dennis (Gast)

>Autor: Peter Dannegger (peda)

>Warum also mit schwer lötbaren Pinmonster-FPGAs, wenns ein AVR auch tut.

Eben weil es der AVR NICHT tut. Und wenn Du keine Ahnung zum Löten 
hast ist das dein Problem. Mach mal nen VHS-Kurs. :-)

>Hat natürlich den "Nachteil", daß Dein AVR die LEDs sofort ansteuern
>kann und nicht erst 5s lang booten muß :-)

Stimmt, dafür flimmert die Matrix dann mit lausigen 30 Hz für immer und 
ewig. Schöne Grüsse an Fielmann. Und viel Spass beim Datennachladen, was 
ja laut Aussage des OP nicht geht, weil der AVR zu 100% dicht ist.

MfG
Falk

P.S. Die Überschrift des Threads ist damit auch eine glatte Lüge. Es 
sind 30 Hz, nicht 100Hz.

von Falk B. (falk)


Lesenswert?

@ Michael P. (desilva)

>externe Hardware verwendet, weil ein Propellr Ausgang 40 mA liefern
>kann, was für einen 8-fach Multiplex ausreicht. Für 3x8x8 Dioden sieht

Mach 5mA effektiv. geht nur mit Low Current LEDs.

>Der Propeller wird zu etwa 1% ausgelastet.

Kunststück. Eine 8x8 Matrix Monochrom ohne Dimmung steuert jeder 1 MHz 
AVR an und langweilt sich dabei.

MFG
Falk

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

...so Leute, ich ziehe mich zurück, bevor das hier ausartet wie so oft.

Im Anhang befindet sich noch ein Blockschaltbild und ein paar 
Messergebnisse.

Ich wollte mich hier nur zurückmelden, und war gespannt auf eure 
Beiträge.

Schließlich sind LED Matrix-Schaltungen hier schon lang kein Geheimnis 
mehr.

Mich interessierte hauptsächlich eine Machbarkeitsprüfung, und varianten 
die zu einer realen Lösung führen, wie die von Falk.

Ich hätte hiermit allerdings keine 30Hz erwartet :-).

100Hz RGB mit 8Bit Farbtiefe sind mit einem ATmega162 nicht möglich, 
aber 30Hz. Das mag für einige reichen.

Gruß,
Dennis

von Falk B. (falk)


Lesenswert?

@ Dennis (Gast)

>100Hz RGB mit 8Bit Farbtiefe sind mit einem ATmega162 nicht möglich,

Doch, mit einem cleveren Ansatz zur Soft-PWM. Sollte sogar in C 
laufen ;-)

>aber 30Hz. Das mag für einige reichen.

Für Blinde?

SCNR
Falk

von Dennis (Gast)


Lesenswert?

@Falk,

wo ist eigentlich die in deiner Threadüberschrift angekündigte 
LED-Matrix!?

mit c wird das nichts.

d.

von Falk B. (falk)


Lesenswert?

@ Dennis (Gast)

>wo ist eigentlich die in deiner Threadüberschrift angekündigte
>LED-Matrix!?

Festina lente. Ende der Woche gibt es vielleicht ein paar Bilder.

>mit c wird das nichts.

Aber sicher min Jung. Lies mal den Artikel und rechne mal nach.

MfG
Falk

von Peter X. (vielfrass)


Angehängte Dateien:

Lesenswert?

Habe mir die Problemstellung mal durch den Kopf gehen lassen.

Wie würde ich es den mit einem 8051 Derivat machen?

Hm, denk, grübel, überleg, rechne, heureka:

Ein schneller 8051 muss her z.B. DS89C420 mit 33 oder 40 MHz.
Oder etwas hübsches von SILABS (früher Cygnal)

Die Kernroutine ist die PWM-Erzeugung.
Ich muss also 24 verschiedene PWM-Signale gleichzeitig machen.
Hier kommt mir der Befehlssatz des 8051 entgegen:

    CJNE   A,Adresse,$+3

d.h. ACC und Speicherbyte werden verglichen, Carryflag gesetzt wenn ACC 
kleiner Speicherbyte ist.

    MOV    P3.2,C

d.h. der Inhalt wird an den Port-Pin P3.2 übertragen.

Diese beiden Befehle müssten jetzt hintereinander geschrieben werden für 
Rot 0..7, Grün 0..7 und Blau 0..7
Diese Schleife müsste dann 256 mal durchlaufen werden.
Danach die nächste von 8 Spalten.

Da ich mit AVR wenig Erfahrung habe würde mich mal interressieren wie 
man es dort programmiert.

von Falk B. (falk)


Lesenswert?

@  Peter X. (vielfrass)

>Da ich mit AVR wenig Erfahrung habe würde mich mal interressieren wie
>man es dort programmiert.

Im Prinzip ähnlich. Das ist aber die Brute Force Methode. Clevere 
Soft-PWM gibts im Artikel. Sogar in C ;-)

MFg
Falk

von Michael P. (desilva)


Lesenswert?

Falk Brunner wrote:
> Mach 5mA effektiv. geht nur mit Low Current LEDs.
Das ist falsch: "Superhelle" LEDS für 10 Cents leuchten bei 5mA 
bedeutend heller als Standard-LEDs mit 20 mA

>>Der Propeller wird zu etwa 1% ausgelastet.
> Kunststück. Eine 8x8 Matrix Monochrom ohne Dimmung steuert jeder 1 MHz
> AVR an und langweilt sich dabei.
Das mag sein oder auch nicht. Das Propellerprogramm dimmt während des 
Multiplexens in natürlicher Weise; der zusätzliche Aufwand für eine 
"erweiterte" Dimmung is minimal und würde zu etwas 2% Auslastung führen
RGB unterscheidet sich von Monochrom durch den etwa 3 fach höheren 
Aufwand. Wir sind jetzt bei 6%.

Ich hätte gedacht, dass das jeder selbst ausrechnen kann... Na,ja...

von Michael P. (desilva)


Lesenswert?

Peter X. wrote:
> Da ich mit AVR wenig Erfahrung habe würde mich mal interessieren wie
> man es dort programmiert.
Ich kann Dir leider nur sagen, wie man das mit dem Propeller 
programmiert :-)

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.