Library to drive the Microchip 23K256 SRAM over SPI.
main.cpp
- Committer:
- romilly
- Date:
- 2010-08-14
- Revision:
- 0:318f4f480b1b
- Child:
- 1:28eb43851e6e
File content as of revision 0:318f4f480b1b:
#include "mbed.h"
DigitalOut ncs(p14);
SPI spi(p5,p6,p7);
void on() {
ncs = 0;
}
void off() {
ncs = 1;
}
void write(int address, char byte) {
on();
spi.write(0x02); // write data
spi.write(address >> 8);
spi.write(address & 0xFF);
spi.write(byte);
off();
}
void write(int address, char * buffer, int count) {
on();
spi.write(0x01); // write status
spi.write(0x40); // sequential mode
off();
on();
spi.write(0x02);
spi.write(address >> 8);
spi.write(address & 0xFF);
for (int i = 0; i < count; i++) {
spi.write(buffer[i]);
}
off();
on();
spi.write(0x01); // write status
spi.write(0x0); // byte mode
off();
}
char read(int address) {
on();
spi.write(0x03);
spi.write(address >> 8);
spi.write(address & 0xFF);
int result = spi.write(0);
off();
return (char) result;
}
int main() {
off();
char buff[50];
write(0, 'h');
write(1, 'i');
write(2, '!');
write(3, '\0');
for (int address = 0; address < 4; address++) {
buff[address] = read(address);
}
printf("mem = %s\r\n", buff);
write(0, "Hello world!",12);
for (int address = 0; address < 12; address++) {
buff[address] = read(address);
}
buff[12]='\0';
printf("now = %s\r\n", buff);
}
Microchip 23K256 SRAM