Stm32f4+spi+coocox+ws2812

Persönliche Seite #4504366
Wenn Du einen "Inverter" spendierten möchtest, spricht einiges für den 
UART:

Thomas F. schrieb im 
Beitrag "Re: WS2812B über USB-UART ansteuern"
> Start + 8Bit + Parität + Stopp
>     S0123 4567Pss
>  00 11000 0110000
>  01 11000 0111100
>  10 11110 0110000
>  11 11110 0111100

So mache ich es auch bei meiner Wohnzimmerbeleuchtung mit dem Stm32f4.

PS: Das geht auch sehr gut mit DMA und das Timing lässt sich am UART 
sehr exakt einstellen.
OP #4504494
Danke und auf was hast du den prescaler eingestellt?
Mein lehrer hat gemeind ich soll den High bzw. Low pegel was der ws2812 
benötigt auf 24 bit aufteilen damit ich zuerst einen langen teil 1 
ausgebe und den rest 0 damit das bitmuster die die led benötigt ausgibt.
Gast #4504509
Simon H. schrieb:
> Leider ist es nicht so einfach ich muss alles selber machen. Es ist ein
> Projekt für die schule.

LOL.
Und dann im Forum andere die Arbeit machen lassen.
Dann lass dich doch einfach von der Lib von z.B. Uwe inspirieren und 
versuche sie zu verstehen.
Persönliche Seite #4504548
Simon H. schrieb:
> Danke und auf was hast du den prescaler eingestellt?

Weiß ich nicht im Kopf. Neu ausrechnen geht schneller als suchen.

> Mein lehrer hat gemeind ich soll den High bzw. Low pegel was der ws2812
> benötigt auf 24 bit aufteilen damit ich zuerst einen langen teil 1
> ausgebe und den rest 0 damit das bitmuster die die led benötigt ausgibt.

Kann man machen. Mit "S01234567Pss" (s.o.) kann man die High-Low-Pegel 
auch auf 12 Bit aufteilen.

Es klappt sogar mit "S0123456s" und 3 x "High-Low-Pegel" in einem byte.

000 = 100100100
001 = 100100110
010 = 100110100
...
111 = 110110110

Das ist vermutlich, was Dein Lehrer meinte.

Da ein UART immer mit einer 0 als Start-Bit startet, brauchst Du beim 
UART einen Inverter. Es gibt auch Lösungen mit SPI oder mit Timern ohne 
Inverter.
#4504617
Torsten C. schrieb:
> Da ein UART immer mit einer 0 als Start-Bit startet, brauchst Du beim
> UART einen Inverter. Es gibt auch Lösungen mit SPI oder mit Timern ohne
> Inverter.

Da die 3.3V High-Pegel vom Controller aber sowieso zu klein sind 
(zumindest, wenn man das sog. "Datenblatt" zu den LEDs einhalten will), 
braucht man eigentlich eh einen externen Baustein als Pegelwandler, da 
kann man dann dafür auch gleich einen Inverter nehmen...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.