SPI Ferroelectric Random Access Memory (FRAM). Read/write endurance for each memory slot : 10^13 cycles and more. Supports 64K, 128K, 256K, 512K, 1M and 2M chips. Some of these memories chips can work up to 25MHz in SPI Mode 0 or Mode 3.
- Device settings detection (if Device ID feature is available)
- Write one 8-bits, 16-bits or 32-bits value
- Read one 8-bits, 16-bits or 32-bits value
- Get device information
- 1: Manufacturer ID
- 2: Product ID
- 3: Density code
- 4: Density human readable
- 5: Define the last memory address of the chip
- Get the last memory address
- Manage write protect pin
- Erase memory (set all chip to 0x00) and stop if error on write
- Prevent cycling through memory map to avoid unwanted overwrites
- Debug mode manageable from header file
- v0.8 - probably a working revision (Note: storage incompatible with v0.7 from Christophe)
- v0.7 - Working version with bugs
Please note, if you activate DEBUG_TRACE & CHIP_TRACE in .h the performances are slower than it should be. Serial trace takes times! Avoid the use of DEBUG_TRACE & CHIP_TRACE for a normal usage.
Fujitsu FRAM - manufacturer code 0x04 - Fujitsu page
Model | Density (kB) | Device ID feature | Density code | Addressing | Rated Speed | Tested |
---|---|---|---|---|---|---|
MB85RS64V | 64 | Yes | 0x03 | 16 bits | 20MHz | No |
MB85RS64T | 64 | Yes | 0x03 | 16 bits | 10MHz | Yes |
MB85RS128B | 128 | Yes | 0x04 | 16 bits | No | |
MB85RS128TY | 128 | Yes | 0x04 | 16 bits | 40MHz | No |
MB85RS256B | 256 | Yes | 0x05 | 16 bits | No | |
MB85RS512T | 512 | Yes | 0x06 | 16 bits | No | |
MB85RS1MT | 1024 | Yes | 0x07 | 24 bits | 30MHz | Yes |
MB85RS2MT | 2048 | Yes | 0x08 | 24 bits | 25/40MHz | No |
- Functions revision and cleaning
- Minimize code's size and reduce Serial outputs and ERRORS to reduce memory footprint
- Change Wire I2C communication into transactionnal SPI
- Change I2C Addressing into SPI 32bit max addressing
- Add OP_CODE for SPI FRAM chips
- Creation of wroking test example / benchmark speed
- Add High Speed Reading Mode and Sleep Mode
- Tests on MB85RS1MT SPI
- Update/change examples
- Read / Write an array of bytes
- Read / Write one array of shorts
- Getter for Max memory address and Last memory address used on read/write op
- v1.0 - First complete release
- v1.2 - Thinking about expand the lib to Cypress F-RAM chip
- Forked the repo and create the lib for M-RAM chips
Close to the complete release...
Christophe Persoz owns 1Mbit chips, that he presumably tested. I use MB85RS64T 64kBit chips, that seem to work. This library has been developped to work on ARM Teensy 3.2, 3.5 and above. It should be works on Arduino too, but I won't test it.
- Christophe Persoz wrote initial SPI version of this library that I forked (https://github.com/christophepersoz/FRAM_MB85RS_SPI)
- Sosandroid who wrote the I2C version of this library that I forked for SPI (https://github.com/sosandroid/FRAM_MB85RC_I2C)
- Kevin Townsend wrote the very first Adafruit Lib of which this one is forked.
- All testers who helped to improve this library