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.
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.
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?
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.
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?
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:
This doesn't use chained DMA descriptors, as one 'major loop' is all that is needed.
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 !!
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.
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.