SPIMemory library - Formerly SPIFlash - now supports SPI FRAM as well! :)

Just pushed an update through to v3.3.0 with the following changes:

  • The SPIMemory now supports SPI FRAM (one chip for now, but the list is going to grow. :slight_smile: )

Bugs squashed:

  • Fixed a major bug causing issues with page boundaries in writeAnything and writeStr. Thanks for your help @jacky4566 (Issue #151)
  • Fixed a major bug with reading Strings (Issue #143)
  • Fixes a bug by initialising the SPIBusState to false
  • Fixes bug that causes ballooning of pagesize when SFDP is not read. This is because no default _pageSize value was set in this scenario. This has now been fixed.
  • Fixes a major bug in how SFDP data is used to calculate chip capacity. The previous version of the library returned a wrong value. This has now been fixed. Refer to comments in _getSFDPFlashParam(void) for further details.

Enhancements:

  • Reduce SRAM footprint when running Diagnostics.ino. Thanks @rambo (PR #157)
  • Officially supports the ESP32 (tested on the ESP32 Feather)
  • Now supports FRAM memory chips via the SPIFram constructor
  • Changed Diagnostics output in _chipID() to match situation better.
  • Fixed _chipID() to run more efficiently.

New flash memory chips supported:

  • GD25Q16C from Giga devices (Used on the Adafruit ItsyBitsy M0 Express)
  • W25Q64JV from Winbond
  • SST26VF016B & SST26VF032B from Microchip.

New Fram memory chips supported:

  • FM25W256 from Cypress

Work on proper documentation continues. As polaroi8d pointed out here, the old ReadMe was getting far too unwieldy and the Github Wiki is not the easiest thing to poke around. I hope to have the documentation done soon - (Rst + Sphinx). Check out the progress of the documentation here! Any recommendations are welcome 8)