Forum: Mikrocontroller und Digitale Elektronik Adapter von WS2812 => WS2011 Neopixel


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Kauftool, welches mit einen Pixelstripe mit einigen Pixeln 
(Typ WS2812 ODER SK6812 <- das weiß ich leider nicht genau) ausgibt.

Nun möchte ich aber einige Pixel Doppeln und das mit WS2811 (der Grund 
hierfür ist, dass man mit den Chips hier Leistungsstärkere LEDs haben 
kann <- in meinem Fall 30W).

Leider unterstützt das Tool die WS2811 LEDs nicht und da die 
Spezifikationen ähnlich sind, habe ich das Bereits getestet, bekomme 
aber nur "unschönes" Flimmern.

Nun die Frage, ob man (hoffentlich nicht zu hohen Aufwand) einen Adapter 
bauen kann, der die Signale "übersetzt"...
=> wichtig hierbei ist, dass keine all zu hohe Latenz entsteht, da die 
alten LEDs bestehen bleiben sollen und es nicht gut ausschaut, wenn beim 
Farbwechsel die 20W immer "nachziehen"

Hat jemand eine Idee für mich
> ist die Fragestellung soweit klar?, gerne nachfragen wenn ich etwas nicht genau 
beschrieben habe...

- Sven

von Chr. M. (snowfly)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe leider keine Idee für dich aber kannst du mir sagen
welchen ws2812 kompatiblen Treiber es für High Power Leds gibt?

Beitrag #5279909 wurde von einem Moderator gelöscht.
von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
nein, wenn ich dir das sagen könnte, würde ich Ihn nutzen...

ich nutze auch nur die WS2811 <- aber die arbeiten nicht mit der Basis 
(Software) von WS2812 :/

: Bearbeitet durch Moderator
von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
ich sehe in der Ansteuerung keinen Unterschied

wenn man also 100 normale ws2811 mit LEDs ansteuert dan einfach 100 
ws2811 parallel ohne LEDs hängen und nur den WS2811 bestücken mit LED 
Treiber und hi power LEDs

was flimmert denn?

falscher Treiber?
falsche Beschaltung?
falsche Speisung?
falsche Farben?

es kann natürlich eine Interferenz geben wenn hi power LED Treiber und 
PWM aus dem ws2811 nicht zusammenpassen

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> ich habe ein Kauftool, welches mit einen Pixelstripe mit einigen Pixeln
> (Typ WS2812 ODER SK6812 <- das weiß ich leider nicht genau) ausgibt.

Eigentlich sollte jede Software, die den WS2812 ansprechen kann, auf den 
WS2811 bedienen können. Wenn es sich aber um ein Tool für SK6812 
handelt, werden ganz andere Timings verwendet und mich wundert es dann 
nicht, dass Dein Test mit den WS2811 gar nicht funktioniert.

Jetzt mal Butter bei die Fische: Kann Dein "Kauftool" WS2812 bedienen 
oder nicht? Das muss doch in der Bedienungsanleitung stehen.

Um festzustellen, dass Dein "Kauftool" tatsächlich keine WS2812 
ansprechen kann, bedarf es nur des Kaufs eines kleinen Streifens für 
eine Handvoll Euro und eines Tests.

Wenn sich dann rausstellt, dass Dein "Kauftool" keine WS2812 (und damit 
auch keine WS2811) ansprechen kann, ist es schlicht für Dein Vorhaben 
ungeeignet.

Du bräuchtest dann auch einen "Adapter" von SK6812 nach WS2811, also was 
ganz anderes!

Also: Systematisch WS2812 und SK6812 mit dem "Kauftool" zu testen ist 
hier erstes Gebot. Vorher kannst Du noch nichtmals die Anforderungen 
formulieren.

: Bearbeitet durch Moderator
von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
@Frank M.

diese Aussage war für sehr Informativ und hilfreich.
> hier mal (um eine bessere Meinung bilden zu können das Tool 
https://www.ambivision.tv/)

Ja, ich habe beim Hersteller nachgefragt und er meinte wortwörtlich:
> None of our kits supports WS2811. Our products support only WS2812 and SK6812.

das heißt (nach deiner Aussage), der LED-Streifen den ich jetzt dran 
habe ist ein SK6812 !?!?

aber woher weiß das Tool, dass ich einen WS2812 dran habe <- MUSS ich 
das zwingender weise vorgeben, oder kann er das auch "erkennen"? <- weil 
Settings gibt es nicht sooo viele.
hier kann man das Tool mal sehen, mehr "Einstellungen" und schon 
garnicht "ich habe WS2812 oder SK6812"
> https://www.youtube.com/watch?v=rHad7jyy6VY

von Thomas E. (Firma: Thomas Eckmann Informationst.) (thomase)


Bewertung
0 lesenswert
nicht lesenswert
https://cdn-shop.adafruit.com/datasheets/WS2811.pdf
https://cdn-shop.adafruit.com/datasheets/WS2812.pdf
https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf

Frank M. schrieb:
> Eigentlich sollte jede Software, die den WS2812 ansprechen kann, auf den
> WS2811 bedienen können.

Wenn man die Timings in den DBs vergleicht, ist eher das Gegenteil zu 
erwarten. Insbesondere die T0-Zeiten weichen erheblich voneinander ab. 
Auch bei den anderen beiden weichen die Timings voneinander ab und eine 
Übereinstimmung ergibt sich nur, indem man mit den Toleranzen 
aufeinander zugeht.

Es ist bekannt, daß man die T0-Zeit auch verlängern kann. Aber nicht 
beliebig. Denn dabei läuft man wiederum Gefahr, in den Bereich des Reset 
zu geraten. Daß aus 50µs ganz schnell nur 5µs werden können, hatten wir 
ja erst kürzlich. Was natürlich, nicht bei allen der Fall ist. Aber wie 
kann man das auch erwarten?

Ich denke aber schon, daß man das irgendwie hinbekommen an. Allerdings 
nicht ohne die Möglichkeit, das Timing individuell anpassen zu können. 
Was bei einem Kauftool natürlich nicht der Fall ist.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> Ja, ich habe beim Hersteller nachgefragt und er meinte wortwörtlich:
>> None of our kits supports WS2811. Our products support only WS2812 and
>> SK6812.

Aha. SK6812 benutzt aber ein erheblich abweichendes Timing gegenüber 
WS2812. Das kann nur über eine Einstellung gehen.

> das heißt (nach deiner Aussage), der LED-Streifen den ich jetzt dran
> habe ist ein SK6812 !?!?

Glaube ich nicht. SK6812 sind ziemlich selten. Aber woher soll ich das 
wissen...

> aber woher weiß das Tool, dass ich einen WS2812 dran habe <- MUSS ich
> das zwingender weise vorgeben, oder kann er das auch "erkennen"? <- weil
> Settings gibt es nicht sooo viele.

Siehe oben. Es muss eine Einstellung geben, um WS2812 und SK6812 
unterscheiden zu können. Oder der Hersteller liefert vielleicht zwei 
Produktvarianten mit unterschiedlicher Firmware.

> hier kann man das Tool mal sehen, mehr "Einstellungen" und schon
> garnicht "ich habe WS2812 oder SK6812"

Thomas hat in seinem Beitrag oben die Datenblätter verlinkt. Schau mal 
rein :-)

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Thomas E. schrieb:
> Auch bei den anderen beiden weichen die Timings voneinander ab und eine
> Übereinstimmung ergibt sich nur, indem man mit den Toleranzen
> aufeinander zugeht.

Du hast recht, ich hatte das verwechselt mit WS2812 vs. WS2812B. Hier 
findet man innerhalb der Toleranzen gemeinsame Werte, zu den WS2811 aber 
nicht mehr.

Fassen wir mal die Daten zusammen:
1
     WS2811   WS2812   WS2812B
2
T0H   500ns    350ns    400ns
3
T1H  1200ns    700ns    800ns
4
T0L  2000ns    800ns    850ns
5
T1L  1300ns    600ns    450ns
6
RES  >50µs     >50µs    >50µs

Da alle Toleranzen mit 150ns angegeben sind, bekommt man mühelos Werte 
für die WS2812 und WS2812B, die für beide Varianten passen.

Die Werte für T1H und T1L liegen bei den WS2811-LEDs aber viel zu weit 
weg.

@TO: Du brauchst offenbar wirklich einen Adapter von WS2812 nach WS2811. 
Das Problem ist aber nicht nur die Timing-Umsetzung, sondern zusätzlich 
noch ein echtes Zeitproblem: Die Übertragung eines WS2811-Bits dauert in 
jedem Fall länger als die des WS2812-Bits.

Der "Adapter" muss also nicht nur die Zeiten anpassen, sondern auch noch 
einen ziemlich großen Zwischenspeicher zum Buffern der Daten haben. Die 
Größe hängt dabei von der Anzahl der LEDs ab und von den Pausen, die Dir 
das "Kauftool" als Verschnaufpause lässt, um Deinen Zwischenpuffer auch 
irgendwann leerzubekommen.

Wenn das "Kauftool" ohne jegliche Pause Daten raushämmert, wird Dein 
Adapter niemals fertig. Wenn Du Glück hast, kannst Du natürlich die 
RESET-Zeit dafür verwenden, wenn Du WS2811-Chips findest, die mit 
erheblich weniger als 50µs auskommen.

Insgesamt ist das also ein gewagtes Unterfangen.

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hier die Tabelle - vervollständigt um SK6812:
1
     WS2811   WS2812   WS2812B   SK6812
2
T0H   500ns    350ns    400ns     300ns
3
T1H  1200ns    700ns    800ns     600ns
4
T0L  2000ns    800ns    850ns     900ns
5
T1L  1300ns    600ns    450ns     600ns
6
RES  >50µs     >50µs    >50µs     >80µs

Die SK6812 liegen also doch noch im Toleranzrahmen, wenn man SK6812-RGB 
und nicht SK6812-RGBW (für welche die SK6812 eigentlich bekannt sind) 
benutzt.

Mit einer Pause von 80µs zwischen den Frames passt das dann.

@TO: Vermutlich verwendet Dein Kauftool eine Pause von mindestens 80µs, 
um kompatibel zu den SK6812 zu bleiben. Dann hast Du pro Frame für alle 
LEDs zusätzliche Luft von 80µs - 50µs = 30µs, um die überschüssigen 
Daten aufgrund der langsameren Übertragungsrate zu den WS2811 
zwischenzuspeichern.

Wieviele LEDs sollen denn in einer Kette zusammenhängen?

: Bearbeitet durch Moderator
von Thomas E. (Firma: Thomas Eckmann Informationst.) (thomase)


Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> Mit einer Pause von 80µs zwischen den Frames passt das dann.

Meinen SK6812-RGBW reichen auch 40µs. Damit passt das dann wieder ins 
Schema der WS.

Was alle nicht mögen, ist eine zu lange T0H-Zeit, die dann als T1H 
erkannt wird, obwohl die angegebene T1H noch gar nicht ereicht ist. Was 
den Schluss zulässt, daß alles, was länger als T0H ist, als T1H erkannt 
wird.

Die T0L dagegen kann man auch verlängern. Aber, wie schon oben 
geschrieben, können das übereifrige WS2812B als Reset erkennen. Den 
meisten von denen reichen schon 5µs als Reset-Zeit aus.

Wie auch schon gesagt, könnte man das alles heterogen hinbekommen. Nur 
dazu reicht es nicht, ein paar Parameter einstellen zu können, sondern 
dazu muß man im Quelltext des Steuercontrollers mit den NOPs spielen.

Zur Ausgangsfrage:

Sven schrieb:
> Nun die Frage, ob man (hoffentlich nicht zu hohen Aufwand) einen Adapter
> bauen kann, der die Signale "übersetzt"...

Das ist um ein vielfaches Aufwendiger, siehe Franks Beitrag dazu, als 
einen kompletten Steuerungscontroller zu programmieren. Das setzt 
natürlich voraus und das soll jetzt nicht arrogant rüberkommen, daß man 
das auch kann.


Noch etwas zur Verkabelung: Man darf sich nicht darauf verlassen, daß 
die Sechs-Quadrat-Masse der mehrfach eingespeisten Stromversorgung es 
schon richten wird. Es muß immer zur Datenleitung eine gleich lange 
Signalmasse mitgeführt werden. Das bewirkt zu 100% reproduzierbare 
Wunder. Insbesondere dann, wenn der Strang nicht durchgehend verlegt, 
sondern (mehrfach) unterbrochen wird.

: Bearbeitet durch User
von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
Dumm nur, wenn sich einige der LEDs nicht an ihr Datenblatt halten. Da 
sind teilweise Resetzeiten von 5 (FÜNF) Mikrosekunden einzuhalten!

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@ Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)

>Noch etwas zur Verkabelung: Man darf sich nicht darauf verlassen, daß
>die Sechs-Quadrat-Masse der mehrfach eingespeisten Stromversorgung es
>schon richten wird. Es muß immer zur Datenleitung eine gleich lange
>Signalmasse mitgeführt werden. Das bewirkt zu 100% reproduzierbare
>Wunder.

Beitrag "Re: Differnz-Signal für WS2812B"

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Falk B. schrieb:
> Dumm nur, wenn sich einige der LEDs nicht an ihr Datenblatt halten. Da
> sind teilweise Resetzeiten von 5 (FÜNF) Mikrosekunden einzuhalten!

Naja, das ist aber nur ein Problem, wenn Du T1H nicht einhalten kannst. 
Du darfst ruhig auch Reset-Zeiten von 300µs verwenden (was ich wegen 
WS2813 (nicht WS2812) auch mache.

Aber ich habe hier etwas interessantes für den TO gefunden: WS2818 (ja, 
achtzehn!):

  https://www.tme.eu/en/details/ws2818-s/led-drivers/worldsemi/ws2818/

Das sind SO8-Chips.

Datenblatt:

https://www.tme.eu/en/Document/22185e725bbf20b943bde01e7736a97b/WS2818.pdf
1
T0H 220ns~480ns
2
T1H 750ns~2us
3
T0L 750ns~2us
4
T1L 220ns~480ns

Das sollte mit den WS2812 kompatibel sein.

Aber jetzt kommt das Aber: RES > 300µs

Wenn das "Kauftool" die Pause kürzer als 300µs hält, klappts damit 
leider auch nicht. Aber Probieren geht ja bekanntlich über Studieren ;-)

: Bearbeitet durch Moderator
von Simon B. (nomis)


Bewertung
0 lesenswert
nicht lesenswert
Meine Erfahrung ist, dass man mit den aktuellen Versionen von 
Adafruit-Library etc. problemlos WS2811, WS2812, WS2812b und SK6812 
(3-Kanal) sowie SK6812 (4-Kanal) ansprechen kann, eine Software-Änderung 
ist nur für 3- vs. 4-Kanal notwendig.

Bei den WS2811 muss man ggf. beachten, dass die auf 800kHz konfiguriert 
sind (die lassen sich per Pin auf 400kHz runterstellen...).

Viele Grüße,
         Simon

von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
also ziel ist es aus einer Kette von 100 LEDs 4 LEDs abzukoppeln und 
diese DEUTLICH zu verstärken...

etwas so:
1
- x - x - x - x - x - x - x -  x -  x -  x -  x - 
2
          |               |
3
         30W             30W
d.h. ich brauch bei der Abzweigung nur 1 LED welche man sich merken 
muss...

Ich habe ein paar WS2812 da und werde diese heute Abend mal Testen, Aber 
wenn ich nicht "umschalten" kann, dann brauch ich auch die WS2811 
garnicht versuchen...

evtl. muss ich den Plan auch verwerfen, da mir die 
Elektronikerkenntnisse fehlen um hier einen Adapter zu bauen.

Ich dachte mit Kondensatoren könnte man da was "hinpuffern" ... aber das 
Klingt eher nach Microcontroller...

von Sven (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier der High-Power Adapter

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> also ziel ist es aus einer Kette von 100 LEDs 4 LEDs abzukoppeln und
> diese DEUTLICH zu verstärken...

Ich würde diese 4 LEDs aber nicht abkoppeln, sondern eher einfach am 
Eingang "DI" von diesen 4 LEDs einen WS2812-Adapter-oder-was-weiß-ich 
(z.B. den oben genannten WS2818) parallel schalten. Du brauchst die 
Kette also nicht zu trennen.

Sven schrieb:
> Hier der High-Power Adapter

Den hast Du also schon. Und da ist jetzt ein WS2811 drauf? Was passiert, 
wenn Du den jetzt an DI von einen der 100 anderen LEDs anschließt?

: Bearbeitet durch Moderator
von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
nun, genau das mach ich doch!?

ich nehme die 20. WS12LED und zweige ab und schalte parallel meine 
WS11LED zu.

aber wie oben beschrieben, flimmert diese nur wirr und zeigt nicht 
annähernd die gewünschte Farbe.

Am Arduino mit AdaFruid Lib funkioniert die WS11LED wie gewünscht sehr 
hell und sehr sauber.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> aber wie oben beschrieben, flimmert diese nur wirr und zeigt nicht
> annähernd die gewünschte Farbe.

Okay. Dann könntest Du den WS2811-IC auf Deinem High-Power Board gegen 
einen WS2818-IC (s.o.) tauschen. Wenn Du Glück hast, macht Dein Kauftool 
zwischen den einzelnen Frames Pausen von >300µs und es läuft.

Ansonsten muss ein Adapter her, der das Signal für eine LED (24 Bits) 
abzweigt und in das Timing einer WS2811 umwandelt und während der 
(langsameren) Ausgabe die weiter reinkommenden Bits zwischenpuffert. 
Kann man mit einem Mikrocontroller machen.

von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
wenns jemanden interessiert wie es weiter geht...
> ich habe beim Hersteller lieb guck gemacht und jetzt bekomm ich eine 
abgeänderte Version mit WS2811

-Sven

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Und wenn Du Pech hast, kann diese Spezialversion nur noch WS2811 und 
Deine restlichen WS2812 funktionieren nicht mehr.

von Lars (Gast)


Bewertung
0 lesenswert
nicht lesenswert
wieso Pech... das wird ne Festinstallation...
> WS2811 Lichterkette ran und meine Spots und fertig :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.