Hallo. Welcher uC eignet sich am besten als ws2812b Controller den man per i2c ansteuern und natürlich beschreiben kann. Bisher habe ich das immer mit einem atmega8 16au gemacht.. Versorgung, 16mhz Quarz, i2c und ein pin für die LEDs... Da ist ein atmega echt eine Verschwendung... Was wäre da eine gute Alternative?
Tiny13 und den Quarz braucht es dafür auch nicht.
:
Bearbeitet durch User
Ich habe sowas auch schon etliche Male mit einem Tiny13 gemacht. Kommt natürlich auch darauf an, wieviele WS-LED Du verwenden willst, da der Speicher im Tiny13 etwas knapp ist. Geht natürlich auch mit allen anderen "kleinen" AVR, meine ASM-Routinen schaffen mit 8Mhz locker das nötige Timing der WS2812.
Schau Dir mal diese AppNote an: http://ww1.microchip.com/downloads/en/appnotes/00001606a.pdf Inzwischen haben viele, auch kleine PICs CLC-Blöcke, mit denen man sowas machen kann. Damit ist die ganze Signalformerzeugung auf eine ziemlich geniale Art in Hardware ausgelagert worden. fchk
Hallo, da kannst eigentlich jeden kleinen MC mit I²C-Bus verwenden. Die Empfehlung von Frank klingt super. Ingo
Markus J. schrieb: > Was wäre da eine gute Alternative? Hängt im Wesentlichen nur davon ab, wie viele LEDs du zu steuern hast, denn davon hängt die Menge an RAM ab, die du als Framebuffer brauchst, halt 3 Byte pro LED. Wenn man Glitches durch das Schreiben über I2C vermeiden will, kommen dann nochmal 3 Byte als Buffer hinzu, so dass zumindest pro LED konsistente Daten gewährleistet sind. Werden hingegen über die ganze Kette hinweg konsistente Daten benötigt (Lauf- und Blendeffekte o.ä.), dann braucht man sogar 6 Byte pro LED, denn dann muss der gesamte Framebuffer "double buffered" sein. Oder man muß halt die Effekte im LED-Controller selber umsetzen, dann bleibt's bei den 3 Byte pro LED, aber dafür ist man dann natürlich auf die Effekte beschränkt, die es halt im Controller gibt.
Markus J. schrieb: > Versorgung, 16mhz Quarz, i2c und ein pin für die LEDs... Da ist ein > atmega echt eine Verschwendung... finde ich nicht, deswegen ATmega1284p mit 16KB SRAM c-hater schrieb: > Hängt im Wesentlichen nur davon ab, wie viele LEDs du zu steuern hast, > denn davon hängt die Menge an RAM ab, die du als Framebuffer brauchst, > halt 3 Byte pro LED. s.o. mit dem ESP32 und Pegelwandler gibts zumindest keinen RAM Mangel, aber noch besser gefällt mir natürlich: pegel schrieb: > Vielleicht ein schöner Grund STM32 zu probieren? > In dem Fall STM32G031 mit 8k RAM. der per DMA auch mehr Kanäle parallel rausschicken kann, aber 8K ist trotzdem weniger als 16KB vom 1284p Es soll größere STM geben? Mit meinem 1284p krankt es bei 400 LEDs nur das sie kaum noch in mein 10ms Raster passen, in meiner alten Wordclock mit nano328p und 114 LEDs stören die 3ms nicht.
:
Bearbeitet durch User
pegel schrieb: > Für diesen Fall reicht aber ein SO8. ;) stimmt welcher hat mit 8-Pins mehr Ports für 8-Kanal DMA und mehr RAM? Der TO dachte so an 2000 WS LEDs, glaube ich zumindest, oder liest du was anderes?
pegel schrieb: > Die Möglichkeit hätte er. sowie Hamster statt Toilettenpapier solange sie einen nicht in den Popo beissen? Mit 8K sind immerhin 2K LEDs möglich, ob das Timing aufrecht erhalten über einen Port für 2000 LED möglich ist oder ob die Framerate für seriell reicht ist eine andere Baustelle.
:
Bearbeitet durch User
Wie war das? 60mA bei voller Helligkeit pro WS? Mal 2000, oha. Dann würde ich den RAM doch lieber für schöne Effekte nutzen.
Also ich habe ja einen ATMega128 als Hauptcontroller. Aber je nachdem was der macht.. ja.. hat man hier nen interrupt.. da nen nop und ja.. dann fing ich an einfach jedesmal einen atmega8 dafür zu nutzen. Habe die Routinen, I2C ja alles fertig.. Flashen und gut. Aber ja.. ich dachte halt auch an Platz auf der Platine. Aber wie meint ihr das ohne Quarz? Ich habe bisher keine ws2812b ohne Quarz getimet bekommen. Super wäre echt ein Chip der das "mehrfach" mal "eben so" macht.. Habe aber bisher nur ATMegas und ja dann direkt Raspberrys genommen. Ist das viel zu "lernen"? Wenn wir schon bei Chips... Gibts auch einen direkt mit Logic Anaylzer? Software FFT ist schon hart.. auch für einen Raspberry.. Aber das ist offtopic.. das nur so nebenbei... Super wäre echt so ein Chip wo ich z.b. WB2812b mit paar mal so 100 x pro Reihe ansteuern könnte.. oder Dem ich dann per I2C sage => Reihe A Modus 3 <= oder => Reihe C Modus 1 <= und er dann das ganze macht unabhängig vom Host... Vielleicht noch ein paar DS18S20 an einzelnen Pins (damit man nicht die Adresse auslesen mus).. so. 10 Stück auch noch nebenbei mit macht und mir alle daten per I2C bereit hält...
Achso.. Also es werden rund 800 LEDs... Strom ist auch kein Problem.. grob 4A.. Das ist ja nix.. Allerdings werden nur knapp 400 LEDs angesprochen.. da es sich um 2 x 400 LEDs handelt die ich einfach parallel angeschlossen habe..
pegel schrieb: > Wie war das? 60mA bei voller Helligkeit pro WS? > Mal 2000, oha. ist genauso lösbar in Segmente a 36 LEDs für Power mit stepdown. Die Zuleitungen bleiben dann im Rahmen und ob der Stepdown 20V oder 24V bekommt ist dem auch egal, es ist sogar egal wenn an jedem Segment ein eigenes Netzteil zu 5V hängt. 230V~ findet sich in Abständen leichter als 5V oder 24V mit etlichen Ampere über weite Strecken zu jagen. Ist also genauso sinnvoll wie 2000 LEDs seriell aus einem Port bedienen was du ja meintest: pegel schrieb: > Die Möglichkeit hätte er. Ich tippe eher auf 8-Kanal DMA als sinnvoller, die Powerproblematik ist jedenfalls segmentiert leichter in den Griff zu bekommen als das Timing einzuhalten. Mittlerweile gibt es ja 12V WS die weniger Strombedarf haben.
:
Bearbeitet durch User
Markus J. schrieb: > Also es werden rund 800 LEDs... Strom ist auch kein Problem.. grob 4A.. Sind 5mA nicht etwas sehr dünn für eine RGB LED? Warum tut man sich eigentlich überhaupt WS2812B an? Einfach nur weil es "jeder" macht, da keiner was besseres kennt? APA102 gibt es auch schon seit Jahren, in verschiedenen Versionen. Mir "fehlt" da bestenfalls mal eine RGBW mit den Daten und dem Interface, gibt es vermutlich sogar, nur drüber "gestolpert" bin ich noch nicht.
Markus J. schrieb: > Also es werden rund 800 LEDs... oh schon eine weitere Salamischeibe? Markus J. schrieb: > Strom ist auch kein Problem.. grob 4A.. > Das ist ja nix.. hmm ich komme bei 800 * 60mA für Spitzenweiss auf 48A, die nächste Salamischeibe wird gerade geschnitten..... Bob schrieb: > Sind 5mA nicht etwas sehr dünn für eine RGB LED? wer die so dunkel betreiben möchte und das in den Daten sicherstellen kann, aber in einem Stripe mit 400 LEDs und einer Einspeisung a 2A könnte das evtl. klappen, fragt sich nur nach der Bestückung, der Weg bei 30 LEDs/m ist ja nun mal viel länger als bei 144 LEDs/m für 400 LEDs pro Stripe! Die nächste Salamischeibe ist schon vorbereitet. Warum kommen wichtige Informationen immer häppchenweise?
Ich kann darf wie auch immer nicht über diese LEDs reden... Aber... Es sind jeweils rund 400 LEDs FAST direkt aneinander. Keine stripes oder ähnliches. Und diese sind zweifach einfach parallel angeschlossen. Macht gesagt rund 800 LEDs. Ja Rechenfehler. 800 LEDs mal 48000mA also 48A Ja auch das ist kein Problem.
Markus J. schrieb: > Ich kann darf wie auch immer nicht über diese LEDs reden... machst du doch trotzdem Markus J. schrieb: > Es sind jeweils rund 400 LEDs FAST direkt aneinander. Keine stripes oder > ähnliches. > Und diese sind zweifach einfach parallel angeschlossen. also 2x 400 denke ich oder 2x 200? dein Text wird immer unverständlicher! Also 400 LEDs angenommen die 2x 400 bekommen dieselben Daten aus einem PIN brauchen also 1200 Byte SRAM für die RGB Daten und benötigen 30µs pro Data = 12ms zum Rausschieben, also ein 328p mit 2K SRAM reicht, bei kleineren µC schau einfach auf das SRAM.
Es gibt auch so kleine taktgeber... So wie so 1206 bauteile.. Sind das auch quarze? Kann man die auch nutzen?
> Ich kann darf wie auch immer nicht über diese LEDs reden ...
Hätte eine prima Lösung, leider darf auch ich nicht darüber
reden/schreiben. Schade. Oder?
Markus J. schrieb: > Es gibt auch so kleine taktgeber... So wie so 1206 bauteile.. > > Sind das auch quarze? Kann man die auch nutzen? Es gibt sie als Quarz: https://www.reichelt.de/keramik-smd-quarz-2-5x3-2x0-7mm-16-0-mhz-16-000000-mt-p101037.html?&trstct=pol_1&nbc=1 Der Quarzkristall hängt zwischen Pin 1 (Links unten) und 3 (rechts oben). Du darfst ihn gerne um 180° drehen. Und es gibt sie als Oszillatoren: https://www.reichelt.de/16-0mhz-quarzoszillator-keramik-smd-xo53-xo53-16-00000-p85031.html?&trstct=pol_0&nbc=1 Oszillatoren sind Quarz plus Taktgeber-IC in einem Gehäuse. Übliche Belegung: 1: Enable (link unten) 2: GND 3: Ausgang (rechts oben) 4: VCC (je nach Type 1.8V bis 3.3V, 5V gibts nur bei den großen Kannen mit Pins)
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.