How to improve ecspi performance

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to improve ecspi performance

ソリューションへジャンプ
1,117件の閲覧回数
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.

ラベル(1)
タグ(2)
0 件の賞賛
返信
1 解決策
775件の閲覧回数
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 件の賞賛
返信
1 返信
776件の閲覧回数
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 件の賞賛
返信