2021-05-29 10:59 AM
Hai....,
I am using Waveshare STM32F746IGTx Development board and Waveshare 7 inch(1024x600) Capacitive Touch display QUADSPI (MT25QL128ABA1ESE-0SIT Micron Technology) own development board STMCube IDE and Custom External loader file.
After upload the program i am facing following error
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Erasing memory corresponding to segment 1:
Erasing external memory sectors [0 1]
Download in Progress:
File download complete
Time elapsed during download operation: 00:00:17.751
Verifying ...
Error: Data mismatch found at address 0x90000000 (byte = 0x99 instead of 0x00)
Error: Download verification failed
Encountered Error when opening C:\ST\STM32CubeIDE_1.6.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_1.6.0.202101291314\tools\bin\STM32_Programmer_CLI.exe
Error in STM32CubeProgrammer
Debugger connection lost.
Shutting down...
where i am doing mistake, please give your suggestion.
Thanks & Regards
M. Govind
2021-05-29 12:47 PM
0x99 suggests the QSPI device isn't responding. Could be wrong command address, pin config, etc.
Make sure your BSP code is fully tested and functional. Do this outside the loader.
2021-05-30 06:30 AM
Outside of CubeIDE you can use STM32 Cube Programmer directly, you should be able to select the External Loader (EL) and check you can read the QSPI content. Blank sections should be 0xFF, if you read 0x99 everywhere, again suggests an issue with the loader vs hardware
2021-06-01 11:06 AM
Thanks for your replay......
After your replay we find out the connection mistakes.
I am using following QUADSPI PIN CONFIGURATION:
PF9 -------> IO1
PF8 --------> IO0
PB2---------> CLK
PB6---------> CS
PF7 ---------> IO2
PF6 ---------> IO3
Now it show 0xFF in STM32 cube programer select Custom External loader N25Q128A_STM32F7-PB2-PF8-PF9-PF7-PF6-PB6-CLIVEONE, . But after upload the code (Using same External Loader ) showing error following bellow
Error: Data mismatch found at address 0x90000000 (byte = 0xDD instead of 0x00)
again go to check in stm32 cube programmer it show 0xDD select same External Loader.
without adding External Loader after uploading the program in Debug mode display showing white colour and four corners are Black colour it's looks like a Ellipses in shape.
I am change other two different PIN configuration of QUADSPI but it not work.
If i use inbuild N25Q128A_STM32F746G-DISCO External loader while uploading it will take to much time after showing following error.But it working fine in STM32 Cube Programer it show 0xFF.
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Erasing memory corresponding to segment 1:
Erasing external memory sector 0
Error: failed to erase memory
Error: failed to erase memory
Encountered Error when opening C:\ST\STM32CubeIDE_1.6.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_1.6.0.202101291314\tools\bin\STM32_Programmer_CLI.exe
Error in STM32CubeProgrammer
Debugger connection lost.
Shutting down...
If problem in External Loader please give me an idea to create own External Loader or what i need to change the configuration (Hardware connections and software) for existing available External loaders, where can i get External Loaders for bellow mentioned microcontroller .
( QUADSPI : MT25QL128ABA1ESE-0SIT Micron Technology Microcontroller STM32746IG)
Give me a suggestion for simple program for display any one ( Image or Colour Button ) in Display with TouchGFX frame work for that what are the basic configurations are we need to make .......? for display working or not condition check, Example : FMC_SDRAM, QUADSPI, DMA2, etc......,
I make all configuration in stm32 cubeMX and STM32 Cube IDE software changes are following through related tutorial videos in youtube. It's not work out i am very tide to find out the problem.
Please give me a suggestion to rectify my problem............,
Thanks & Regards
M.Govind
2021-06-01 11:11 AM
Thanks for your replay......
After your replay we find out the connection mistakes.
I am using following QUADSPI PIN CONFIGURATION:
PF9 -------> IO1
PF8 --------> IO0
PB2---------> CLK
PB6---------> CS
PF7 ---------> IO2
PF6 ---------> IO3
Now it show 0xFF in STM32 cube programer select Custom External loader N25Q128A_STM32F7-PB2-PF8-PF9-PF7-PF6-PB6-CLIVEONE, . But after upload the code (Using same External Loader ) showing error following bellow
Error: Data mismatch found at address 0x90000000 (byte = 0xDD instead of 0x00)
again go to check in stm32 cube programmer it show 0xDD select same External Loader.
without adding External Loader after uploading the program in Debug mode display showing white colour and four corners are Black colour it's looks like a Ellipses in shape.
I am change other two different PIN configuration of QUADSPI but it not work.
If i use inbuild N25Q128A_STM32F746G-DISCO External loader while uploading it will take to much time after showing following error.But it working fine in STM32 Cube Programer it show 0xFF.
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Erasing memory corresponding to segment 1:
Erasing external memory sector 0
Error: failed to erase memory
Error: failed to erase memory
Encountered Error when opening C:\ST\STM32CubeIDE_1.6.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_1.6.0.202101291314\tools\bin\STM32_Programmer_CLI.exe
Error in STM32CubeProgrammer
Debugger connection lost.
Shutting down...
If problem in External Loader please give me an idea to create own External Loader or what i need to change the configuration (Hardware connections and software) for existing available External loaders, where can i get External Loaders for bellow mentioned microcontroller .
( QUADSPI : MT25QL128ABA1ESE-0SIT Micron Technology Microcontroller STM32746IG)
Give me a suggestion for simple program for display any one ( Image or Colour Button ) in Display with TouchGFX frame work for that what are the basic configurations are we need to make .......? for display working or not condition check, Example : FMC_SDRAM, QUADSPI, DMA2, etc......,
I make all configuration in stm32 cubeMX and STM32 Cube IDE software changes are following through related tutorial videos in youtube. It's not work out i am very tide to find out the problem.
Please give me a suggestion to rectify my problem............,
Thanks & Regards
M.Govind
2021-06-01 12:28 PM
It is using the Micron part and not the Winbond one?
Does your own BSP QSPI code work on this board/part combination? Have you tested Read, Write and Erase from your own application code?
When erased you should be able to see 0xFF pattern throughout memory space.
Confirmed WaveShare schematic as showing PB2,PB6, PF6,PF7,PF8 and PF9
746G-DISCO uses PB2,PB6, PD11,PD12,PE2,PD13
769I-DISCO uses PB2,PB6, PC9,PC10,PE2,PD13
2021-06-02 09:55 AM
Thanks for your support........, Yes i am using PB2,PB6, PF6,PF7,PF8 and PF9 and Custom External Loader.
Yes... I have to tested Read, Write and Erase in STM32 Cube Programmer only working fine.
After the Erased it show 0xFFFFFFFF pattern throughout memory space,
Now code upload without any Error.
But after upload the code Display showing White Colour and four corners are Black colours, Connection are made as per Waveshare given schematic diagram.
Please find the attachment of Error Display Image for your reference.
Please help to rectify for this problem.
And kindly explain " #include "../Components/n25q128a/n25q128a.h" " we should enter folder path like this, how to select file path
Thanks & Regards
M.Govind
2021-06-02 10:11 AM
Include pathing is going to depend on the location of the project and relative content.
You can always localize files, and keep them in a common include directory. You can provide the tool with a list of paths to search off of.
If the project is within the repository, you're going to want to make sure you maintain the same directory depth, or you'll need to adjust everything. CubeIDE and Eclipse tend to be a big headache, Keil and IAR typically allow for simple project cloning without everything breaking.
You'll need to debug the code to understand why the screen isn't initialized properly. You should check and validate the image in External Flash is correct, that it matches the PC side content for starters. At minimum a CRC or checksum. Have a Hard Fault routine that catches gross failure.
Then you'll need use the debugger, compilation and download without error doesn't mean the code is logically or functionally correct.
2021-06-03 11:49 AM
Thanks for replay
Yes.......,you say Correct.........,
While debugging Enter the " Step Over "
SystemClock_Config(); // then go to
void TIM6_DAC_IRQHandler(void)
{
/* USER CODE BEGIN TIM6_DAC_IRQn 0 */
/* USER CODE END TIM6_DAC_IRQn 0 */
HAL_TIM_IRQHandler(&htim6);
/* USER CODE BEGIN TIM6_DAC_IRQn 1 */
/* USER CODE END TIM6_DAC_IRQn 1 */
}
again again routine here.
TIM6 used to Timebase source in " SYS MOde Configuration".
if not enable to TIM6 in SYS Mode Configuration, It go to
osKernelStart(); // Next go to " Hard Fault " routine.
We are searching in internet about this problem, but not find out any thing.
Follow the Tutorial Video instructions to configure in CubeMX. But it not workout.
Please give me a solution for this.
Thanks & Regards
M.Govind
2021-06-03 01:03 PM
I come from a time before the internet, you had to solve and debug the issues you encountered rather than find others with the same/similar problems and use their solution. Perhap you and more senior colleagues can sit down and work through the debugging process.
Use an effective Hard Fault Handler, one that outputs processor level diagnostic information you can use to find the location of the fault. I've published multiple examples of this. Get a debug UART running, and use on of those.
The timebase interrupt is going to fire quicker than you can hit go in the debugger. Make sure the htim6 structure is properly initialized, and the handler doing the HAL_IncTick() is working.
Hard Faults will occur if your stack is corrupt or your initialization of data structures and pointers are incomplete. If the QSPI initialization is not successful any memory access attempts to the 0x90000000 memory region will Hard Fault.
Make sure all the tasks are properly initialized, that they have adequate stack space.