2024-01-23 02:14 AM
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!
Solved! Go to Solution.
2024-01-25 04:00 AM
Hello @Thomas8607 ,
What frequency of QUADSPI did you use?
Please try to decrease the QUADSPI frequency.
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-01-25 04:00 AM
Hello @Thomas8607 ,
What frequency of QUADSPI did you use?
Please try to decrease the QUADSPI frequency.
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-01-25 05:53 AM
Hello
Yes, it was the solution. I configurated the clock to lower frequency.
2024-01-25 05:54 AM
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.
2024-01-25 01:57 PM
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!
2024-01-25 02:30 PM
Depends on the command byte, at the respective aligned addresses
0x20 for 4KB
0x52 for 32KB
0xD8 for 64KB
2024-01-25 10:10 PM
They are included in the datasheet, but which one does the loader_src.c file use?
2024-01-26 12:09 AM
/* 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!