Trouble interfacing with MAX6957

Hey guys, I'm trying to interface with a MAX6957 (Mixed-signal and digital signal processing ICs | Analog Devices) to expand the number of discrete LEDs I can control. I've tried to adapt the sketch from the SPI Potentiometer tutorial, but I just can't get anything to happen and I've run out of ideas on what to try. Here's how I've connected everything up:

5V to Vcc on CHIP
Pin 10 to CS on CHIP
PIn 11 to DIN on CHIP
Pin 13 to SCLK on CHIP
GND to GND1 and GND2 on CHIP
39Ohm resistor between ISET on CHIP and GND
LED between 5V and P22 on CHIP (oriented correctly)

Here's my sketch:

#define DATAOUT 11//MOSI
#define DATAIN 12//MISO - not used, but part of builtin SPI
#define SPICLOCK  13//sck
#define SLAVESELECT 10//ss

byte led=12;

char spi_transfer(volatile char data)
{
  SPDR = data;                    // Start the transmission
  while (!(SPSR & (1<<SPIF)))     // Wait the end of the transmission
  {
  };
  return SPDR;                    // return the received byte
}

void setup()
{
  Serial.begin(9600);
  byte clr;
  pinMode(DATAOUT, OUTPUT);
  pinMode(DATAIN, INPUT);
  pinMode(SPICLOCK,OUTPUT);
  pinMode(SLAVESELECT,OUTPUT);
  digitalWrite(SLAVESELECT,HIGH); //disable device
  // SPCR = 01010000
  //interrupt disabled,spi enabled,msb 1st,master,clk low when idle,
  //sample on leading edge of clk,system clock/4 (fastest)
  SPCR = (1<<SPE)|(1<<MSTR);
  clr=SPSR;
  clr=SPDR;
  delay(10);
  
    write_data(0x04, 0x01);  
  
  //SET ALL PINS TO LED DRIVER MODE
  write_data(0x09, 0);
  write_data(0x0A, 0);
  write_data(0x0B, 0);
  write_data(0x0C, 0);
  write_data(0x0D, 0);
  write_data(0x0E, 0);
  write_data(0x0F, 0);
  
  //SET GLOBAL CURRENT LEVEL TO FULL
  write_data(0x02, 0xFF);
  
  //TAKE OUT OF SHUTDOWN MODE

  
  //TURN ALL LEDs ON
  write_data(0x4C, 0xFF);
  write_data(0x54, 0xFF);
  write_data(0x5C, 0xFF);  
}

byte write_data(int address, int value)
{
  Serial.print(address, BIN);
  Serial.print('|');
  Serial.println(value, BIN);
  digitalWrite(SLAVESELECT,LOW);
  //2 byte opcode
  spi_transfer(address);
  spi_transfer(value);
  digitalWrite(SLAVESELECT,HIGH); //release chip, signal end transfer
}

void loop()
{
  //write_led(led, 0xFF);
  //led++;
  //if (led == 32) {
    //led = 12;
  //}
}

Can anyone help me? I've spent all night trying to get this to work and I just don't know enough to know what to try to fix it. I think I'm in a little over my head.

In case anyone else stumbles across this thread looking for answers - it looks like it wasn't anything I was doing, the Arduino NG that I'm using apparently can't do NG properly in its current revision due to the resistor/led on pin 13. (As mentioned here: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1163734586)