Advertisement
8bitMark

SPI EEPROM Read Example

Jul 11th, 2020
498
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.08 KB | None | 0 0
  1. #include <SPI.h>
  2.  
  3. #define DATAOUT 11//MOSI
  4. #define DATAIN  12//MISO
  5. #define SPICLOCK  13//SCK
  6. #define EEPROM_PIN 6//CS
  7.  
  8. //opcodes
  9. #define WREN  6
  10. #define WRDI  4
  11. #define RDSR  5
  12. #define WRSR  1
  13. #define READ  3
  14. #define WRITE 2
  15.  
  16. int result, address=0;
  17.  
  18. void setup() {
  19.  Serial.begin(9600);
  20.  Serial.println("Read test pin setup starting");
  21.  
  22.  pinMode(DATAOUT, OUTPUT);
  23.  pinMode(DATAIN, INPUT);
  24.  pinMode(SPICLOCK,OUTPUT);
  25.  pinMode(EEPROM_PIN,OUTPUT);
  26.  digitalWrite(EEPROM_PIN, HIGH);
  27.  
  28.  SPI.begin();  
  29.  SPI.setDataMode(SPI_MODE3);  //setup SPI protocol
  30.  SPI.setClockDivider(SPI_CLOCK_DIV2); // 10 Mhz max for 25LC256
  31.  SPI.setBitOrder(MSBFIRST);
  32.  delay(10);
  33.  
  34.  Serial.println("Read test loop start");
  35.  digitalWrite(EEPROM_PIN, LOW);
  36.  SPI.transfer(READ); // read 3,0
  37.  SPI.transfer(address>>8); // registry
  38.  SPI.transfer(address); // registry
  39.  
  40.  for(int i=address; i<=20; i++)
  41.  {  
  42.    result = SPI.transfer(0x00);
  43.    
  44.    Serial.print(i);
  45.    Serial.print(" : ");
  46.    Serial.println(result);
  47.    address++;
  48.  }
  49.  
  50.  digitalWrite(EEPROM_PIN, HIGH);
  51. }
  52.  
  53. void loop() {
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement