IP12B512 class for comunicating with the IPSiLog IP12B512 SPI RAM

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