Bascom LED mit integriertem WS2811 Controller

RoTo

Mitglied
18. Juli 2010
51
0
6
In der nahe von Kassel
Sprachen
  1. BascomAVR
Hallo,
Hatte schon jemand von euch mit diesen niedlichen LED's zu tun gehabt ?
http://www.ebay.de/itm/100-Stuck-WS2812-RGB-SMD-5050-PLCC6-LED-integriertem-WS2811-Controller-/370720779889?pt=Bauteile&hash=item5650ae2e71 habe da von 10St. da.

Mich würde interessieren wie man sie Ansteuert.
Auf der Seite ist ein Beispiel Bascom Code dabei unten als FreePDF XP File - ws2811_v1_bascom.pdf, und das meiste ist in ASM gemacht wo ich keine Ahnung habe.

Vielleicht könnte sich das mal einer anschauen, und ein wenig Erläutern:rolleyes:

Würde mich sehr freuen.

Gruß
RoTo
 
Hallo,

das wichtigste findest du auf Seite 4 des großen Datenblatts.
Dort siehst du wie die 0- und 1-Bits über verschieden lange High-Phasen kodiert werden. Ähnlich einem PWM oder DCF77.
So wie es aussieht greift sich das IC die erste 24Bit-Folge und leitet alle anderen transparent durch (mit Impulsauffrischung).
Unten ist auf der Seite noch erläutert welches der Bits für welche Farbe da ist.
Wenn du die D-In zu lange auf Low läßt, dann wird alles zurückgesetzt. Ruhezustand auf der Datenleitung sollte also High sein.
Das Timing steht da auch noch (Seite 3) ...
T0H 0 code,high voltage time 0.5 µs ±150ns
T1H 1 code,high voltage time 1.2 µs ±150ns
T0L 0 code,low voltage time 2.0 µs ±150ns
T1L 1 code,low voltage time 1.3 µs ±150ns
RES low voltage time Above 50µs

0Bit => 0,5µs H .. 2,0µs L = 2,5µs
1Bit => 1,2µs H .. 1,3µs L = 2,5µs
Reset => über 50µs L (20 Bitzyklen)

Ich tippe mal das die Assembler eingesetzt haben weil das Timing in Bascom nicht ohne weiteres zu erzeugen ist. Das Timing ist schon recht flott und mit den +- 150ns wird das bei Bascom in Software echt eng. Selbst mit nem Timer dem man die Pits als PWM übergibt wird das schwierig. Man müßte ja den Timer bei einer Bitfolge alle 2,5µs ändern. Darum also Assembler.

Ach ja ... aus dem Beispiel ...
' Bit Zeiten
' für eine 1, T1H 0.6 µs T1L 0.65 µs
' für eine 0, T0H 0.25 µs T0L 1.0 µs
Also 1,25µs Bitzyklus. Das heißt wohl das dort mit 800kHz Takt gearbeitet wird. Also kannst du bei dem Timing Bascom wohl vollständig vergessen. Außerdem würde ich da den Atmel auf vollen 16MHz oder bei der neuen Serie auf 20MHz laufen lassen. Die haben nen ...
$regfile = "m16def.dat" ' specify the used micro
$crystal = 10000000 ' used crystal frequency
10MHz Mega16 verwendet. Also 100ns für einen Befehl. Damit hast du für die High-Zeit bei einem 1Bit also 6 Prozessorbefehle Zeit.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)