Wie kann man die Zeit, die zum Senden benötigt wird, berechnen?
Laut Datenblatt https://www.adafruit.com/datasheets/WS2812B.pdf braucht
es für 1 Bit ca 1,25µs. Nun hat ein WS2812B 3x256Bit.
Macht 768Bits * 1,25µs => 960µs pro IC.
Stimmt die Annahme so? Wäre dann bei etwa 1ms/pro Led.
Wieso soll EIN WS2812B 256 bit "haben"?
Nein, er benötigt genau 3x8 = 24 Bit um die RGB-Daten zu haben (8 Bit
pro Farbe).
Somit ist Deine Rechnung FALSCH.
Antwort = NEIN.
Für längere Ketten muss aber auch die Pausenzeit zwischen 2
24-Bit-Blöcken beachtet werden:
Diese beträgt 50 usec.
Also kommst Du pro LED auf ca 80 usec
Das hab ich bei meinem Design auch zuerst nicht berücksichtigt.
Viel Erfolg
Thomas
Thomas schrieb:> Für längere Ketten muss aber auch die Pausenzeit zwischen 2> 24-Bit-Blöcken beachtet werden:>> Diese beträgt 50 usec.
war es nicht so das erst wenn alle übertragen wurden das nach 50µs die
Werte übernommen werden? also die Lücke zwischen 2 LEDs immer kleiner
als 50µs sein muss?
Mädels, ihr seid echt süß....
Oben ist das Datenblatt verlinkt.
Anstatt hier rum zu raten, könnte man sich einfach mal daran halten, was
da geschrieben steht.
Viel klarer gehts doch gar nicht.
Selbst ich, als Arduino Jünger, verstehe das im ersten Durchgang.
Also kann das nicht allzu schwer sein... ;-)
Tipp:
Nur lesen.
Nichts dazu dichten.
Und daran halten.
Dann passt das schon....
Ulrich F. schrieb:> Mädels, ihr seid echt süß....
und du erst, ich hatte das Datenblatt gelesen, aber nicht auswendig
gelernt.
Statt diesen unnötigen Kommentar hättest du uns erhellen können wenn es
dir wichtig ist.
Mein Interesse das Datenblatt vorzulesen ist gering.
Auf 3X8Bit pro Chip habt ihr euch ja schon geeinigt....
Gut gemacht!
Und jetzt speziell zu dir jar...
Joachim B. schrieb:> also die Lücke zwischen 2 LEDs immer kleiner> als 50µs sein muss?
Im Datenblatt sind genau 5 Zeiten angegeben.
Wovon 4 Zeiten für die Bits drauf gehen und 1 Zeit für den
Reset/Übernahme Impuls.
Es gibt in dieser Definition KEINE Lücke zwischen den LEDs.
No!
Vergiss es.
Die Lücke hast du dir (bzw. Thomas) ausgedacht.
Was das erhellend genug?
Ulrich F. schrieb:> Und jetzt speziell zu dir jar...Ulrich F. schrieb:> Die Lücke hast du dir (bzw. Thomas) ausgedacht.
ich habe mir keine Lücke ausgedacht!
Ulrich F. schrieb:> Es gibt in dieser Definition KEINE Lücke zwischen den LEDs.> No!
das habe ich auch zu keiner Zeit behauptet!
Joachim B. schrieb:> war es nicht so das erst wenn alle übertragen wurden das nach 50µs die> Werte übernommen werden? also die Lücke zwischen 2 LEDs immer kleiner> als 50µs sein muss?
reset code
>=50us
ab da werden die Daten zur LED übernommen,
weiss ich und ich behauptete nie was anderes.
Du solltest an deinem Leseverständnis arbeiten.
so eine unnötige Diskusion, fühlst du dich nun besser?
Dein ganzes Erscheinen im Thread hat nix erhellendes gebracht ausser das
du Selbstdarsteller und Arduinojünger bist.
Joachim B. schrieb:> ich habe mir keine Lücke ausgedacht!
...
> das habe ich auch zu keiner Zeit behauptet!
Aber gefragt!
Und damit die Bereitschaft gezeigt zu "glauben", anstatt zu lesen.
Darauf hin von mir die Mitteilung bekommen: Sowas gibts nicht.
Joachim B. schrieb:> Du solltest an deinem Leseverständnis arbeiten.
Damit bin ich offensichtlich nicht alleine.
Ich fasse die Antwort für Lesefaule mal in einer kleinen Formel
zusammen:
Wenn man sich an das Timing im Datenblatt hält, braucht man für einen
Aktualisierungs-Zyklus :
T = (Anz.LEDs * 30µs) + 50µs
Wenn man sich nicht an das Datenblatt hält, kann man die Pausen zwischen
den Bits auch etwas länger machen, je nach Mut bis zu 6 µs und die 50 µs
etwas kürzen (evtl. nur 10µs).
Ulrich F. schrieb:>> das habe ich auch zu keiner Zeit behauptet!>> Aber gefragt!
nö nicht wirklich, keine Lücke = 0µs und damit kleiner als
Joachim B. schrieb:> also die Lücke zwischen 2 LEDs immer kleiner> als 50µs sein muss?
was auch stimmt, wenn schon Lücken da sein sollten.
Von Lückenzwang hat keiner was geschrieben
Meine Frage war eine Restunsicherheit (bezüglich der 50µs) das die Lücke
auf jeden Fall <50µs sein muss wenn eine Lücke sein sollte.
Ja, im Datenblatt sind ja direkt auch Toleranzen mit angegeben.
Ich betreibe meine WS2812B über DMA+SPI und einem Bittakt von 3 MHz,
wobei ich jedes Bit für die WS2812b aus 3 SPI Bits zusammensetze -
ergibt dann effektiv 1µs pro übertragenem Bit.
Thomas E. schrieb:> kann man die Pausen zwischen> den Bits auch etwas länger machen, je nach Mut bis zu 6 µs
Einspruch!!
Wer soll das denn glauben...
Das Datenblatt ist da eindeutig!
> ±150ns
Zwischen den Bits gibts keine Pausen!
Also gibts auch nichts länger zu machen.
Und schon gar nicht um 6µs, was ca das 4 bis 5 fache eines einzelnen
Bits ist...
Nein!
Das glaube ich nicht.
Und meine Erfahrung mit den Dingern sagt: Die sind extrem pingelig, was
das Timing betrifft.
Joachim B. schrieb:> reset code> >=50us>> ab da werden die Daten zur LED übernommen,> weiss ich und ich behauptete nie was anderes.
woher weisst du das?
Im Datenblatt steht was anderes: Die Daten werden nach 24bit sofort
uebernommen.
Roger S. schrieb:> Die Daten werden nach 24bit sofort> uebernommen.
Da muss ich den jar mal in Schutz nehmen!
Denn wo er recht hat, hat er recht.
Ins Latch werden sie sofort übernommen.
Ins PWM Register erst beim Reset.
Das kann man einfach ausprobieren....
z.B. mal 1 Sekunde Daten schicken und dann einen Reset.
Du wirst sehen, sie werden quasi gleichzeitig übernommen.
Ulrich F. schrieb:> Da muss ich den jar mal in Schutz nehmen!> Denn wo er recht hat, hat er recht.
grosses Danke!
> Ins Latch werden sie sofort übernommen.> Ins PWM Register erst beim Reset.
und erst ab da sind sie ja interessant bzw. sichtbar für uns!
Ulrich F. schrieb:> Thomas E. schrieb:>> kann man die Pausen zwischen>> den Bits auch etwas länger machen, je nach Mut bis zu 6 µs>> Einspruch!!> Wer soll das denn glauben...> Das Datenblatt ist da eindeutig!>> ±150ns
Hab ich ja geschrieben, daß das nicht dem Datenblatt entspricht.
Details:
http://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/>> Zwischen den Bits gibts keine Pausen!> Also gibts auch nichts länger zu machen.
Damit meinte ich eine Verlängerung des Low-Pegels zwischen den
High-Impulsen der Bits.
> Und schon gar nicht um 6µs, was ca das 4 bis 5 fache eines einzelnen> Bits ist...>> Nein!> Das glaube ich nicht.
Kannst Du glauben oder auch nicht - musst Du selbst entscheiden.
Ich hab's mit einem LED-Streifen mit 288 LEDs ausprobiert und es lief
bei mir auch problemlos mit einer auf 200 kbps hertuntergesetzten
Geschwindigkeit (5µs/Bit)