cancel
Showing results for 
Search instead for 
Did you mean: 

NOR Flash memory in STM32H747I-Eval board

Sen_Koc
Associate

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;

1 ACCEPTED SOLUTION

Accepted Solutions

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

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

3 REPLIES 3

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

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
KDJEM.1
ST Employee

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

  

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Sen_Koc
Associate

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