Skip to main content
Yunus ARI
Senior
Jan 29, 2020 8:39 AM UTC
Question

New hardware working problem.

Hi everyone,

We working on a project with touchgfx software. We designed a new hardware for this project. Our custom hardware has this components;

  • STM32F746BET processor
  • IS42S16800F-7TLI SDRAM (128Mb , 143MHz)
  • MT25QL128ABA1EW9 QUAD SPI NOR FLASH (128Mb, 133MHz)

We able to access flash and ram. Code able to work in processor.

When I want to draw a box or something that can be drawable with code, screen working fine.

But when I want to draw an image from flash, screen go crazy.

You can see an example this situation;

0690X00000BwmLWQAZ.jpg

What can you say about it? Is this can be fixed with software or we need to review our hardware?

Thanks in advance :).

This topic has been closed for replies.

26 replies

Martin KJELDSEN
Principal III
Jan 29, 2020 9:42 AM UTC

Have you made sure to program the external flash? Could be reading garbage.

Yunus ARI
Yunus ARIAuthor
Senior
Jan 29, 2020 10:26 AM UTC

I have been working on it several days. I tested sram for make sure all bits working. I checked that the flash is programing correctly. I think problem it's coming out when system get data from flash to sram. I focus on DMA2D interface right now.

I add some picture of debug code. You can see memory section of flash that include a test image (Memory 2) and memory section of sram that include frame buffer (Memory 1) . And you can see _test array for this image in "Live Watch" window.

0690X00000BwmuWQAR.jpg

If you look image can see some irrelevant values in ram memory. You consider this is a sram problem but I need to say that, I tried fill sram with direct access and this worked fine. Because of that I thinking it's a DMA2D problem. But I can't prove it :)

Martin KJELDSEN
Principal III
Jan 29, 2020 10:49 AM UTC

Have you compared the data in external flash with what is being generated by TouchGFX based on your image? (generated/images) folder - Just to be sure that the data is written correctly to flash by your flash loader.

/Martin

Yunus ARI
Yunus ARIAuthor
Senior
Jan 29, 2020 10:51 AM UTC

Yes I did that. It's look correct.

Martin KJELDSEN
Principal III
Jan 29, 2020 10:50 AM UTC

Also, can you try storing a small image in internal flash instead and reading from there?

Yunus ARI
Yunus ARIAuthor
Senior
Jan 29, 2020 10:55 AM UTC

How can I to do that. As far as I know, TouchGFX is loading image to external flash automatically.

Martin KJELDSEN
Principal III
Jan 29, 2020 10:54 AM UTC

How did you create the project? Seems like some syncronization may be off. Can you try adding the following line when configuring your TouchGFX HAL?

hal.lockDMAToFrontPorch(true); 

Yunus ARI
Yunus ARIAuthor
Senior
Jan 29, 2020 11:00 AM UTC

I working on this project for a long time. I was running this code in STM32F7-Discovery board before this new hardware.

HP_it
Senior II
Jan 29, 2020 3:26 PM UTC

really looks like the External flash is not being loaded properly.

how do you load the external flash? Using Cube-Programmer or something else?

Cube-Programmer can both read and write to your flash using the external loader (<-- this is most likely the culprit)

I spend quite some time on that loader and there's very little info to go on. can you make absolutely sure that your loader is working?

I ended up with using the exact same QSPI chip as on the dev-board and lucky for me I was able to obtain an external loader with my pin-configuration (something to look out for as well!)

Yunus ARI
Yunus ARIAuthor
Senior
Jan 30, 2020 5:54 AM UTC

I loaded flash with using IAR 8.20 ide. I can see inside the memory when debugging. I compared flash and sram when program running. I added a picture of this debug in previous posts. I quite sure flash is loaded properly.

Martin KJELDSEN
Principal III
Jan 30, 2020 9:06 AM UTC

But does the IAR project have a specific external flashloader configured? But you did say that you'd verified the contents of the external flash with the pixel data of the generated image.

/Martin