OpenCores

P9813 RGB LED string driver (Chainable RGB LED)

Project maintainers

Details

Name: p9813_rgb_led_string_driver
Created: Apr 23, 2018
Updated: May 15, 2018
SVN Updated: May 15, 2018
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star1you like it: star it!

Other project properties

Category:Other
Language:VHDL
Development status:Beta
Additional info:
WishBone compliant: No
WishBone version: n/a
License: LGPL

Description

There is a type of RGB LED from Grove called the "Chainable RGB LED", which uses the P9813 driver IC. This core drives a string of those. It is not a complicated core, but it definitely might save someone the time and effort required to put something like this together and test it out, when they are in need of an RGB pixel of this type in their project.

I put my modules together into VHDL packages. The P9813 driver core is contained in the file "rgb_pixel_pack.vhd", along with two other RGB pixel drivers (which have separate projects here on OpenCores).

There is a complete Lattice Diamond project, showing the core being used in a Lattice Brevia FPGA development board. The example project only has one P9813 RGB "pixel" but I did test this core out with two pixels, and it works. You can add many such pixels, by just updating the N_LEDS generic of this fully parameterized core.

To use with multiple pixels, simply use the "c_adr_o" signal to select which RGB values get driven into the red_i, grn_i and blu_i inputs.

It is very simple, really. There is no documentation. For years I have been using "unsigned" instead of "std_logic_vector." It is my choice, because it makes it easier for me to do conversions in VHDL to and from the integer type, and I can use the resize function directly.

If you need to convert from unsigned to std_logic_vector, just add a conversion statement such as this:
output
Please enjoy this small core, and let me know if it works for you.