cancel
Showing results for 
Search instead for 
Did you mean: 

Optimizing the External Loader for H750B-DK (QSPI read/write speedup)

nonoriri
Associate II

I have created a custom external loader for the H750B-DK.

I would like to improve the write/read speed using STM32CubeProgrammer.

How can I achieve this?

 

The current conditions are as follows:

  • Dual Flash mode
  • QSPI CLK = approximately 20 MHz
  • Memory Mapped Mode is SDR (Single Data Rate command)

 

The time taken to read/write 32MB is as follows:

  • Read: approximately 58 seconds
  • Write: approximately 45 seconds

 

I tried the following methods, but they did not have any effect:

  • Changed read to DDR (during transition to Memory Mapped Mode, 6Dh)
  • Changed QSPI CLK from 20MHz to 100MHz (no significant improvement)

 

Could the following be the reasons why NOR Flash read/write cannot be improved?

  1. Overhead due to the SWD frequency limit of STLinkV3 (24000 KHz)
  2. Limitations of NOR Flash program time

 

If you know any methods to improve the performance, I would appreciate your suggestions.

1 ACCEPTED SOLUTION

Accepted Solutions
Kraal
Senior III

Hi,

I believe the problem is mainly due to the size of the buffer allocated by CubeProg on which you do not have any control. While you could fine tune the external loarder to achieve maximum speed between that buffer and the memory device, it will be slowed by the overhead of the buffer setup and access.

A simple way to find potential places of improvements would be to scope the memory pins. You will instantly see where you have gaps of communication between the H7 and the memory, and determine if the gap is due to the memory chip internal timings (write operation for example as you suggested), or rather between the st-link and the H7.

View solution in original post

1 REPLY 1
Kraal
Senior III

Hi,

I believe the problem is mainly due to the size of the buffer allocated by CubeProg on which you do not have any control. While you could fine tune the external loarder to achieve maximum speed between that buffer and the memory device, it will be slowed by the overhead of the buffer setup and access.

A simple way to find potential places of improvements would be to scope the memory pins. You will instantly see where you have gaps of communication between the H7 and the memory, and determine if the gap is due to the memory chip internal timings (write operation for example as you suggested), or rather between the st-link and the H7.