Skip to content

cpldcpu/tt02-TrainLED

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TrainLED2 - A RGB-LED driver for TinyTapeout2

A RGB-LED driver using the WS2812 protocol. Design on TinyTapeout Website. See here for design Validation on the TinyTapout2 Testboard

A fully digital implementation of an RGB LED driver that accepts the WS2812 for data input. The design is fully clocked, so the timing parameters of the protocol depend on the clock rate. A pulse between 1 and 5 clock cycles on the input will be interpreted as a zero, longer pulses as a one. Each driver accepts 3x8=24 bit of input data to set the brightness of LED1,LED2 and LED3 (R,G,B). After 24 bit have been received, additional input bits are re-timed and forwarded to the data output.

After the data input was idle for 96 clock cycles, the input data is latched into the PWM engine and the data input is ready for the next data frame.

The PWM engine uses a special dithering scheme to allow flicker free LED dimming even for relatively low clock rates.

Source and testbench can be found in the /src folder. Execute the shell script 'run.sh' to invoke the testbench.

Output of testbench

screenshot of testbench results

Original TinyTapeout2 readme

TinyTapeout is an educational project that aims to make it easier and cheaper than ever to get your digital designs manufactured on a real chip!

Go to https://tinytapeout.com for instructions!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published