2025-05-26 3:53 AM
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:
Our custom board QSPI schematic:
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.
2025-05-26 6:39 AM
Hello @Geethat and welcome to the community;
Have you tested the MT25L01G_STM32H750B-DISCO external loader in STM32CubeProgrammer with your customer board?
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)"
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.
2025-05-27 3:33 AM
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:
2025-05-27 4:10 AM
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.
2025-05-28 2:48 AM
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.
thank you.
for more information you can also find my colleague Post link is: Issue with Single QSPI Flash Functionality Using E... - STMicroelectronics Community
2025-05-28 4:03 AM
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.
2025-05-30 2:13 AM
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 .
2025-05-30 2:24 AM - edited 2025-05-30 2:24 AM
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
2025-06-01 3:00 PM - edited 2025-06-02 8:59 AM
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
You've used
PB2,PB6,PD11,PF9,PE2,PD13
Not sure I've built that combination, but could, request via Venmo/PayPal
2025-06-01 10:03 PM
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