I have a TLC5916 led driver (manual here) that can power 8 LEDs as commanded through SPI by a microcontroller. The writing end of the SPI is a Fez Panda (.NET MicroFramework) uC. When I send data, I sometimes get correct results, but usually it's something that looks similar, but not quite like, what I sent.
It usually looks like the sent byte got left-shifted one bit, or got some of the bits flipped.
Trying to send the same byte again and again usually yields the same (wrong) output, but even there, I've seen slightly different outputs for the same input crop up every once in a while.
Note that the LED driver is powered at 5V (PC ATX source), and the Fez has 3.3V outputs.
Also, I've tried to read back the values from the LED controller (it has a SPI output pin for chaining multiple controllers). This time, the 5V values are read perfectly by the Fez uC - the values I read corresponded with what physical LEDs were lit. (The Fez documentation does say that 5V inputs are supported, so I guess this was expected)
I tried changing the sampling setting for SPI (rising/falling CLK edge), but same results for either setting.
Any suggestions for debugging?
I don't have an oscilloscope or digital probe :( .