dimitre
Well-known member
UCS8904B chip is a LED drive cascade chip with 16bit colors, RGBW output.
I'm trying to drive it from a Teensy 3.2 with no success until now.
Information is sparse about the data packet protocol, I'm assuming it is similar to ws2812 maybe with a different startFrame / endFrame length.
For now I only have the Blue channel on, the rest off. It is the "power on, no data" state.
I've got two different datasheets (incomplete) and some more information from another site to double check the timing requirements.
Already ttested with NeoPixelsBus library which have support to RGBW 16 bit colors, with no luck
Tried to change the timing to fit better some information I've found online here
this is using Teensy 3.2 F_CPU = 72000000
I suppose maybe the startFrame / endFrame are 64 bits instead of 32, because the LED packet is 64bits.
I'm using a protoboard and a chip adapter, runs with succes a similar older chip UCS2903B.
Any ideas of things to try?
Thank you
I'm trying to drive it from a Teensy 3.2 with no success until now.
Information is sparse about the data packet protocol, I'm assuming it is similar to ws2812 maybe with a different startFrame / endFrame length.
For now I only have the Blue channel on, the rest off. It is the "power on, no data" state.
I've got two different datasheets (incomplete) and some more information from another site to double check the timing requirements.
Already ttested with NeoPixelsBus library which have support to RGBW 16 bit colors, with no luck
Tried to change the timing to fit better some information I've found online here
UCS8904B IC Protocol|Greeled
China supplier of led tape light.Providing custom service of flex led tape,pixel led tape and digital pixel led .E-Mail:sales@gree-leds.com
www.gree-leds.com
this is using Teensy 3.2 F_CPU = 72000000
Code:
// static const uint32_t CyclesT0h = (F_CPU / 4000000);
// static const uint32_t CyclesT1h = (F_CPU / 1250000);
// static const uint32_t Cycles = (F_CPU / 800000);
static const uint32_t CyclesT0h = (F_CPU / 2500000); //= 28,8 ciclos = 0.4us
static const uint32_t CyclesT1h = (F_CPU / 1176470); //= 61,2 = 0,85us
static const uint32_t Cycles = (F_CPU / 800000); //= 90 = 1.25 us
I suppose maybe the startFrame / endFrame are 64 bits instead of 32, because the LED packet is 64bits.
I'm using a protoboard and a chip adapter, runs with succes a similar older chip UCS2903B.
Any ideas of things to try?
Thank you