cancel
Showing results for 
Search instead for 
Did you mean: 

Need Guidance on QSPI External Loader Issue with Custom Board Using STM32H750

Geethat
Associate II

We are currently working on a project using the STM32H750IBT6 microcontroller interfaced with a single-bank Quad SPI NOR Flash (MT25QL512ABB) on our custom board. The QSPI interface is operational.

However, we are facing an issue with the external loader. While the same external loader setup works correctly with the STM32H750 development board using the same two MT25QL512ABB Flash memories, it fails to function on our custom board.

Development board QSPI schematic:

Screenshot (1).png

 Our custom board QSPI schematic:

Screenshot (2).png

 For reference, we are used the external loader implementation for development board from the following link:

 https://controllerstech.com/w25q-flash-series-part-8-quadspi-external-loader/ 

We request your support in:

  • Verifying if our schematic connections for the QSPI interface may be contributing to the issue.

  • Identifying any possible hardware or configuration-related causes for the external loader failure.

9 REPLIES 9
KDJEM.1
ST Employee

Hello @Geethat and welcome to the community;

 

Have you tested the MT25L01G_STM32H750B-DISCO external loader in STM32CubeProgrammer with your customer board?

KDJEM1_0-1748266313941.png

I think, you can use the external loader "MT25TL01G_STM32H750B-DISCO" [support memory Size = 128M] for your QSPI memory MT25QL512ABB8ESF-0SIT [memory Size = 64B] because the size of your memory is less than the external loader supported by STM32CubeProgrammer.

For hardware checking, I recommend you to refer to AN4938  precisely section "9.4.3 Quad serial parallel interface (QUADSPI)"

KDJEM1_1-1748266667417.png

 

I hope this help you.

Thank 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.

Yes, we have tested the external loader MT25TL01G_STM32H750B-DISCO in STM32CubeProgrammer with our custom board, but it did not work.

Could you please advise on the next steps? and also verify our custom board schematic whether it is correct or not.

The errors we have received are as follows:

Media (3).jpeg

 

Media (4).jpeg

 

What pins on the STM32 side? Enumerate what you built so we can validate.

The DISCO/DK board loader expects a pair of parts which interleave, it won't work with half the parts.

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

For the development kit, the QSPI connection pin names can be directly found in the email description.
For my custom board, you can refer to the image below for the QSPI pin details which are highlighted.

Screenshot 2025-05-28 151213.png

thank you. 

for more information you can also find my colleague Post link is: Issue with Single QSPI Flash Functionality Using E... - STMicroelectronics Community




Hello @Geethat;

 

You’re used (PB2, PB6, PD11, PD13, PE2, and PF9) a different QSPI pins used by STM32H750B-DK (PF10, PF9, PG6, PD11, PF7, and PF6). So, you can’t run MT25L01G_STM32H750B-DISCO external loader in STM32CubeProgrammer.

I recommend you to look at MOOC - External QSPI loader how to - YouTube and get inspired to create your own external loader.

 

Thank 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.

could you please clarify what exactly is meant by "pair of parts"? Are you referring to the QuadSPI flash device used in our schematic?

If so, we would appreciate it if you could review our current QuadSPI schematic and explain in detail how the interleaving is being implemented, and why the setup would not function correctly .

The loader for the discovery board is to load data into the QSPI, but it is builded for the board, and it needs to have 2 QSPI in the board and in the pins that are present in the board.

For your custom design, you have changed the pins between MCU and QSPI and also you have used only one QSPI instead of two.

Basically as @KDJEM.1 stated, you need to build your own loader since your hardware is not for the loader that works for the discovery board.

 

Greetings

I mean the LOADER is coded with the expectation for TWO MT25QL512 parts, or a pair of the same die in the MT25TL01G package (SOIC16W).  I built a loader that uses HALF the pins, ie in SINGLE BANK rather than DUAL BANK mode. The DUAL methodology is to mirror the interface, and allow EVEN bytes come from the first chip, and ODD bytes come from the second chip, the pins allowing you to double the effective band-width

PF10, PG6, PD11, PF9, PF7, PF6, PH2, PH3, PG9, PG14 (STM32H745I-DISCO)

https://github.com/cturvey/stm32extldr/tree/main/h7_mt25ql512a

https://github.com/cturvey/stm32extldr/blob/main/h7_mt25ql512a/CLIVEONE-MT25QL512A_STM32H7XX-PF10-PG6-PD11-PF9-PF7-PF6.stldr

You've used

PB2,PB6,PD11,PF9,PE2,PD13

Not sure I've built that combination, but could, request via Venmo/PayPal

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

 Thanks for all the support, the issue has been resolved with changing the dummy cycles of qflash from 10 to 8, now iam able to read and write to qflash with external loader attached