IP12B512 class for comunicating with the IPSiLog IP12B512 SPI RAM
Diff: IP12B512.h
- Revision:
- 0:35077a3db00c
- Child:
- 2:a0029473868c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IP12B512.h Fri Nov 04 07:58:20 2016 +0000 @@ -0,0 +1,34 @@ +#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 \ No newline at end of file