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

QSPI: problems with a MX25R1635F or how to initialize the port pins?

Hi

data sheet of the nRF52840 states that the QSPI port pins should be initialized to "high drive".

I've experimented a little bit because I have problems with a Macronix Flash (MX25R1635F) which does not reliably work.  The DK-Chip from Macronix (MX25R6435F) is not a problem with the same firmware and a flash from OnSemi (LE25S161) works on our hardware as well.

To make the story short: I can do RDID of the MX25R1635F, but reading the status/config register of the MX25R1635F always shows zero.  Erasing also does not work.  The OnSemi works without problems.

I've already used all different SPI read/write modes, no success.  I've also tried to init the port pins with pullup.  Not a good idea, because the program than hangs.

So the question: how to setup the QSPI port pins properly?

Thanks & regards

Hardy

Parents
  • Hi Hardy

    Which pins are you using on your hardware for QSPI? The QSPI peripheral example should show you how the default QSPI pins are configured (in nrf_drv_qspi.h and pca10056.h), and it shouldn't be required to do anything more than edit the QSPI_PIN defines  to what GPIOs you'd like, however it's recommended not to use the ones that are recommended for low frequency and standard drive pins in the pin assignments of the nRF52840 PS.

    Best regards,

    Simon

  • Hi Simon

    following definitions:

    #define EXT_FLASH_CS       NRF_GPIO_PIN_MAP(0,17)
    #define EXT_FLASH_SCK      NRF_GPIO_PIN_MAP(0,19)
    #define EXT_FLASH_IO0      NRF_GPIO_PIN_MAP(0,20)
    #define EXT_FLASH_IO1      NRF_GPIO_PIN_MAP(0,21)
    #define EXT_FLASH_IO2      NRF_GPIO_PIN_MAP(0,22)
    #define EXT_FLASH_IO3      NRF_GPIO_PIN_MAP(0,23)

    So I expect we are safe in this.  Perhaps I´m too stupid, bu I cannot find the actual port initialization..

    Do you have a pointer for me please.

    Regards

    Hardy

Reply
  • Hi Simon

    following definitions:

    #define EXT_FLASH_CS       NRF_GPIO_PIN_MAP(0,17)
    #define EXT_FLASH_SCK      NRF_GPIO_PIN_MAP(0,19)
    #define EXT_FLASH_IO0      NRF_GPIO_PIN_MAP(0,20)
    #define EXT_FLASH_IO1      NRF_GPIO_PIN_MAP(0,21)
    #define EXT_FLASH_IO2      NRF_GPIO_PIN_MAP(0,22)
    #define EXT_FLASH_IO3      NRF_GPIO_PIN_MAP(0,23)

    So I expect we are safe in this.  Perhaps I´m too stupid, bu I cannot find the actual port initialization..

    Do you have a pointer for me please.

    Regards

    Hardy

Children
No Data
Related