AnsweredAssumed Answered

eDMA Error when combining eDMA DSPI Driver and USB CDC in one project (Kinetis K64F, KSDK 1.1.0)

Question asked by Konke Radlow on Feb 19, 2015
Latest reply on Feb 20, 2015 by Konke Radlow

I'm working on a project where I'm reading data from an ADC (ADS129x) using SPI and transferring this data to a host PC via a virtual COM port. The project is based on the Kinetis SDK 1.1.0 (DSPI Master & eDMA library and Kinetis USB Stack with CDC Virtual COM demo) and implemented on a custom PCB with a K64F12.

 

I was using the interrupt based DSPI driver until now and things were working fine. In order to improve the possible throughput I switched to the eDMA version of the SPI driver, and the change went smoothly. Communication over SPI is working as expected and stable over long time periods.

 

The problems arises as soon as USB enters the picture. Any form of data transmission over the USB Bus (even the USB enumeration process is sometime enough) will cause a sporadic DMA Error. The error always happens on the DMA channel which is used by the DSPI driver as a "Source buffer to intermediate command/data" and shows itself by causing an DMA_Error_IRQn interrupt from which the error interrupt handler of the eDMA library cannot recover.

 

Any suggestions what could be the cause for this incompatibility between DSPI and USB, or how to obtain more details on the cause for the eDMA Error?

Outcomes