Hotboards_eeprom.cpp - Driver to control serial (spi) eeprom memories, The memories are compatibles amount the manufactures Microchip, Atmel and ST, and of course you can control Hotboards eeprom boards (http://hotboards.org)
Dependents: Hotboards_eeprom_write_byte Hotboards_eeprom_write_array
Diff: Hotboards_eeprom.h
- Revision:
- 0:38fad00cc45b
diff -r 000000000000 -r 38fad00cc45b Hotboards_eeprom.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Hotboards_eeprom.h Fri Jan 29 00:46:08 2016 +0000
@@ -0,0 +1,56 @@
+/*
+ Hotboards_eeprom.h - Driver to control serial (spi) eeprom memories, The memories are
+ compatibles amount the manufactures Microchip, Atmel and ST, and of course you can control
+ Hotboards eeprom board (http://hotboards.org)
+ Created by Diego Perez, January 16, 2016.
+ Released into the public domain.
+
+ Density: 1Kbit | 2Kbit | 4Kbit | 8Kbit | 16Kbit | 32Kbit | 64Kbit | 128Kbit | 256Kbit | 512Kbit | 1 Mbit
+ Part: 25xx010 | 25xx020 | 25xx040 | 25xx080 | 25xx160 | 25xx320 | 25xx640 | 25xx128 | 25xx256 | 25xx512 | 25xx1024
+ Page/Byte: 16 | 16 | 16 | 16(32) | 16(32) | 32 | 32 | 64 | 64 | 128 | 256
+ Addr/Bits: 7 | 8 | 9 | 16 | 16 | 16 | 16 | 16 | 16 | 16
+*/
+
+#ifndef Hotboards_eeprom_h
+#define Hotboards_eeprom_h
+
+#include "mbed.h"
+
+//EEPROM size in kilobits. EEPROM part numbers are usually designated in k-bits.
+typedef enum
+{
+ HT_EEPROM25xx_1Kb = 0,
+ HT_EEPROM25xx_2Kb,
+ HT_EEPROM25xx_4Kb,
+ HT_EEPROM25xx_8Kb,
+ HT_EEPROM25xx_16Kb,
+ HT_EEPROM25xx_32Kb,
+ HT_EEPROM25xx_64Kb,
+ HT_EEPROM25xx_128Kb,
+ HT_EEPROM25xx_256Kb,
+ HT_EEPROM25xx_512Kb,
+ HT_EEPROM25xx_1Mb
+}_eEEPROM;
+
+class Hotboards_eeprom
+{
+ public :
+ Hotboards_eeprom( SPI &spi, PinName cs, uint8_t type );
+ void init( void );
+ void write( uint32_t address, uint8_t data );
+ void write( uint32_t address, uint8_t *data, uint16_t size );
+ uint8_t read( uint32_t address );
+ void read( uint32_t address, uint8_t *data, uint16_t size );
+
+ protected :
+ void sendAddress( uint8_t cmd, uint32_t address );
+ void writePage( uint32_t address, uint8_t *data, uint16_t size );
+
+ SPI _spi;
+ DigitalOut _cs_pin;
+ uint8_t _type;
+ uint16_t _page;
+ uint32_t _density;
+};
+
+#endif
Hotboards EEPROM