About SDMA transfer from memory to ESAI in i.MX6DQ.

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

About SDMA transfer from memory to ESAI in i.MX6DQ.

1,206 Views
keitanagashima
Senior Contributor I

Dear All,

Hello. We would like to transfer the data from memory to ESAI_TX_FIFO via SDMA.

Q1.

There are two kinds of scripts of SDMA for the peripheral sending.

"mcu_2_shp" and "mcu_2_app"

Should I use mcu_2_shp?

Q2.

In the case to send 256 bytes data from memory to ESAI_TX_FIFO by script (mcu_2_shp);

The CHNERRn bits of the SDMAARM_EVTERR register is set and the SDMA interrupt sometimes inputs.

Is there a way of CHNERR's that it isn't set?

Q3.

When CHNERRn is set, are there bad effect such as the data drop out?

(May I mask the interrupt by the HIMASK bit?)

Best Regards,

Keita

Labels (6)
0 Kudos
5 Replies

976 Views
Yuri
NXP Employee
NXP Employee

Hello,

  Please look at my comments below.


1.

  "mcu_2_shp" is intended to configure module / controller registers directly by

the SDMA core ;  "mcu_2_app" is used to DMA data. So, to send 256 bytes of data,

please use "mcu_2_app".

2.

  CHNERR is used for channel overflow detection. To avoid channel overflow

please configure properly burst size and watermark.

3.

Generally it is possible to mask (disable) some channles in the INTRMASK - in order

to skip possible overflow of data for some active channel. 

  Note :  "If any of the INTRMASK bits is set, the EVTERR register should also be scanned,
or at least cleared, since CHNERR[i] conditions generate interrupts which are indistinguishable
from H[i] interrupts."


Have a great day,
Yuri

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

0 Kudos

976 Views
keitanagashima
Senior Contributor I

Hi Yuri,

Thank you for your reply.

> 1.

>  "mcu_2_shp" is intended to configure module / controller registers directly by

> the SDMA core ;  "mcu_2_app" is used to DMA data. So, to send 256 bytes of data,

> please use "mcu_2_app".

Refer to attached file.

This document was test result with "mcu_2_shp" vs "mcu_2_app".

The transfer takes time when using "mcu_2_app".

When using "mcu_2_shp", the frame was sent in 2 clock cycle!

[Question]

Could you tell me the way of reducing the frame interval using "mcu_2_app"?

(Why did the frame interval spread  by using "mcu_2_app"?)

Best Regards,

Keita

0 Kudos

976 Views
Yuri
NXP Employee
NXP Employee

Hello,

Yes, "mcu_2_app" may have pauses between bursts because of 

system bus arbitration delays, and - strictly speaking - i.MX6 default

settings are optimal, therefore it is not recommended to change it

to avoid influence on other modules of the i.MX6 SOC.

 

Regards,

Yuri.

0 Kudos

976 Views
keitanagashima
Senior Contributor I

Hi Yuri,

Thank you for your reply.

Refer to attached file again.

The frame interval was 30 clock by using "mcu_2_app"!

Therefore, my customer doesn't accept this transfer performance on their system.

[Q1]

Go back to my 1st topic.

Is it possible to use the "mcu_2_shp" script?

The performance of mcu_2_shp was too better than mcu_2_app.

And, the custom board can efficient transfer with mcu_2_shp by masking the interrupt (HIMASK bit).

[Q2]

My customer will use other many SDMA transfer, too

And, they worried about system bus arbitration delays.

Does the delay of SDMA transfer occur except mcu_2_app?

Could you tell me the cause and condition of the delay in detail?

Best Regards,

Keita

0 Kudos

976 Views
Yuri
NXP Employee
NXP Employee

Hello,

1.

You may use the "mcu_2_shp" script  if there is no data lost or data losing is not the problem.

2.

Arbitration delays are very application dependent and it is hard to provide detaied

considerations for such complicated system as i.MX6. Again - default settings

are quite reasonable.

Regards,

Yuri.

0 Kudos