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

Help Wanted: nRF52840 QSPI + FatFS to Winbond W25N01GV

Looking for help creating an example similar to the usbd_msc example that works with the W25N01GV. Currently using SDK 15.0. Would like to see this work with FatFS or possibly another alternative better suited for flash. Please inquire in direct message here. Thanks!

Parents
  • Using the basic QSPI examples to talk to the W25N01GV is never actually writing to backing flash, as you already determined (it wouldn't persist across power cycles). For one, the W25N01GV boots with all pages write-protected via the BP bits of the Protection Register (Status Register 1). This must be cleared before any persistent writes (technically, Page Program operations) can succeed. If you checked the P-FAIL bit of Status Register 3, you'd likely find it set high, if the write was truly attempted at all.

    I've been able to drag the W25N01GV through most of its capability via extensive use of CINSTR, though I'm still only able to operate it via FASTREAD/PP 1x interfaces, and can only write 512 bytes to each 2048 byte NAND page. Look at the interfaces implemented by the nrRF52840 and the W25N01GV, and they quite clearly don't match up. Throw away the SDK's QSPI driver, save to use it as a map to QSPI HAL. You then must look at what the Winbond needs sent, see if there's anything that matches it in the nRF52840. There are few matches, so expect to implement most things with CINSTR.

    Good luck!

Reply
  • Using the basic QSPI examples to talk to the W25N01GV is never actually writing to backing flash, as you already determined (it wouldn't persist across power cycles). For one, the W25N01GV boots with all pages write-protected via the BP bits of the Protection Register (Status Register 1). This must be cleared before any persistent writes (technically, Page Program operations) can succeed. If you checked the P-FAIL bit of Status Register 3, you'd likely find it set high, if the write was truly attempted at all.

    I've been able to drag the W25N01GV through most of its capability via extensive use of CINSTR, though I'm still only able to operate it via FASTREAD/PP 1x interfaces, and can only write 512 bytes to each 2048 byte NAND page. Look at the interfaces implemented by the nrRF52840 and the W25N01GV, and they quite clearly don't match up. Throw away the SDK's QSPI driver, save to use it as a map to QSPI HAL. You then must look at what the Winbond needs sent, see if there's anything that matches it in the nRF52840. There are few matches, so expect to implement most things with CINSTR.

    Good luck!

Children
No Data
Related