This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SPI bott with only 130kB/sec

Hello,

On the DM648 I'm booting my apllication over SPI and recognized very long startup times for flashed binary file (The binary is about 2.8 MB which takes 21 seconds for startup, 1.25 MB takes 9.5 seconds to load). So I've measured the bandwith by flashing diffrent sized flash files and came to approximately 130 kB/sec bandwith while booting over SPI. I'm boot ing in FASTBOOT-Mode and before im Booting im setting the values below for DDR and Muxes.

130 kB/sec ist really slow an according to teh data sheet the clock for fast bott should be 11.25 MHz which should result in 1.4 MB/sec which factor 1000 to the bandwith I'm measuring.

Could someone explain me what's going on and what I'm missing?

Best Regards

OPCODES executed before falshing starts

// unlock SDTIM1 and SDTIM2, CAS latency 4, eight banks; page size 1024 word page;
0x58535907
0x00000002
0x78000008
0x00538832
0x00000400

// set SDTIM1
0x58535907
0x00000002
0x78000010
0x3EDB5B91
0x00000400

// set SDTIM2
0x58535907
0x00000002
0x78000014
0x00A2C722
0x00000400

// set refresh rate
0x58535907
0x00000002
0x7800000C
0x000003DE
0x00000400

// lock SDTIM1 and SDTIM2
0x58535907
0x00000002
0x78000008
0x00530832
0x00000400

// release reset
0x58535907
0x00000002
0x780000E4
0x50006405
0x00000400

// KEY_UNLOCK
0x58535907
0x00000002
0x02049054
0xADDDECAF
0x00000400

// set PINMUX register VP0, VP1, VP3/VP4, SPI ,ACLKR ,VP2
0x58535907
0x00000002
0x02049000
0x0023D220
0x00000400

  • Oliver,

    SPI can definitely work faster than that. But looking at the registers, its tough to say what's going wrong. 

    Can you measure the clock rate that is finally visible on the SPI bus, by probing the lines using an oscilloscope? 

  • It's a customized board and I can't measure it, that's the reason why I calculated the bandwith.

    The project size is generated over dummy arrays of diffrent sizes and all the project does is setting a GPIO to high to turn on a LED.

  • Hi

    I am not familiar with DM648 but I had the same problem with C5510 In my project the reason of slow booting was low CPU clock following reset (PLL disabled) so increasing of SPI clock won't help. The trick we used was to insert special register setting entry in boot table to enable PLL and speed up CPU clock before actual code loading.

    I hope it may be helpful

    Gregor