This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Suitable FileSystem for external SLC NAND Flash memory

Dear all,

I am working on an nRF52840 project that communicates with an external NAND Flash memory and I am looking for a suitable file system for my external flash memory.

The memory I use is a 2Gb (256Mbytes) SPI SLC NAND Flash by Micron (MT29F2G01). I have successfully managed to write, read and erase data in flash without issues.

Now I need something more...elegant and organized so that I can use my Flash memory with files and I am searching for a suitable file system for this cause.

  After a lot of searching I found the following possible solutions but, since I am not an expert on the file system subject  I would need a liitle (lot of) your help and experience  Slight smile.

  • FLogFS                      (link)
  • usbd_msc example   (link)
  • emFile                        (link)

FLogFS seems to be the most suitable since the memory that is used is an MT29F1 series SPI SLC NAND.

usbd_msc example uses QSPI to communicate with the onboard external memory but the memory is NOR and not NAND. So I don't know if that makes sense mentioning it

emFile supports the memory chip I use but it is difficult for me to understand how to use emFile with nRF52840 and where to start from

  • I'm also very interested in this topic, working on a system that will record data to a Toshiba (Kioxia) TC58CYG1S3HRAIG SPI NAND Flash.  Any suggestions on which of the above file systems might be most appropriate?  I have also read a little about YAFFS2 (yaffs.net), but the license is GPL V2, and we cannot expose our custom application.  Commercial licenses are apparently available for something around 10K GBP, but that seems really expensive.

    Any suggestions on how to integrate a NAND Flash File system with a "bare-metal" nRF52840 application would be greatly appreciated.

  • Hi,

    I'm not sure but I assume that the USBD example will support the NAND flash if the QSPI instruction set is similar to the NOR flash that we use in the example. I don't have any experience with the other file systems so I can't really give any recommendations on them. Maybe someone in the forum can? Slight smile

  • A quick update. FLogFS is not a file system actually. It supports wear leveling and bad block allocation which is great but you cannot create directories etc.

    Also, I came across littleFS This FS  has all the above plus you can create directories etc. I still have not cleared things out though. If someone has experience with these FS please share your experience

  • Hello,

    The documentation provides a set of commands that the QSPI module uses (table 80, nRF52840_PS_v1.1). But if I understand correctly, the entire set of commands is not needed. Maybe there is a minimum that needs to be ensured for compatibility?


    NAND cards are very good in terms of chip size / capacity. And the presence of a hardware mechanism for leveling wear gives a significant plus.

  • I try demo project with emFILE from SEGGER. 

    Advantages:
    - The speed of the driver is higher than that proposed in the SDK;
    - The wear leveling mechanism is used. I checked by reading the memory natively after the procedures: full formatting - writing a test file. Each time the file table was physically located in a new sector;

    Disadvantages:
    - the cost is quite high, since it requires the purchase of a file system, a NRA driver, and possibly an operating system;

    but overall very pleased with that product.
    While management is thinking about acquiring, I am looking for alternatives for memory chips.

Related