Kinetis DMA support in MQX

cancel
Showing results for 
Search instead for 
Did you mean: 

Kinetis DMA support in MQX

2,320 Views
gtoph
Contributor II

I was wondering if DMA driver support was going to be added to MQX in the near future?  It mentions it in the IO users guide, but obviously it hasn't been included yet.

15 Replies

515 Views
Mr_Honey
Contributor I

Hello,

I want to ask if there is a new progress in DMA support on Kinetis? I am currently testing the K60 Tower kit with Atheros Wifi card running MQX 3.7, but I don't get even to 2.4/2.6Mbit UDP throughput performance mentioned in IoT_Wireless_System_Rel14_Release_notes.pdf. My target throughput is somewhere around 6-7Mbit.

0 Kudos

515 Views
PetrL
NXP Employee
NXP Employee

Hi, we are rewriting the Kinetis SPI interrupt driver (DSPI) to make it faster and leverage DMA mode in it. The driver should be part of upcoming MQX 3.8.0.

 

Petr

515 Views
iafg
Contributor IV

DMA + DSPI solves one of our issues.

The other needed use case is using

DMA with ADC to fill a buffer.

515 Views
iafg
Contributor IV

And how is the release date of MQX 3.8 looking?

0 Kudos

515 Views
c0170
Senior Contributor III

hi iafg,

 

MQX 3.8 RTM is planned to be released next month.

0 Kudos

515 Views
solen
Contributor II

Hi, are there plans on leveraging UART with DMA as well?

BR

Staffan

0 Kudos

515 Views
PetrL
NXP Employee
NXP Employee

Hi,

you are right, DMA driver/API is not included in current (3.7) MQX release.

 

We are discussing about including it in future MQX releases, but need to know more details on use cases and solutions users would be interested in. Could you provide some more info on the topic?

 

PetrL

 

 

0 Kudos

515 Views
AllenH
Contributor I

I would be interested in using it for SPI writes.  Especially since there is a slowness issue reading the SPI StatusRegister, limiting the data throughput to 2 to 3 Mbps with the provided SPI drivers.  I'm trying to get 24 Mbps (FPGA bootup), and the provided drivers don't come close.

515 Views
PetrL
NXP Employee
NXP Employee

What platform are you using? We are planning to improve speed for devices with DSPI module (Kinetis, ColdFire V3,V4)  in MQX 3.8.0

 

Petr

0 Kudos

515 Views
Muffinman
Contributor I

Would you like email me the DMA driver for my project testing purpose?

One more thing, what's the relation between the eDMA and uDMA in the K60?

Can you explain how the ethernet use the DMA with PTP supporting?

0 Kudos

515 Views
Muffinman
Contributor I

If you can send me an example about the scatter/gather DMA, that will be good.

 

0 Kudos

515 Views
egoodii
Senior Contributor III

A scatter/gather operation to (de)interleave 6 streams of audio from I2S to/from linear sample arrays from/to TDM mode of three stereo CoDecs on one I2S with DMA doing all the interleave/de-interleave double-buffering work:

https://community.freescale.com/message/82190#82190

This doesn't use chained DMA descriptors, as one 'major loop' is all that is needed.

 

--ERGII

0 Kudos

515 Views
Nana
Contributor II

So the MQX 3.8 was released and I don't see no DMA driver support, only for DSPI driver.  In MQXIOUG document is mentioned  at page 12 in chapter  Family Supported Drivers is mentioned about DMA device. 

 

It's same poor description in documentation !!

0 Kudos

515 Views
Nouchi
Senior Contributor II

Hello,

 

Using DMA with timers would be interresting to generate specials timing without CPU (interrupt) overhead.

I already use DMA  with MCF52259, but I'm planned to use Kinetis family.

0 Kudos

515 Views
gtoph
Contributor II

Hi Petrl,

 

For me, the specific case where I would like to use it is in A/D readings.  I would like to run the A/D as fast as possible and just have the DMA engine shove the readings into array data in memory for later processing.  One of my concerns is that the interrupt/poll wouldn't be fast enough before the next A/D reading overwrites the previous value and it would be lost....  plus it would be nice if it just happend automatically in the backgroud.

 

Since there are a ridiculous amount of registers to setup, it would be nice to have some MQX drivers to set them up or at least a generic example to see how it is supposed to work.

 

 

0 Kudos