esp32 and esp8266: FAT filesystem on external SPI flash memory
In this article, we are going to integrate into our ESP32 or esp8266 an external flash memory in addition to the internal one.
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. NAND flash and NOR flash use the same cell design, consisting of floating gate MOSFETs. They differ at the circuit level: in NAND flash, the relationship between the bit line and the word lines resembles a NAND gate; in NOR flash, it resembles a NOR gate; this depends on whether the state of the bit line or word lines is pulled high or low.
In this article, we are going to integrate into our ESP32 or esp8266 an external flash memory in addition to the internal one.
As for other microcontrollers, I want to simplify the use of SPI Flash memory to Arduino NANO 33 IoT, so I create a simple PCB shield to add it fastest.
Arduino SAMD devices don’t have an internal SPI flash memory, but it is clear that a fast and small memory like that can be very useful, so we are to talk again (and again and again and again…) about storage systems.
We continue to explore the rp2040 devices, very interesting microcontrollers. All prototype boards come with integrated SPI Flash. Raspberry Pi selected the LittleFS filesystem to manage this storage, a good compromise between functionality and performance.
For devices like Arduino UNO, we can use the SPI Flash with a basic and very light library, but It can manage a good quantity of memory (from 256Kb to 64Mb), and it’s enough for a lot of projects.