Met een paar componenten kun je een standaard 1 MHz SPI data stream omzetten in een bit stream die compatibel is met adresseerbare RGB LEDs van het WS2812B type (zoals NeoPixels). Een datasnelheid van 1 MHz maakt het mogelijk 25% meer LEDs in dezelfde tijd te besturen dan met een standaard 800 kHz software-gebaseerde (meestal bit-banging) driver mogelijk is, terwijl tegelijk geheugen en processorcapaciteit op de MCU vrijgemaakt worden. Het resultaat: meer LEDs om mee te spelen en meer rekenkracht beschikbaar voor mooiere animaties. Dit is wat we noemen een win-win situatie. 
 
Circuit details - More LEDs, More Power!
Clemens duikt in de details van het circuit.

Gebruik de marge van de WS2812(B)

Meestal wordt aangenomen dat WS2812(B) LEDs (en klonen ervan) op 800 kHz moeten draaien, wat een onhandige frequentie is voor microcontrollers die geklokt worden op 4, 8, 12 of 16 MHz of een andere frequentie die geen macht-van-twee veelvoud is van 800 kHz. Als je echter het datasheet van de LED's zorgvuldig leest, zie je dat de timing toleranties bijna 50% zijn, wat tamelijk royaal is.

Dit betekent dat een datasnelheid van 1 MHz ook zou moeten werken, want die is slechts 25% sneller dan 800 kHz en dus binnen de 50% speling. 1 MHz is een frequentie die de meeste randapparatuur met SPI gemakkelijk kan genereren, zelfs als ze alleen een basis clock prescaler hebben.

In deze video laten we zien hoe je hiervan kunt profiteren door een paar componenten aan de microcontroller toe te voegen.
 
 

Resources



Vertaling: Hans Adams