2024-08-15 11:38 PM
Hello,
I recently created a custom board using the STM32F746. I'm encountering an issue with the QSPI interface. The problem arose when I replaced the external flash from the MT25QL128ABA model to the IS25LP128F model. I have checked the data sheet and adjusted the QSPI parameters accordingly, but I'm still facing the issue as shown in the attached image. I would appreciate your help with this.
(I haven't changed the code; I only adjusted the QSPI parameters in the .ioc file after generating the code from TouchGFX Designer.)
Solved! Go to Solution.
2024-08-21 08:12 AM
Hello @JIN3473 ,
Could you please refer to MOOC - External QSPI loader how to - YouTube and follow the steps. This Mooc can help you to create an external QSPI loader.
I hope this help you to find the issue.
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.
2024-08-16 12:36 AM
Hello @JIN3473 ,
Could you please check the dummy cycles because timing issues can often cause data mismatches. For that please refer to IS25LP128F and choose the correct timing values.
May AN4760 can 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.
2024-08-18 05:14 PM
I studied 'dummy' and applied it based on your advice.
So I tried debugging by adding the following code to void MX_QUADSPI_Init(void)
However, I still get the following error
2024-08-18 07:06 PM
Probably an issue with the External Loader that you're using to do the writing in to the memory
2024-08-18 07:27 PM - edited 2024-08-18 07:38 PM
As you suggested, I found the existing External Loader related to the external flash and removed it
After that, an error occurred at MX_TouchGFX_Init() -> touchgfx_init() -> Texts::setLanguage(0) -> currentLanguageTypedText = typedTextDatabaseArray[id];
"After adding this function, it seems like there are no more errors, but my board doesn't work. When I press suspend, it stops at
There is no progress after this.
It seems that the error occurs at MX_TouchGFX_Process(); -> touchgfx_taskEntry() -> OSWrappers::isVSyncAvailable() -> return vsync_sem;
2024-08-21 08:12 AM
Hello @JIN3473 ,
Could you please refer to MOOC - External QSPI loader how to - YouTube and follow the steps. This Mooc can help you to create an external QSPI loader.
I hope this help you to find the issue.
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.
2024-08-21 08:46 AM
Ok, well a couple of things going on here.
The error about the mismatch is coming from the loader writing the content to memory, it's not related to any of your application code.
Your application code, or more generally the boot loader that calls it, needs to bring up the system clocks and external memory interfaces so you can memory map and use the external memory from your application.
You have to get the memory IC into the state suitable for access, and the when Memory Mapping provide it with a Read Memory template suitable for the operational mode of the memory.
I'd suggest getting your QSPI BSP code tested and working completely in a boot loader, where you can test and confirm it is reading memory properly, and you can see the content and get the settings correct and optimal. I'd generally advise against reinitializing the clocks and memory interfaces a second time. Do properly ONCE, and contract with the Application the conditions you anticipate at hand-over.
2024-08-22 05:42 PM
Thank you, everyone, for your answers. I had followed the instructions in
but it didn’t work well for me. After watching a video, I realized what I had missed, and it worked well afterward.
I underlined my mistake in blue, and you need to uncheck the box. I hope that anyone reading this doesn't make the same mistake as I did.