2025-08-14 2:00 PM
Hi!
I have a custom PCB with H7R3Z8T6 & MX25L12833F (16MB Marconix NOR-Flash) hooked up with XSPI1 (Quad SPI). I have been having a very difficult time programming the external memory with the External Loader in CubeIDE.
I have followed a forum post (https://community.st.com/t5/stm32-mcus/how-to-create-an-external-flash-loader-for-an-stm32h7rs/ta-p/742005) as a guide to getting started (also https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/external_QSPI_loader.html). The only real difference between the guide and my project is I am powering the memory with 3.3V and therefore did not enable HSLV option byte.
My issue is that when I flash the Appli firmware, it fails to verify: (Data mismatch found at address 0x90000002 (byte = 0x00 instead of 0x01). When I read the 0x9... register in CubeProgrammer, it is all zeros until ~0x9003XXXX, after which 0xFFFFFFFF is read (see screenshot below). The extact register where 0xFFFFFF03 is read varies, it changes every time I re-read the memory.
My inital impression was that as long as I had chosen 'Macronix' in the XSPI settings, and configured the clk + other parameters correctly, the auto generated CubeMX external loader & NOR-SFDP would take care of the rest.
Has anyone else experinced anything similar?
2025-08-15 1:41 AM
Hello @UCAC and welcome to the community;
What is the frequency of xspi?
Can you specify which curves you are observing on the oscilloscope?
I recommend you to refer to AN5050 precisely 7 OCTOSPI application examples and 8 XSPI application example configuration with STM32CubeMX sections.
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.