This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB DMA transmits without enabling the DMA



Using C6748 StarterWare 1.20.02.02

In peripheral DMA_MODE I call doDmaTxTransfer() (cppi41dma.c) which finishes with a call to pushToSubmitQ which submits a BD to the Queue Manager Queue N Control Register D = 0x01e00000+0x600C+(queue<<4)

The next step is a call to enableCoreTxDMA() which clears the PERI_TXCSR AUTO_SET bit then sets the DMAMODE and DMAEN bits. As I understand this is the point where the transmission should start.

But, I get an interrupt indicating that the transmission is complete before the call to enableCoreTxDMA(). This means that the packet was sent by the DMA while DMAMODE==DMAEN==0

How can this be?