v1.0 - First release
v1.0.1 - Robustness enhancement
MB85RC from Fujitsu is a I2C Ferroelectric Random Access Memory (FRAM). Read/write endurance for each memory slot : 10^12 cycles. 16 bit adresses, 8 bits data slots.
Supports 64K, 128K, 256K & 512K devices. Works for 1M devices when considering each device as 2 differents 512K devices (see datasheet: 17 bits addresses of which MSB is replacing A0 device address bit).
MB85RCxxxx Fujitsu's page
- Manage single bit (read, set, clear, toggle) from a byte
- Write one 8-bits, 16-bits or 32-bits value
- Write one array of bytes
- Read one 8-bits, 16-bits or 32-bits value
- Read one array of bytes (up to 256 per call - maximum supported by Arduino's Wire lib)
- Get device information
- 1: Manufacturer ID
- 2: Product ID
- 3: Density code
- 4: Density human readable
- Manage write protect pin
- Erase memory (set all chip to 0x00)
- Debug mode manageable from header file
Devices | Information |
---|---|
MB85RC64A | datasheet |
Manufacturer: 0x00A, ProductID: 0x???, DensityCode: 0x03, Maxaddress: 8192, Density: 64, R/W cycles: 10^12 | |
MB85RC128A | datasheet |
Manufacturer: 0x00A, ProductID: 0x???, DensityCode: 0x04, Maxaddress: 16384, Density: 128, R/W cycles: 10^12 | |
MB85RC256V | datasheet |
Manufacturer: 0x00A, ProductID: 0x510, DensityCode: 0x05, Maxaddress: 32768, Density: 256, R/W cycles: 10^12 | |
MB85RC512T | datasheet |
Manufacturer: 0x00A, ProductID: 0x658, DensityCode: 0x06, Maxaddress: 65536, Density: 512, R/W cycles: 10^13 | |
MB85RC1MT | datasheet |
Manufacturer: 0x00A, ProductID: 0x758, DensityCode: 0x07, Maxaddress: 131072, Density: 1024, R/W cycles: 10^13 |
Devices address : b1010 + A2 + A1 + A0.
All devices are pulling down internaly A2, A1 & A0. Default address is b1010000 (0x50) - exception 1M chips which seems to be a double 512K devices in a single package
The error management is eased by returning a byte value for almost each method. Most of the time, this is the status code from Wire.endTransmission() function.
- 0: success
- 1: data too long to fit in transmit buffer
- 2: received NACK on transmit of address
- 3: received NACK on transmit of data
- 4: other error
- 5: Not referenced ID
- 7: memory device unidentified
- 8: number of bytes asked to read null
- 9: bit position out of range
- 10: not permitted operation
- Tested only against MB85RC256V - breakout board from Adafruit http://www.adafruit.com/product/1895
- Tested on Arduino Mega with Arduino IDE 1.0.5
- Please comment about other devices (Memory & Arduino Boards)