cancel
Showing results for 
Search instead for 
Did you mean: 

7 Inch Display interface with STM32F746IGT custom development board issues?

GMano.1
Associate II

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

9 REPLIES 9

0x99 suggests the QSPI device isn't responding. Could be wrong command address, pin config, etc.

M​ake sure your BSP code is fully tested and functional. Do this outside the loader.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

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

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
GMano.1
Associate II

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

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

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

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

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

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.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

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

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.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..