2024-04-09 06:05 AM
Hello Everyone,
Is there any plan for ST to provide support drivers for the MX25L6433F serial NOR flash on the STM32H5 series of micros?
MX25L6433F is the flash used on the X-NUCLEO-GFX01M2.
Thanks.
2024-04-09 06:13 AM
MX25L6433F is also used in the X-NUCLEO-GFX02Z1 and it provides quad SPI.
2024-04-09 06:51 AM - edited 2024-04-09 07:17 AM
Hello @Kostas Papouis ,
I will escalate your request to the appropiate team through internal ticker number: 178608.
Meanwhile, you can create your own external loader by following the steps described in UM2237 (in 2.3.3 Developing customized loaders for external memory section).
How to implement and use your own external flash l... - STMicroelectronics Community
You can refer to this post which contains a useful link of MX25L6433F files (shared by Tesla).
2024-05-24 01:13 AM
Hello Imen and @Tesla DeLorean ,
I did research this and I think there are two options to generate an external loader on the STM32H562RGT6 and MX25L6433F?
1st option - Migrate the NUCLEO-U575ZI-Q flash loader project that is located at:
STM32Cube\Repository\Packs\STMicroelectronics\X-CUBE-DISPLAY\3.0.0\Projects\NUCLEO-U575ZI-Q\Applications\GFX02Z1_FlashLoader
This application is using the MX25L6433F.
2nd option - Use the stm32-external-loader contrib files to generate a the external loader. However I am not sure the drivers at the contrib repository are compatible with the STM32H5 series .
https://github.com/STMicroelectronics/stm32-external-loader/tree/contrib
Could you please confirm which is the best option?
Thanks.
2024-05-25 04:55 AM
I suspect the first option would probably be the easiest port.
I've built an H5 - MX25L / W25Q loader.
Do you have an enumeration of the pins you've used?
https://github.com/cturvey/stm32extldr/tree/main/h5_mx25l6433f
2024-05-25 05:58 AM
Hi @Tesla DeLorean ,
Yes, I do.
I use for data the IO [7:4] as described below:
PC1 - I/O4
PC2 - I/O5
PC3 - I/O6
PC0 - I/O7
PB4 - CLK
PC11 - CS
Would you be able to generate an external loader with this pin assigned?
Thank you !!
2024-05-25 06:21 AM - edited 2024-05-25 06:43 AM
I'm going to have to read the manual to see how I can get those pins working, on other parts the OSPIM could map the high port to the low port, not sure how it's done here.
Can Cube generate workable code?
Ok, stared at the reference manual, and digging in the include files
sCommand.IOSelect = HAL_XSPI_SELECT_IO_7_4;
vs
sCommand.IOSelect = HAL_XSPI_SELECT_IO_3_0;
2024-05-25 07:11 AM
Tentatively try this build
PB4:AF3 CLK
PC11:AF9 NCS
PC1:AF10 D4
PC2:AF6 D5
PC3:AF6 D6
PC0:AF10 D7
2024-05-27 06:04 AM
Hi @Tesla DeLorean ,
Thank you.
I am able to read the 0x90000000 address, on the STM32 Cube programmer. I will be testing more this week.
I have the following two questions:
1. I have noticed that the external loader is build for the STM32H563 where the microcontroller I use is the STM32H562. Do you foresee any issues with the loader being build for the STM32H563 and not for the STM32H562?
2. Does the clock frequency used to generate the external loader need to match the clock frequency specification on my application?
Thank you so much again.
2024-05-27 07:12 AM
I think the STM32H56x parts likely use the same die, and the loader can work independently for your normal clocks. Just using the starting HSI/MSI of the host processor is usually sufficient, most of the speed is constrained by the write page performance in the memory IC, and less about moving it around in the STM32.