Seeking Architecture for USB MSC on NAND Flash (MT29F4G01ABAFDWB)

Hello,

I'm working on a project using the MT29F4G01ABAFDWB NAND flash, and I've developed drivers for this NAND flash on Zephyr. I’ve also successfully implemented FATFS on it, using this flash management repository as a reference. Since Zephyr doesn’t provide direct support for NAND flash, I had to adapt the setup myself.

Now, I’m looking to implement USB Mass Storage Class (MSC) on this NAND flash. please provide a basic architecture or an approach to achieve this? Specifically, I’m interested in the integration steps and any potential modifications required for handling NAND flash via USB MSC in Zephyr.
we have connected our nand flash with spi, but build in flash connected via qspi.

Parents
  • Hi

    The QSPI peripheral on the nRF52840 is designed for XIP operations, and thus only really with NOR flash devices in mind, so we don't have much experience in getting NAND devices up and running with the nRF52840. 

    I'm afraid we don't have a driver for this and thus not much input to provide on the architecture or approach to do this. In the past the only option I've seen to use NAND devices has been by using custom instructions from the QSPI to communicate with the NAND flash correctly, but using the quad feature and speeds won't be achievable this way since custom instructions only use regular SPI.

    Best regards,

    Simon

  • Thank you for your assistance!

    If you're interested, here's my GitHub repository where I've implemented FATFS and written a driver for my custom NAND flash: https://github.com/Tejas1017/nordic-learning/tree/main/implemented_fatfs. Now, I would like to implement USB MSC for this setup. Could you please review my code and provide any guidance on how to proceed?

    I've also tried using Zephyr's sample code for USB MSC with my NAND flash, but I believe the issue is that Zephyr is defaulting to its own diskio functions. In my case, as you can see in my repository, I've created custom versions of these functions, and I want Zephyr to use my implementations instead. Could you please assist me with this?

Reply Children
No Data
Related