Can Flash Write operation effect DMA?

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

Can Flash Write operation effect DMA?

跳至解决方案
3,199 次查看
liujinhang
Contributor III

hi,

i have a new question about DMA function. today when i debug my program ,i found that when i doing EEPROM write operation on the frequency of very fast, my DMA will delay max to 3us. i can not explain this strange phenomenon to my colleague. so i want to know, can Flash Write operation effect DMA and how effect the DMA?

PS: i used the EEE_Driver_v1.2.0 to realize the EEPROM function by using flash.

0 项奖励
回复
1 解答
2,915 次查看
petervlna
NXP TechSupport
NXP TechSupport

Hi,

The default priorities are: (where 0 is highest)

M0 -> 0

M1 -> 1

M5 -> 2

M6 -> 3

pastedImage_1.png

So if your core is accessing slave and in the same time DMA want to access it it must wait until higher priority master release accessed slave. There is no time limit.

Usual application configuration where no large data block are transmit over DMA or FlexRAY is:

1. Flexray (highest)

2. DMA

3. Core

But this is really application specific.

If you want to test if your DMA transfer is delayed because of XBAR priority, just change it and give DMA higher priority.

If this does not help there must be another reason for the delay.

Peter

在原帖中查看解决方案

0 项奖励
回复
7 回复数
2,915 次查看
liujinhang
Contributor III

is there any document to specify which operation would effect the DMA operation?

0 项奖励
回复
2,915 次查看
petervlna
NXP TechSupport
NXP TechSupport

Hello,

Yes, it can.

Unfortunately you didn't specified the device you are using. So its hard to tell the root cause.

Have in mind that there is a XBAR which arbitrate accesses for masters to slaves.

Foe example if you are accessing to flash via core, and in same time DMA want to access flash. Master with lower XBAR priority must wait until slave is released from master of higher priority.

Peter

0 项奖励
回复
2,915 次查看
liujinhang
Contributor III

another important information is that i did not configure the XBAR, so the xbar function runs on its default configuration. 

0 项奖励
回复
2,916 次查看
petervlna
NXP TechSupport
NXP TechSupport

Hi,

The default priorities are: (where 0 is highest)

M0 -> 0

M1 -> 1

M5 -> 2

M6 -> 3

pastedImage_1.png

So if your core is accessing slave and in the same time DMA want to access it it must wait until higher priority master release accessed slave. There is no time limit.

Usual application configuration where no large data block are transmit over DMA or FlexRAY is:

1. Flexray (highest)

2. DMA

3. Core

But this is really application specific.

If you want to test if your DMA transfer is delayed because of XBAR priority, just change it and give DMA higher priority.

If this does not help there must be another reason for the delay.

Peter

0 项奖励
回复
2,915 次查看
liujinhang
Contributor III

Hi Peter,

thank you very much! i did the test by setting the DMA highest priority to access all slave ports. and the problem

disappears.

thank you!

0 项奖励
回复
2,915 次查看
liujinhang
Contributor III

Thank you very much. i will do some test and then tell you.

0 项奖励
回复
2,915 次查看
liujinhang
Contributor III

Thank you for your response.

i used 5744P.  i also want to know the flash writing operation how effect the DMA. and i want to know how long the max time will course DMA delaying.

please help me, thank you very much.

your said that DMA will wait for other higher priority accessing operation, i very think so. but i feel strange that the DMA will actually be delayed for 3us, this make me misdoubt my DMA function.

0 项奖励
回复