Stm32f4+spi+coocox+ws2812

Persönliche Seite #4504366
Lesenswert?

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.
Persönliche Seite #4504548
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren