Forum: Mikrocontroller und Digitale Elektronik WS2812B + MSP430 Timing


von led_r (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

nur mal so aus Interesse eine Frage an diejenigen die WS2812 Strips
mit MSP430 betreiben.

Ich benutze einen MSP430G2955 und paar WS2812B Strips. Die Ansteuerung 
basiert auf einer Vorlage von
https://github.com/mjmeli/MSP430-NeoPixel-WS2812-Library.
Frequenz ist ca. 16 MHz mit DCO. SW wir mit CCS erstellt in C.

Es funktioniert einwandfrei, nur stimmt das Timing eigentlich nicht
zum Datenblatt des WS2812. Die T0H und T1H Zeiten stimmen, aber T0L und 
T1L sind viel zu lange. Was eigentlich heisst, dass der MC nicht richtig
nachkommt mit der Lieferung der nächsten Daten. (siehe Bild)

Ist das nur bei mir so und habe da was übersehen oder ist das halt so?

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Verwendest du das Library der eUSCI im MSP430?

Aufpassen, den im Errata stehen genau in Bezug dessen Probleme.

led_r schrieb:
> Ist das nur bei mir so

Nein das ist so wenn man die Bug's nicht berücksichtigt ;-) also sprich, 
"Wer liest den schon das Errata ?"
Mann kann dies Wegoptimieren, braucht einfach etwas "Feinarbeit" in der 
Software.

Hat übrigens damit zu tun das die Software teilweise im Cache abläuft, 
weil das Flash im MSP430G2955 zu langsam ist ;-) Da den Prg-Teil ins RAM 
Kopieren und dort ablaufen lassen wen möglich, hilft ;-)

Aber wenn es Läuft, mein Rat:

Never touch a running System

73 55

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

led_r schrieb:
> aber T0L und
> T1L sind viel zu lange.

Egal, die dürfen solange low sein, wie du Zeit hast (je nach Version) 
bis der Reset eintritt.

von Jester (Gast)


Lesenswert?

led_r schrieb:
> Es funktioniert einwandfrei, nur stimmt das Timing eigentlich nicht
> zum Datenblatt des WS2812. Die T0H und T1H Zeiten stimmen, aber T0L und
> T1L sind viel zu lange.

Aufpassen, das Datenblatt spricht von Min- und Maxwerten. Das macht den 
kleinen aber feinen Unterschied.

von led_r (Gast)


Lesenswert?

Danke für die beiden Hinweise.

Teo D. schrieb:
> Egal, die dürfen solange low sein, wie du Zeit hast

Nach Datenblatt darf TH+TL aber 1,25us +- 600ns sein.

Egal , hauptsache es funktioniert zuverlässig.

von Teo D. (teoderix)


Lesenswert?

Jester schrieb:
> Aufpassen, das Datenblatt spricht von Min- und Maxwerten. Das macht den
> kleinen aber feinen Unterschied.

Bei V1 "spricht" das auch von 50µs Reset-Time, in Wahrheit sinds aber 
nur 5µs....

von Teo D. (teoderix)


Lesenswert?

led_r schrieb:
> Teo D. schrieb:
>> Egal, die dürfen solange low sein, wie du Zeit hast
>
> Nach Datenblatt darf TH+TL aber 1,25us +- 600ns sei

Wenn die low Zeiten ein max. limit hätten, gehe immer das letzte bit 
verloren....


> Egal , hauptsache es funktioniert zuverlässig.

So auch bei relativ lahmen µCs. :)

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
Noch kein Account? Hier anmelden.