AnsweredAssumed Answered

EDMA Incomplete Transfer using QTMR on the RT-1050

Question asked by Gregory Nowak on May 27, 2020
Latest reply on Jun 10, 2020 by Sabina Bruce

I have an LED light ring that I'm driving via Pwm setup using the QTMR timer DMA and the "EDMA" component on the RT-1050.

 

I am setting up the DMA using the EDMA component and the QTMR component shown below. 

 

 

 

I have the following situation:

 

99% of the time DMA transfers work successfully.  When the transfer is complete the lights are updated as expected and life goes on.

 

 

 

I have a rotary encoder that, based on position change, sends an event to this LED engine to update the LED display.

If I rotate the rotary encoder too quickly (i.e. too many of these events are sent to the Crank Story Board Engine) the "DMACompleteCallback" will come back with a "transferDone" set to false.

 

My question:

 

1.  What would cause the EDMA callback to come back with a transfer complete set to false?  We are not doing scatter/gather so it should 'always' be true.

 

2.  What do I do when this occurs?  I need the original transfer to "re-try" if there was an error.

 

3.  I have a second stage bootloader that is running the application.  I don't have issues when the bootloader is not present.  Is there something special I need to do with clock de-initialization before I can run an application that is expecting to run from reset?  

 

 

Observations: 

 

I have this project setup with a second stage bootloader that launches the application.  The application, when stand alone without the debugger, does not seem to have these DMA incomplete errors.  I'm also unable to get it to trip the incomplete transfer when connected with the debugger.  "occasionally" I can get it to hit the breakpoint, but rarely.  Without the debugger I can cause this situation without seconds.

 

Thanks,

Outcomes