Skip to main content
Visitor II
January 18, 2024
Solved

NOR Flash memory in STM32H747I-Eval board

  • January 18, 2024
  • 3 replies
  • 3488 views

Hi All,

 

I am trying to develop a loader application to load a firmware image on to the NOR flash memory using QUAD SPI. I am not sure about the NOR flash memory part available on the STM32H747I-eval board. There is only limited details on it as it obsolete.

 

I am planning to use the "1-Gbit twin Quad-SPI NOR flash memory or two 512-Mbit Quad-SPI NOR flash" as in the user manual. Assuming the part is Micron - MT25QL01GB it tried to erase a sector. But it did not work. I configured the M7 core for quad SPI. Below is my QSPI setting also attaching my main.c and QSPI files. I am new with QSPI and NOR Flash memories. Am I doing something wrong?  Your help appreciated!

Thanks,

Sen

hqspi.Instance = QUADSPI;

hqspi.Init.ClockPrescaler = 2;

hqspi.Init.FifoThreshold = 4;

hqspi.Init.SampleShifting = QSPI_SAMPLE_SHIFTING_NONE;

hqspi.Init.FlashSize = 25;

hqspi.Init.ChipSelectHighTime = QSPI_CS_HIGH_TIME_1_CYCLE;

hqspi.Init.ClockMode = QSPI_CLOCK_MODE_0;

hqspi.Init.FlashID = QSPI_FLASH_ID_1;

hqspi.Init.DualFlash = QSPI_DUALFLASH_DISABLE;

    This topic has been closed for replies.
    Best answer by Tesla DeLorean

    Why assume? Isn't there BSP code explicitly provided for the board?

    Review the parts mounted. Likely to be a pair of MT25L512 parts or a single MT25TL01G (two 512Mb die side by side, accessed 8-bit wide in DUAL mode)

    https://media-www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/serial-nor/mt25t/generation-b/mt25t_qlkt_l_01g_xbb_0.pdf

    https://github.com/STMicroelectronics/STM32CubeH7/blob/master/Drivers/BSP/STM32H747I-EVAL/stm32h747i_eval_qspi.c

    hqspi.Init.DualFlash = QSPI_DUALFLASH_ENABLE; // There are a pair of 512Mb die you're talking too in either case

    The EVAL board has a parallel NOR too, MT28EW128ABA1LPC-0SIT

    3 replies

    Graduate II
    January 18, 2024

    Why assume? Isn't there BSP code explicitly provided for the board?

    Review the parts mounted. Likely to be a pair of MT25L512 parts or a single MT25TL01G (two 512Mb die side by side, accessed 8-bit wide in DUAL mode)

    https://media-www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/serial-nor/mt25t/generation-b/mt25t_qlkt_l_01g_xbb_0.pdf

    https://github.com/STMicroelectronics/STM32CubeH7/blob/master/Drivers/BSP/STM32H747I-EVAL/stm32h747i_eval_qspi.c

    hqspi.Init.DualFlash = QSPI_DUALFLASH_ENABLE; // There are a pair of 512Mb die you're talking too in either case

    The EVAL board has a parallel NOR too, MT28EW128ABA1LPC-0SIT

    Technical Moderator
    January 19, 2024

    Hello @Sen_Koc and welcome to the community :),

    I recommend you to take a look to QSPI_MemoryMappedDual example and check the QuadSPI configuration. This example describes how to erase part of the QSPI memory, write data in IT mode and access to QSPI memory in memory-mapped dual mode to check the data in a forever loop. Note that, this application  has been tested with STM32H747I-EVAL.

    I hope this help you!

    Kaouthar

      

    Sen_KocAuthor
    Visitor II
    January 26, 2024

    Thanks @KDJEM.1 and @Tesla DeLorean  for your suggestions. I used the BSP files to communicate easily with the NOR Flash. The part mounted is a MT25TL01G. I was able to make my loader application working. Example QSPI_MemoryMappedDual is also a good reference.

    But I did not know that there are already many loaders available for several STM32 boards in CubeIDe as well as Cube programmer. So for those who are new to this and for those who want to save some time, please search for your board in list. My board was STM32h747i-Eval board with MT25T01G which is already listed in both CubeIDE and Cube programmer. But it was a good learning, "QSPI_flashloader_CSP" is my custom loader application.

     

    Sen_Koc_1-1706268571884.png

     

    Sen_Koc_0-1706268472972.png