Please help me!
I have already tried everything. Dragon tiers and virgin blood will be the next to try.
I have EEPROM connected Arduino Leonardo MISO, MOSI and CLK and SS pin is defined.
For some reason I cannot get any kind of communication through and it seems that there is not even CLK signal coming from the CLK pin when I checked it with oscilloscope.
So what I'm missing here?
Here is the current code i'm trying with and it is already a mess but as I said, I have tried everyhting.
#include <SPI.h>
//#define DATAOUT 14//MOSI
//#define DATAIN 16//MISO
//#define SPICLOCK 15//sck
#define SLAVESELECT A4//ss // Varmistettu A4 on CE
#define WP 4 //Memory block write protect. High as disabled.
#define HOLD A5
//opcodes
#define WREN 0x06
#define WRDI 0x04
#define RDSR 0x05
#define WRSR 0x01
#define READ 0x03
#define WRITE 0x02
#define JEDECID 0x9F
#define READID 0x90
int receivedSPIVal=0;
void setup()
{
Serial.begin(9600);
// pinMode(DATAOUT, OUTPUT);
// pinMode(DATAIN, INPUT);
// pinMode(SPICLOCK,OUTPUT);
pinMode(SLAVESELECT,OUTPUT);
// pinMode(WP,OUTPUT);
// digitalWrite(WP,HIGH); //disable block protection
SPI.begin();
SPI.setBitOrder(MSBFIRST);
//wait for eeprom to finish writing
delay(3000);
Serial.print("hi \n");
delay(1000);
}
void loop()
{
digitalWrite(SLAVESELECT,LOW);
delay(20);
receivedSPIVal = SPI.transfer(JEDECID); // command
Serial.print(receivedSPIVal,HEX);
SPI.transfer(0x00);
SPI.transfer(0x01);
delay(20);
receivedSPIVal = SPI.transfer(0xFF); // response
Serial.print(receivedSPIVal,HEX);
Serial.print("\n");
digitalWrite(SLAVESELECT,HIGH);
/* digitalWrite(SLAVESELECT,LOW);
delay(1000);
SPI.transfer(0x90);
delay(20);
receivedSPIVal = SPI.transfer(0x00);
// Serial.print(receivedSPIVal,DEC);
receivedSPIVal = 1;
// delay(20);
receivedSPIVal = SPI.transfer(0x00);
// Serial.print(receivedSPIVal,DEC);
receivedSPIVal = 1;
// delay(20);
receivedSPIVal = SPI.transfer(0x00);
// Serial.print(receivedSPIVal,DEC);
if(receivedSPIVal == 0)
{
delay(20);
receivedSPIVal = SPI.transfer(0xFF);
Serial.print(receivedSPIVal,DEC);
}
receivedSPIVal = 1;
Serial.print("\n");
digitalWrite(SLAVESELECT,HIGH); //release chip*/
delay(1000); //pause for readability
}
Thanks,
Arto