MB85_FRAM  v1.0.6
Arduino Library for the MB85FRAM
Arduino Library Header to access the MB85 Family of SRAM Memories

Description

Class definition header for the Fujitsu MB85_FRAM family of memories. The I2C M85xxx memories are described at http://www.fujitsu.com/global/products/devices/semiconductor/memory/fram/lineup/index.html and the list is detailed below:

MB85RC512T 512Kbit ( 64Kx8bit) ManufacturerID 0x00A, Product ID = 0x658 (Density = 0x6)
MB85RC256V 256Kbit ( 32Kx8bit) ManufacturerID 0x00A, Product ID = 0x510 (Density = 0x5)
MB85RC128A 128Kbit ( 16Kx8bit) No ManufacturerID/productID or Density values
MB85RC64TA 64Kbit ( 8Kx8bit) No ManufacturerID/productID or Density values (1.8 to 3.6V)
MB85RC64A 64Kbit ( 8Kx8bit) No ManufacturerID/productID or Density values (2.7 to 3.6V)
MB85RC64V 64Kbit ( 8Kx8bit) No ManufacturerID/productID or Density values (3.0 to 5.5V)

  • unsupported memories –

    MB85RC1MT 1Mbit (128Kx8bit) ManufacturerID 0x00A, Product ID = 0x758 (Density = 0x7) (unsp)
    MB85RC16 16Kbit ( 2Kx8bit) No ManufacturerID/productID or Density values 1 Address byte(unsp)
    MB85RC16V 16Kbit ( 2Kx8bit) No ManufacturerID/productID or Density values 1 Address byte(unsp)
    MB85RC04V 4Kbit ( 512x8bit) No ManufacturerID/productID or Density values 1 Address byte(unsp)

    There is no direct means of identifying the various chips (apart from the top 3 in the list), so a software method is used which makes use of the fact that writing past the end of memory automatically wraps back around to the beginning. Thus if we write something 1 byte past the end of a chip's address range then byte 0 of the memory will have changed.

doxygen configuration

This library is built with the standard "Doxyfile", which is located at https://github.com/Zanduino/Common/blob/main/Doxygen. As described on that page, there are only 5 environment variables used, and these are set in the project's actions file, located at https://github.com/Zanduino/MB85_FRAM/blob/master/.github/workflows/ci-doxygen.yml Edit this file and set the 5 variables - PRETTYNAME, PROJECT_NAME, PROJECT_NUMBER, PROJECT_BRIEF and PROJECT_LOGO so that these values are used in the doxygen documentation. The local copy of the doxyfile should be in the project's root directory in order to do local doxygen testing, but the file is ignored on upload to GitHub.

clang-format

Part of the GitHub actions for CI is running every source file through "clang-format" to ensure that coding formatting is done the same for all files. The configuration file ".clang-format" is located at https://github.com/Zanduino/Common/tree/main/clang-format and this is used for CI tests when pushing to GitHub. The local file, if present in the root directory, is ignored when committing and uploading.

GNU General Public License v3.0

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author

Written by Arnd Arnd@.nosp@m.Zand.nosp@m.uino..nosp@m.Com at https://www.github.com/SV-Zanshin

Changelog

VersionDate Developer Comments
1.0.6 2022-10-02 LMFLox Issue #7 - corrected computation of chip type
1.0.5 2019-01-26 SV-Zanshin Issue #4 - converted documentation to doxygen
1.0.4 2018-07-22 SV-Zanshin Corrected I2C Datatypes
1.0.4 2018-07-08 SV-Zanshin Corrected and cleaned up c++ code formatting
1.0.4 2018-07-02 SV-Zanshin Added guard code against multiple I2C Speed definitions
1.0.4 2018-06-29 SV-Zanshin Issue #3 added support for faster I2C bus speeds
1.0.2a 2017-09-06 SV-Zanshin Added fillMemory() function as a template
1.0.1 2017-09-06 SV-Zanshin Completed testing for large structures
1.0.1b 2017-09-06 SV-Zanshin Allow structures > 32 bytes, optimized memory use
1.0.0b 2017-09-04 SV-Zanshin Prepared for release, final testing
1.0.0a 2017-08-27 SV-Zanshin Started coding