Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 25LC1024 1Mbit SPI interface
- //
- // Device pin connections:
- // 1 = CS (Chip Select) (from Arduino)
- // 2 = SO (Master In Slave Out) (from Arduino)
- // 3 = +5V (WP) (from Arduino)
- // 4 = 0V (Ground) (from Arduino)
- // 5 = SI (Master Out Slave In) (from Arduino)
- // 6 = SCK (from Arduino)
- // 7 = +5V HOLD (from Arduino)
- // 8 = +5V Vcc (from Arduino)
- //
- // This file uses the SPI library and produces higher oscillation rates than the manual methods
- // for the Uno: SS/CS = pin 10, MOSI/SI = pin 11, SCK/clock = pin 13, MISO/SO = pin = 12
- //
- #define WRITE 2
- #define READ 3
- #define WREN 6
- #include <SPI.h>
- unsigned int data;
- unsigned int address = 0;
- unsigned int outval = 44;
- byte invalue;
- void setup()
- {
- Serial.begin(9600);
- Serial.println("--------------");
- Serial.println(SS); // chip select
- Serial.println(MOSI); // master out, slave in
- Serial.println(MISO); // master in, slave out
- Serial.println(SCK); // clock
- Serial.println("--------------");
- // set up to match device datasheet
- SPI.setBitOrder(MSBFIRST);
- SPI.setDataMode(SPI_MODE0);
- SPI.setClockDivider(SPI_CLOCK_DIV2); // max clock is 20MHz, so can set high speed
- SPI.begin(); // sets up pin modes etc.
- // Enable writing
- digitalWrite(SS, LOW);
- SPI.transfer(WREN);
- digitalWrite(SS, HIGH);
- // Write One Value to One Address
- digitalWrite(SS, LOW);
- SPI.transfer(WRITE); // write instruction
- SPI.transfer((address >> 16) & 255);
- SPI.transfer((address >> 8) & 255);
- SPI.transfer(address & 255);
- SPI.transfer(outval);
- digitalWrite(SS, HIGH);
- delay(1000);
- // Read One Value from One Address
- digitalWrite(SS, LOW);
- SPI.transfer(READ); // read instruction
- SPI.transfer((address >> 16) & 255);
- SPI.transfer((address >> 8) & 255);
- SPI.transfer(address & 255); // 3rd byte of address
- invalue = SPI.transfer(0); // Clock out the data
- Serial.print("Read Data = ");
- Serial.println(invalue,DEC);
- digitalWrite(SS, HIGH);
- }
- void loop()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement