OK, I did some research, wrote my own code, and it works!
It´s a simple example of using Arduino to talk to the MAX6960
#define DATAOUT 11//MOSI
#define DATAIN 12//MISO
#define SPICLOCK 13//sck
#define SLAVESELECT 10//ss
#define RESET 9 //reset
byte clr;
void setup()
{
pinMode(DATAOUT, OUTPUT);
pinMode(DATAIN, INPUT);
pinMode(SPICLOCK,OUTPUT);
pinMode(SLAVESELECT,OUTPUT);
pinMode(RESET,OUTPUT);
// SPCR = 01010000
//interrupt disabled,spi enabled,msb 1st,master,clk low when idle,
//sample on leading edge of clk,system clock/4 rate (fastest)
SPCR = (1<<SPE)|(1<<MSTR);
clr=SPSR;
clr=SPDR;
delay(10);
digitalWrite(SLAVESELECT,HIGH);
digitalWrite(RESET,HIGH);
delay(5);
digitalWrite(RESET,LOW);
delay(5);
digitalWrite(RESET,HIGH);
delay(200);
//configurar registros aquí
//Panel Configuration Register
digitalWrite(SLAVESELECT,LOW);
spi_transfer(0x0d);
spi_transfer(0x01);
digitalWrite(SLAVESELECT,HIGH);
//Panel Intensity Register
digitalWrite(SLAVESELECT,LOW);
spi_transfer(0x02);
spi_transfer(0x30);
digitalWrite(SLAVESELECT,HIGH);
//Number of Cascaded Devices Register
digitalWrite(SLAVESELECT,LOW);
spi_transfer(0x0e);
spi_transfer(0x03);
digitalWrite(SLAVESELECT,HIGH);
//Number of Display Rows Register
digitalWrite(SLAVESELECT,LOW);
spi_transfer(0x0f);
spi_transfer(0x01);
digitalWrite(SLAVESELECT,HIGH);
delay (500);
digitalWrite(SLAVESELECT,LOW);
spi_transfer(0x00);
spi_transfer(0x00);
spi_transfer(0x88);
digitalWrite(SLAVESELECT,HIGH);
while (1)
{
};
}
char spi_transfer(volatile char data)
{
SPDR = data; // Start the transmission
while (!(SPSR & (1<<SPIF))) // Wait for the end of the transmission
{
};
return SPDR; // return the received byte
}
void loop()
{
while (1);
{
};
}