Memory File System Library, for SPI PRAM NP8P128A13 (Micron) see: http://mbed.org/users/okini3939/notebook/extend-memory/

Dependents:   SPIRAM_PRAMFS

Committer:
okini3939
Date:
Mon Nov 12 15:36:45 2012 +0000
Revision:
0:475e05403ad8
1st build

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:475e05403ad8 1 /*
okini3939 0:475e05403ad8 2 * Memory File System Library, for SPI PRAM NP8P128A13 (Micron)
okini3939 0:475e05403ad8 3 * Copyright (c) 2012 Hiroshi Suga
okini3939 0:475e05403ad8 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:475e05403ad8 5 */
okini3939 0:475e05403ad8 6
okini3939 0:475e05403ad8 7 #ifndef _PRAMFileSystem_H_
okini3939 0:475e05403ad8 8 #define _PRAMFileSystem_H_
okini3939 0:475e05403ad8 9
okini3939 0:475e05403ad8 10 #include "mbed.h"
okini3939 0:475e05403ad8 11 #include "FATFileSystem.h"
okini3939 0:475e05403ad8 12
okini3939 0:475e05403ad8 13 #define CMD_WREN 0x06 // Write enable
okini3939 0:475e05403ad8 14 #define CMD_WRDI 0x04 // Write disable
okini3939 0:475e05403ad8 15 #define CMD_RDID 0x9f // Read identification
okini3939 0:475e05403ad8 16 #define CMD_RDSR 0x05 // Read status register
okini3939 0:475e05403ad8 17 #define CMD_WRSR 0x01 // Write status registe
okini3939 0:475e05403ad8 18 #define CMD_READ 0x03 // Read data bytes
okini3939 0:475e05403ad8 19 #define CMD_FREAD 0x0b // Read data bytes at higher speed
okini3939 0:475e05403ad8 20 #define CMD_PP 0x02 // Page program (legacy program)
okini3939 0:475e05403ad8 21 #define CMD_PP_BA 0x22 // Page program (bit-alterable write)
okini3939 0:475e05403ad8 22 #define CMD_PP_1S 0xd1 // Page program (On all 1s)
okini3939 0:475e05403ad8 23 #define CMD_SE 0xd8 // Sector erase
okini3939 0:475e05403ad8 24
okini3939 0:475e05403ad8 25
okini3939 0:475e05403ad8 26 class PRAMFileSystem : public FATFileSystem {
okini3939 0:475e05403ad8 27 public:
okini3939 0:475e05403ad8 28
okini3939 0:475e05403ad8 29 /** Create the File System for accessing an SD Card using SPI
okini3939 0:475e05403ad8 30 *
okini3939 0:475e05403ad8 31 * @param mosi SPI mosi pin connected to SD Card
okini3939 0:475e05403ad8 32 * @param miso SPI miso pin conencted to SD Card
okini3939 0:475e05403ad8 33 * @param sclk SPI sclk pin connected to SD Card
okini3939 0:475e05403ad8 34 * @param cs DigitalOut pin used as SD Card chip select
okini3939 0:475e05403ad8 35 * @param name The name used to access the virtual filesystem
okini3939 0:475e05403ad8 36 */
okini3939 0:475e05403ad8 37 PRAMFileSystem (PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name);
okini3939 0:475e05403ad8 38 virtual int disk_initialize ();
okini3939 0:475e05403ad8 39 virtual int disk_write (const char *buffer, int block_number);
okini3939 0:475e05403ad8 40 virtual int disk_read (char *buffer, int block_number);
okini3939 0:475e05403ad8 41 virtual int disk_status ();
okini3939 0:475e05403ad8 42 virtual int disk_sync ();
okini3939 0:475e05403ad8 43 virtual int disk_sectors ();
okini3939 0:475e05403ad8 44
okini3939 0:475e05403ad8 45 protected:
okini3939 0:475e05403ad8 46
okini3939 0:475e05403ad8 47 int _init ();
okini3939 0:475e05403ad8 48 int _status ();
okini3939 0:475e05403ad8 49 int _read (int addr, char *buf, int len);
okini3939 0:475e05403ad8 50 int _write (int addr, const char *buf, int len);
okini3939 0:475e05403ad8 51 int _sectors;
okini3939 0:475e05403ad8 52
okini3939 0:475e05403ad8 53 SPI _spi;
okini3939 0:475e05403ad8 54 DigitalOut _cs;
okini3939 0:475e05403ad8 55 };
okini3939 0:475e05403ad8 56
okini3939 0:475e05403ad8 57 #endif