this is what interil told me to look at, i cannot however translate this to arduino
Looks like the chip has to be initialized a bit further before being ready:
//4k e2prom and cpu supervisor
#include <SPI.h>
#define WRITE 2
#define READ 3
#define WREN 6
#define RDSR 5
#define WRSR 1
unsigned int address = 0x01;
byte outval = 250;
byte invalue;
void setup(){
Serial.begin(9600);
Serial.println("RESET");
// set up to match device datasheet
SPI.begin(); // sets up pin modes etc.
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(SPI_CLOCK_DIV2); // max clock is 20MHz, so can set high speed
// Enable writing
digitalWrite(SS, LOW);
SPI.transfer(WREN);
digitalWrite(SS, HIGH);
// Initialize status register
digitalWrite(SS, LOW);
SPI.transfer(WRSR);
SPI.transfer(0x00);
digitalWrite(SS, HIGH);
// Latch enable write again (don't know why this is necessary)
digitalWrite(SS, LOW);
SPI.transfer(WREN);
digitalWrite(SS, HIGH);
// write a value to address 0x01
digitalWrite(SS,LOW);
SPI.transfer(WRITE | (address & 0x0100) ? 8 : 0);
SPI.transfer(address & 0xFF);
SPI.transfer(outval);
digitalWrite(SS, HIGH);
// read a value from address 0x01
digitalWrite(SS,LOW);
SPI.transfer(READ | (address & 0x0100) ? 8 : 0);
SPI.transfer(address & 0xFF);
invalue = SPI.transfer(0x00);
digitalWrite(SS,HIGH);
Serial.print("Read Data = ");
Serial.println(invalue,DEC);
}
void loop() {
}
What's the output of this sketch?