No description
Xiretza
3c5c3a4555
liteeth splits the rx data stream into 4-byte chunks and interprets them as little-endian 32-bit vecs; similar for the other direction. |
||
---|---|---|
vhdl | ||
.gitignore | ||
.gitmodules | ||
arty_a7_35.xdc | ||
gen_liteeth.py | ||
Makefile | ||
Makefile.nextpnr | ||
Makefile.symbiflow | ||
README.md |
WS2812 driver gateware for blinkenwall v3
At 100 FPS, a single strand of WS2812 can only be just over 300 LEDs long:
MAX_LENGTH = (1 / FPS - RESET_TIME) / BIT_TIME / BITS_PER_PIXEL
318 = (1 / 100 - 50e-6) / 1.3e-6 / 24
Because blinkenwall v3 has 64 * 96 = 6144
pixels, driving it at 100 FPS requires at least
6144 / 318 = 20
parallel drivers. For simplicity, the wall is devided into 24 strands of
256 LEDs. Unfortunately, most microcontrollers have at most a couple WS2812-capable interfaces
(typically SPI), so this would require coordinating several microcontrollers in parallel. A
much more integrated solution is to instantiate as many WS2812 drivers as desired in an FPGA,
then point the entire video firehose at the FPGA.