So I’m building a project that requires controlling a matrix of LEDs.
I have some successful trails in TLC5940 so that I think TLC5947 will be a better choice.
I tried my understanding to modify codes for 5940 on 5947 but does not work so I wonder if there’s something wrong with me.
To my understanding, 5947 is more like a ‘power-up’ version of 5940, with more outputs and auto-repeat internal clock cycles.
According to the datasheet (here), this should be pretty self explanatory:
latch and blank low;
send data via sin and sclk;
blank high to disable output and reset counter;
latch high and low to shift data;
blank low to go on.
PORTD |= 1<<5;// write blank HIGH to reset the 4096 counter in the TLC PORTD |= 1<<2;// write XLAT HIGH to latch in data from the last data stream PORTD &= ~(1<<2);// XLAT can go low now--- PORTD &= ~(1<<5);// Blank goes LOW to start the next cycle for(SINData=35; SINData>=0; SINData--)// send the data out! SPI.transfer(transferbyte[SINData]);
the problem is, this does not work, but why? what am i missing?
btw, I have successfully used TLC5940 so I suppose there’s no connection problem, and I do understand that TLC5940 means 24 outputs in 12 bit equals 288 bits, makes transferdata in 36 bytes.