I have a few 6954s and read a ton of articles about how hard it is to get the communication through SPI to work correctly using this chip. Was wondering if anyone has played with it.
The answer is no, but I just did a bit of research on this and the problem is that the MAX6954 expects the clock pin to be handled in a way that is incompatible with the way Atmel processors or Arduino do SPI (not sure which). From the datasheet:
The MAX6954 is written to using the following sequence:
1) Take CLK low.
2) Take CS low. This enables the internal 16-bit shift register.
3) Clock 16 bits of data into DIN, D15 first to D0 last, observing the setup and hold times. Bit D15 is low, indicating a write command.
4) Take CS high (while CLK is still high after clocking in the last data bit).
5) Take CLK low.
Specifically, the SPI library takes CLK low before you can take CS high. This is inconvenient, but hardly a show-stopper. If you read the datasheet, know what the device expects, and control the lines yourself manually, you can make this happen. There are only three lines here to work your magic on. This is called bit-banging and it works just fine (I have used it on the MAX7219 and TLC5940, not to mention 74HC595s). The chip on the other side has no idea you are doing it in software rather than using the SPI hardware in the processor and wouldn't care anyway.