I am revisiting some of my design habits, and one of them is under serious scrutiny: the go-to SPI-based storage device is (micro)SD cards, for their price-to-capacity ratio and generally higher speeds.
Among the three major types of SPI-based storage devices - (micro)SD card, DataFlash and simpler 25Cxx
series SPI EEPROM (and also put built-in EEPROM on microcontrollers and 24Cxx
I2C EEPROM into consideration) which is the appropriate medium for the given use cases below? Bear in mind that I use all medium as raw block devices, so the "SD cards need a filesystem" argument does not stand.
Use cases:
- System configuration and calibration data. Examples: MAC address for the Ethernet interface, measured voltage of onboard voltage reference.
- Logs. Example: captured data from sensors.
- Code and code resources (too big to fit in the program memory or have to be carried portably.) Example: system updates, internationalization and localization strings, user interface resources, fonts.
- Security and digital rights management. Example: cryptographic keys (public and/or private, symmetric and/or asymmetric,) digital signatures.