Marzogh/SPIMemory: Arduino Library for SPI Flash memory chips
Authors/Creators
- 1. @ChipsnCode
- 2. @Sensirion
- 3. University of Szeged
Description
<hr> <hr>Formerly known as SPIFlash.
Please report any bugs in issues
<hr> Arduino library for Flash Memory Chips (SPI based only)<sup> Download the latest stable release (v3.2.0) from <a href = "https://github.com/Marzogh/SPIMemory/releases/latest">here</a>. Please report any bugs in issues.</sup>
This Arduino library is for use with flash memory chips that communicate using the SPI protocol. In its current form it supports identifying the flash chip and its various features; automatic address allocation and management; writing and reading a number of different types of data, ranging from 8-bit to 32-bit (signed and unsigned) values, floats, Strings, arrays of bytes/chars and structs to and from various locations; sector, block and chip erase; and powering down for low power operation.
Compatibility Arduino IDEs supported (actually tested with)- IDE v1.5.x
- IDE v1.6.0-v1.6.5
- IDE v1.6.9-v1.6.12
- IDE v1.8.1-v1.8.5
- ATmega328P (Arduino Uno, Arduino Micro, Arduino Fio, Arduino Nano)
- ATmega32u4 (Arduino Leonardo, Arduino Fio v3)
- ATmega2560 (Arduino Mega)
- ATSAMD21G18 ARM Cortex M0+ (Adafruit Feather M0, Adafruit Feather M0 Express)
- AT91SAM3X8E ARM Cortex M3 (Arduino Due)
- ATSAMD51J19 ARM Cortex M4 (Adafruit Metro M4)
- STM32F091RCT6 (Nucleo-F091RC)
- ESP8266 Boards (Adafruit ESP8266 Feather)
- Simblee Boards (Sparkfun Simblee)
- ESP32 Boards (Tested on the Adafruit ESP32 Feather) The library is known to work with the ESP32 core as of the commit <a href = "https://github.com/espressif/arduino-esp32/tree/25dff4f044151f7f766c64b9d2ad90398472e6b3">25dff4f</a> on 05.04.2018.
ESP32 support will remain in beta till the ESP32 core can be installed via the Arduino boards manager.NOTE: ESP32 boards usually have an SPI Flash already attached to their SS pin, so the user has to declare the ChipSelect pin being used when the constructor is declared - for exampleSPIFlash flash(33);
- Winbond
- W25Q16BV
- W25Q64FV
- W25Q80BV
- W25Q256FV
- Microchip
- SST25VF064C
- SST26VF064B
- Cypress/Spansion
- S25FL032P
- S25FL116K
- S25FL127S
- ON Semiconductor
- LE25U40CMC
- AMIC
- A25L512A0
- Micron
- M25P40
- Adesto
- AT25SF041
- Winbond (All SPI Flash chips)
- Microchip (SST25 & SST26 series)
- Cypress/Spansion (S25FL series)
- Any flash memory that is compatible with the SFDP standard as defined in JESD216B
- Open the Arduino IDE.
- Go to Sketch > Include Library > Manage libraries.
- Search for SPIMemory.
- Install the latest version.
- Click on the 'Clone or download' button above the list of files on this <a href = "https://github.com/Marzogh/SPIMemory/tree/master"> page </a>.
- Select Download ZIP. A .zip file will download to your computer.
- Unzip the archive and rename resulting folder to 'SPIMemory'
- Move the folder to your libraries folder (~/sketches/libraries)
Library name changed to SPIMemory
The library now gathers sfdp information through _chipID(). SFDP information is collected when available, otherwise the library defaults to using code from v3.1.0 to ID the chip.
- The library now does the following - if the flash memory chip is compatible with the SFDP standard
- Identifies the flash memory chip using the Serial Flash Discoverable Parameters standard. (JESD216B)
- Identifies the following opcodes from the SFDP tables and uses them to read/write data:
- eraseSector, eraseBlock32K, eraseBlock64K - Reads timing information from SFDP to accurately time the following operations:
- eraseSector, eraseBlock32K, eraseBlock64K
All flash memories compatible with the SFDP standard (as at JESD216B) should be compatible with the library
LE25U40CMC from ON Semiconductor
- A25L512A0 from AMIC
- M25P40 from Micron
- AT25SF041 from Adesto
- S25FL032P from Cypress/Spansion
- ATSAMD51J19 ARM Cortex M4 (Adafruit Metro M4)
Files
Marzogh/SPIMemory-v3.2.0.zip
Files
(3.3 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:94ed218e552fcb4ceebb5e11ad8eaba4
|
3.3 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/Marzogh/SPIMemory/tree/v3.2.0 (URL)