Forum: Mikrocontroller und Digitale Elektronik 8x8 LED RGB Matrix SPI Problem


von Bjarne J. (homer3345)


Angehängte Dateien:

Lesenswert?

Hey Leute,

ich hoffe ihr könnt mir bei meinem kleinen Problem helfen. :)
Ich bin dabei einen einfachen 10€ Tisch zu einem Unikat umzubauen. Die 
Tischplatte soll vollständig aus einer 8x8 RGB Matrix bestehen.

Als Led Treiber vermwende ich 10x den WS2803 (der 11. ist in einigen 
Tagen auch da). Er lässt sich verhältnismäßig leicht ansteuern, im 
2-wire SPI Modus.
Nun mein Problem: Die Ansteuerung funktioniert ohne große Probleme, nur 
fangen die LEDs wie wild, in allen möglichen Farben, an zu flackern und 
zu blinken, sobald ich versuche mehrere über PWM anzusteuern. Ich habe 
das kurz gefilmt, damit ihr euch das besser vorstellen könnt.

http://youtu.be/NI3pYjG0Tnk

Was das kleine Programm tun soll:
1. Alle LEDs kurz aufleuchten lassen
2. rotes Quadrat in der Mitte
3. grüner Rahmen
4. Bei allen LEDs Schrittweise die Helligkeit erhöhen

Beim grünen Rahmen fängt das geflacker schon an und spätestens wenn ich 
alle LEDs versuche zu dimmen, geht es drunter und rüber..

Meine Vermutung:
Die SPI Leitungen sind einfach zu lang.
Laut Datenblatt sind 6m bei 2 Mhz möglich, wenn man einen 50 Ohm 
Widerstand verwendet.

"The transmit the data over long distance by cascading, the WS2803 
integrates push-pull output stage with strong driving capability which 
enables the data and clock can be transmitted up to 6 meters at 2MHz 
clock frequency.
To prevent the reflection, it is necessary to connect a 50Ω resistor at 
the data input or output port for impedance match."

Nur kann ich dem Datenblatt nicht wirklich entnehmen wie der Widerstand 
verwendet werden soll. Gegen GND? Gegen +5V? In die Leitung? Nach jedem 
Chip?

Ich hoffe ihr könnt mir da helfen :)

PS: Ich habe versucht auf dem Foto die Verkabelung zu skizzieren. Jede 
Zahl stellt einen WS2803 da und der gelbe Strich soll den Verlauf der 
Data und Clock Leitungen zeigen.

von holger (Gast)


Lesenswert?

>Meine Vermutung:
>Die SPI Leitungen sind einfach zu lang.

Meine Vermutung Kabel zu dünn oder Abblockkondensatoren
vergessen.

von Bjarne J. (homer3345)


Lesenswert?

> Meine Vermutung Kabel zu dünn oder Abblockkondensatoren
> vergessen.

Es ist mir zwar peinlich, aber daran lag es größtenteils..
Also Danke dafür :)

Jeder ws2803 hat einen 100nf Kondensator direkt an die VCC, GND Pins 
bekommen und die Spannungsversorgung hat mehrere parallel geschaltete 
1500µ Kondensatoren bekommen. So läuft das alles schon ganz gut, aber 
ganz weg ist das geblinke noch nicht.. Einige LEDs blinken immer noch 
Bunt auf.. Nicht mal annähernd so schlimm wie vorher, aber 2-5 pro 
Sekunde sind es immer noch.

Also wenn mir da jemand helfen könnte, wäre ich sehr dankbar :)

von Karl H. (kbuchegg)


Lesenswert?

Wie hast du denn verkabelt?

Bei Flachbandkabel mit jeweils mindestens einer GND Leitung zwischen den 
signalführenden Leitungen hatte ich noch nie Probleme. Und die waren bei 
Fullspeed-SPI immerhin in Summe gute 2 Meter lang und verbanden 8 
Platinen mit je einem 595 drauf (die natürlich alle ihre 100nF 
Blockkondensatoren gekriegt haben)

von Bjarne J. (homer3345)


Lesenswert?

> Wie hast du denn verkabelt?

Ich habe einfache Litze mit 0,14mm² Durchmesser genommen. In der Summe 
ist die Daten sowohl die Takt Leitung an der längsten Stelle wohl knapp 
3m lang.
Die 5V+ und GND Leitung führen von einer Verteilerplatine mit den 1500µf 
Kondensatoren einzeln an jeden WS2803, sind also alle höchstens 30-40cm 
lang.

: Bearbeitet durch User
von holger (Gast)


Lesenswert?

>Einige LEDs blinken immer noch Bunt auf.

An welcher Stelle?

>Ich habe einfache Litze mit 0,14mm² Durchmesser genommen.

Ganz schön wenig Querschnitt.
Wie viele LEDs hängen da dran? Vieleicht ist der
Verlust auf dem Kabel schon zu groß.

Bei meinem 6m LED Stripe kommen hinten, wenn ich alle
LEDs voll aufdrehe, nur noch 3,6V von vorne 5,2V an.
Das reicht gerade so für die hinteren blauen LEDs.

von Falk B. (falk)


Lesenswert?

@Bjarne J. (homer3345)

>Nur kann ich dem Datenblatt nicht wirklich entnehmen wie der Widerstand
>verwendet werden soll. Gegen GND? Gegen +5V? In die Leitung? Nach jedem
>Chip?

In Reihe zum jeweiligen Ausgang SDO und CKO, das ist eine 
Serienterminierung, siehe Wellenwiderstand.

von Bjarne J. (homer3345)


Lesenswert?

> An welcher Stelle?

Die LEDs blinken zufällig auf, sowohl die am ersten WS2803 als auch die 
am letzten..

>>Ich habe einfache Litze mit 0,14mm² Durchmesser genommen.
>
> Ganz schön wenig Querschnitt.
> Wie viele LEDs hängen da dran? Vieleicht ist der
> Verlust auf dem Kabel schon zu groß.
> Bei meinem 6m LED Stripe kommen hinten, wenn ich alle
> LEDs voll aufdrehe, nur noch 3,6V von vorne 5,2V an.
> Das reicht gerade so für die hinteren blauen LEDs.

Das war tatsächlich anfangs ein Problem, aber mittlerweile hat jeder 
Chip (6 LEDs) sein eigenes Kabel bekommen.

von Bjarne J. (homer3345)


Lesenswert?

So die Widerstände sind in der Leitung und plötzlich funktioniert alles, 
so wie es soll. 4Mhz funktionieren problemlos und auch 8Mhz kann man 
noch halbwegs gebrauchen.
Danke Leute :))

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.