DMA vs eDMA?

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

DMA vs eDMA?

Jump to solution
2,149 Views
GaryOlmstead
Senior Contributor I

Hi --

Are the terms DMA and eDMA used interchangeably?  If not, is there a list of which Kinetis parts have eDMA, and which have DMA?  It would seem likely that DMA is a subset or predecessor to eDMA, but none of the documentation supports that idea.  The K60DN/DXVLL 100 pin reference manual has separate chapters on each, but the only list of peripheral features (which is in the data sheet, not the reference manual) only lists a DMA module.  The K Series Selector Guide says that every K series part has DMA, and doesn't breathe a word about eDMA.  The MCUXpresso K60 Tower Module SDK has two examples for eDMA, and nothing for DMA.

So, what's the story?

0 Kudos
Reply
1 Solution
2,040 Views
mjbcswitzerland
Specialist V

Hi Gary

Almost all K and KV parts have eDMA and most KL, KE and KM parts have DMA (with some exceptions like KE1xF, KL28 and KL82, and more).


To know which, it is simplest to search for the registers DMA_CR or DMA_SAR0 in the user's manual. If you find DMA_CR it is eDMA and if you find DMA_SAR0 it is DMA. Both DMA and eDMA have basic DMA support for software triggered and peripheral triggered transfers. eDMA is more power-ful since it can link DMA channels together, generate half buffer and full buffer interrupts, do free running DMA to a randomly located circular buffer and also transfer in a descending address order (backwards)


DMA can't do half buffer interrupts and it can only do free running DMA in a circular buffer if the buffer is modulo aligned and of a modulo size (64, 128, 256, etc.).

If you have eDMA in our chip you can do more, although 90% of the time the more basic DMA is OK too.

Eg. Free-running DMA UART on KL27 explanation videos:

https://www.youtube.com/watch?v=dNZvvouiqis&list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&index=10
https://www.youtube.com/watch?v=GaoWE-tMRq4&list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&index=11

Both DMA and eDMA are simulated in the uTasker project for better understanding and testing.

eDMA is also used in i.MX RT parts which means that much Kinetis eDMA peripheral/DMA code is reusable there too (in fact many peripheral and DMA drivers can be literally shared between Kinetis and i.MX RT).

Regards

Mark
[uTasker project developer for Kinetis and i.MX RT]

View solution in original post

0 Kudos
Reply
2 Replies
2,041 Views
mjbcswitzerland
Specialist V

Hi Gary

Almost all K and KV parts have eDMA and most KL, KE and KM parts have DMA (with some exceptions like KE1xF, KL28 and KL82, and more).


To know which, it is simplest to search for the registers DMA_CR or DMA_SAR0 in the user's manual. If you find DMA_CR it is eDMA and if you find DMA_SAR0 it is DMA. Both DMA and eDMA have basic DMA support for software triggered and peripheral triggered transfers. eDMA is more power-ful since it can link DMA channels together, generate half buffer and full buffer interrupts, do free running DMA to a randomly located circular buffer and also transfer in a descending address order (backwards)


DMA can't do half buffer interrupts and it can only do free running DMA in a circular buffer if the buffer is modulo aligned and of a modulo size (64, 128, 256, etc.).

If you have eDMA in our chip you can do more, although 90% of the time the more basic DMA is OK too.

Eg. Free-running DMA UART on KL27 explanation videos:

https://www.youtube.com/watch?v=dNZvvouiqis&list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&index=10
https://www.youtube.com/watch?v=GaoWE-tMRq4&list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&index=11

Both DMA and eDMA are simulated in the uTasker project for better understanding and testing.

eDMA is also used in i.MX RT parts which means that much Kinetis eDMA peripheral/DMA code is reusable there too (in fact many peripheral and DMA drivers can be literally shared between Kinetis and i.MX RT).

Regards

Mark
[uTasker project developer for Kinetis and i.MX RT]

0 Kudos
Reply
2,040 Views
GaryOlmstead
Senior Contributor I

Thanks, Mark!!!

I wish the manuals could say that someplace.

Gary

0 Kudos
Reply