IP12B512 class for comunicating with the IPSiLog IP12B512 SPI RAM

IP12B512.h

Committer:
adamumpsimus
Date:
2016-11-04
Revision:
0:35077a3db00c
Child:
2:a0029473868c

File content as of revision 0:35077a3db00c:

#ifndef IP12B512_H
#define IP12B512_H

#include "mbed.h"

// Operation Instruction Set
#define IP12B512_READ  0x03 // Read memory data beginning at selected address
#define IP12B512_WRITE 0x02 // Write memory data beginning at selected address
#define IP12B512_RDSR  0x05 // Read status register (not implemented)
#define IP12B512_WRSR  0x01 // Write status register
#define IP12B512_RDMI  0x0E // Read Memory Size

class IP12B512
{
    public:
        IP12B512(
            PinName pin_mosi, 
            PinName pin_miso, 
            PinName pin_sclk, 
            PinName pin_cs
        );
        void Write(uint16_t addr, uint8_t data);
        void StreamWrite(uint16_t addr, uint8_t *data, uint32_t size);
        uint8_t Read(uint16_t addr);
        void StreamRead(uint16_t addr, uint8_t *data, uint32_t size);
        void ClearAll();
        uint32_t GetRamSize();

    private:
        SPI _device;
        DigitalOut _cs;
};

#endif