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.
So'n Schiet, die Bildchen sind ja nich nur zum angugen, da muss man ja mitdenken =/
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.
Markus M. schrieb: > Wieso soll EIN WS2812B 256 bit "haben"? behauptet doch keiner! Simon schrieb: > Nun hat ein WS2812B 3x256Bit. aber es sind nur 24 Bit und das mal 1,25µs gibt 30µs pro WS2812B siehe: https://www.mikrocontroller.net/attachment/244099/m1284p_timing.jpg Beitrag "Arduino FastLED LIB vs. WS28xx LIB" am m1284p konnte ich das mit einem #define in delay.h lösen, einfach nur F_CPU auf 9L/10L setzen.
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?
:
Bearbeitet durch User
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).
:
Bearbeitet durch User
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)
Naja.. Glauben ist nicht so mein Ding... Schon gar nicht einfach so.. Wird bei nächster Gelegenheit getestet.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.