Über den Arduino den 25LC020A über SPI ansteuern

HI habe mittlerweile den SPI-Code geschrieben um den EEPROM 25LC020A anzusteuern d.h. schreiben und auslesen doch der funktioniert nicht.
Könnte mir vllt jemand einen tipp geben woran das liegt habe das datenblatt auch hinzugefügt:

das is der code dazu:

void single_control_spi()
{
if (Serial.available() > 0 )
{
byte anz_parameter = byte (Serial.parseInt());
byte instruction = byte(Serial.parseInt());
byte adresse = byte (Serial.parseInt());
byte data = byte (Serial.parseInt());

if (anz_parameter == 3)
{
//Bitübertragungs-Reihenfolge → MSB zuerst//
SPI.setBitOrder(MSBFIRST);
//damit geschrieben werden kann CS/SS-Pin auf low setzen//
digitalWrite(chipselect_mc,LOW);
//Sendeprotokoll-> |instruction|adresse|data|//
SPI.transfer(instruction);
SPI.transfer(adresse);
SPI.transfer(data);
//wenn fertig mit übertraugng , setze CS auf HIGH zurück//
digitalWrite(chipselect_mc,HIGH);
}//end if
}//end if serial
}//end fu

void read_out_spi()
{
if (Serial.available() > 0)
{
byte anz_parameter = byte(Serial.parseInt());
byte instruction = byte (Serial.parseInt());
byte adresse = byte (Serial.parseInt());
byte data = byte (Serial.parseInt());
//setze chipselect auf Low//
//if (anz_parameter ==3)
//{
digitalWrite(chipselect_mc,LOW);
//sende instruction to write und adresse//
SPI.transfer(instruction);
Serial.println(instruction);
SPI.transfer(adresse);

//Übertrage Leerbefehl, damit Daten eingelesen werden//
byte miso_data = SPI.transfer(0);
digitalWrite(chipselect_mc,HIGH);
//Ausgabe vom EEPROM-Inhalt//
Serial.println("Read out from : ");
Serial.print(adresse);
Serial.print(“value :”);
Serial.print(miso_data);
delay(50);
// }//end if parameter 3
}//end if
}//end fu

Weiß jemand wo der Fehler liegen kann ? Bin für jede Hilfe dankbar

21833c.pdf (466 KB)

bzw kann ich die serial library verwenden für dieses Device oder soll ich die SPIEEPROM nehmen? Wenn ja warum geht das nicht mit der normalen SPI-library?