How to reduce inter-byte delay in ECSPI of i.MX 6SoloX cortex M4

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How to reduce inter-byte delay in ECSPI of i.MX 6SoloX cortex M4

跳至解决方案
2,042 次查看
manikandanps
Contributor I

Hi,

I am using ECSPI of i.MX 6SoloX in M4 core. The application is executing in OCRAM. ECSPI is configured as master for 1MHz speed, ecspiClockPhaseSecondEdge,ecspiClockPolarityActiveHigh with the following additional register settings:

ECSPI_PERIODREG = 0;

Start Mode Control is enabled in ECSPI_CONREG_REG;

SS_CTL is enabled in master mode;

I have a byte array of 13 bytes ( formatted in little endian ) with values ranging from 0 to 12. I need to shift this out via ECSPI starting from 0 to 12. Since the hardware fifo is 64 words wide, i selected BURST_LENGTH in ECSPIx_CONREG as 7 for single byte burst and i i write into ECSPIx_TXDATA register continously without checking the status on ECSPIx_STATREG register but, i see ~ 5 micro second delay between each byte in the clock, chip select is continuous for the entire transaction (13 bytes) though.  If i have to increase the BURST_LENGTH field then, i need to do the endian conversion.  Where is this 5 micro second delay coming from ? is this the burst delay ? how to avoid this delay ? Actual transaction is as below:

pastedImage_2.png

but the expected (this is from a different make) is this: 

pastedImage_1.png

Thanks,

Manikandan P S

0 项奖励
回复
1 解答
1,830 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Manikandan

could you check ECSPI_PERIODREG register.

If this will not help, seems increasing BURST_LENGTH field is only option.

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

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,831 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Manikandan

could you check ECSPI_PERIODREG register.

If this will not help, seems increasing BURST_LENGTH field is only option.

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

0 项奖励
回复
1,830 次查看
manikandanps
Contributor I

hi igor,

ECSPI_PERIODREG register is already set to 0 and doesn't help.

Thanks,

Manikandan P S

0 项奖励
回复