H7R3 External Memory Loader Issues - Macronix NOR Flash
- August 14, 2025
- 2 replies
- 698 views
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?
