cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H750XBHX W25Q64 bad test

Thomas8607
Senior

Hello!

I have an ART_PI board with STM32H750XBHX MCU and W25Q64 FLASH IC on it.
I want to make my own loader, but it doesn't work as it should.

Running until the memcmp cycle, I look at the memory map. But the content is not good. There are values 00000000, 11111111, 22222222 instead of 00, 01, 02. Thus, memory comparison is not good.
I can't find the error.

I am attaching the files and the picture showing the memory map.

Thanks for the help!

1 ACCEPTED SOLUTION

Accepted Solutions
KDJEM.1
ST Employee

Hello @Thomas8607 ,

What frequency of QUADSPI did you use?

 

Please try to decrease the QUADSPI frequency.

KDJEM1_2-1706184034617.png

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.

View solution in original post

7 REPLIES 7
KDJEM.1
ST Employee

Hello @Thomas8607 ,

What frequency of QUADSPI did you use?

 

Please try to decrease the QUADSPI frequency.

KDJEM1_2-1706184034617.png

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.

Hello

 

Yes, it was the solution. I configurated the clock to lower frequency. 

Andreas Bolsch
Lead II

I'd suggest you try erase/program/read cycle first with 1-line mode throughout until you've verified it works as expected, then switch to data on 4 lines for memory mapped read only, and only finally for write, too.

Otherwise it's hard to tell whether the problem is the write, read or maybe both. In particular, without knowing the actual memory contents, it's quite difficult to know whether the read works at all. Hence it might even be useful to insert a pre-programmed flash device (with known contents!) first.

Hi.

Currently, everything works if I do a complete chip erase (external mass erase) in cubeprogrammer before the operation. If this happens, I can read and write in cubeprogrammer and verify is also good. I can also use the flash ic for touchgfx in the cubeide program (here it works the download and verify with debugger) .

If I don't do a chip erase, verify is faulty in both programs.

I have a question, the sector erase in the loader_src file is exactly which operation for the flash ic?

Sector erase,

32kb sector erase

or 64kb sector erase?

 

Thank you! 

Depends on the command byte, at the respective aligned addresses

0x20 for 4KB

0x52 for 32KB

0xD8 for 64KB

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

They are included in the datasheet, but which one does the loader_src.c file use?

/* The topic name is w25q64, but i use already w25q128. */

I found the error. I used sector erase for 4KB but in the calculation used the block size.
15MB file programming was 6minutes, it is ok? (Erasing, programming and verify)

Can I use block erease, with block size in calculation?

Thank you!