How to improve ecspi performance

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to improve ecspi performance

Jump to solution
1,015 Views
gaoyuan
Contributor II

My platform is imx6ul. spi clk is 40M

I changed SPI dma dst_maxburst to spi_imx_get_fifosize(spi_imx) and sent about 1KB to measure timing.

Bellow is one burst (64 bytes) timing and with some delay and then is the next burst(64 bytes).

64bytesburstcost.png

2burstdelay.png

the whole wave is:

wave.png

My question is: what cause the delay between every burst?

I notice there is risc processor to deal with sdma and fsl provide firmware.

So I guest that once the driver attach one dma request, then the firmware write data out and then read received data, that is, the delay between burst write operation is the time that read operation cost. Is it right?

And a another question is: how to reduce the delay between burst?

Thank you for your suggesion.

Labels (1)
Tags (2)
0 Kudos
1 Solution
673 Views
art
NXP Employee
NXP Employee

> My question is: what cause the delay between every burst?

The delay between the bursts is caused by the SDMA deal with the SPI FIFOs.

> I notice there is risc processor to deal with sdma and fsl provide firmware.

Yes, there is the dedicated RISC core that controls the SDMA operation.

> So I guest that once the driver attach one dma request, then the firmware write data out and then read received data, that is, the delay between burst write operation is the time that read operation cost. Is it right?

Yes, this is right.

> And a another question is: how to reduce the delay between burst?

Unfortunately, there seems to be no way to reduce this delay since SDMA always operates at its max. possible speed.


Have a great day,
Artur

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
1 Reply
674 Views
art
NXP Employee
NXP Employee

> My question is: what cause the delay between every burst?

The delay between the bursts is caused by the SDMA deal with the SPI FIFOs.

> I notice there is risc processor to deal with sdma and fsl provide firmware.

Yes, there is the dedicated RISC core that controls the SDMA operation.

> So I guest that once the driver attach one dma request, then the firmware write data out and then read received data, that is, the delay between burst write operation is the time that read operation cost. Is it right?

Yes, this is right.

> And a another question is: how to reduce the delay between burst?

Unfortunately, there seems to be no way to reduce this delay since SDMA always operates at its max. possible speed.


Have a great day,
Artur

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos