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.

TMS320DM6446: CPPI DMA trouble

Part Number: TMS320DM6446

Hi,

Questions on DMA transfer.

The following problem has occurred with the DM6446 SoC internal USB controller.
Could you please tell me the solution to this problem?

The DMA transfer will not be completed suddenly while InterruptOUT transfer is periodically performed to the device. (Transfer completion interrupt does not occur.)

This phenomenon occurs when operating for a long time.

At that time, the Transmit CPPI DMA State Word x Register and the Transmit CPPI Completion Pointer Register showed the following values.

--------------------------------------------------
Transmit CPPI DMA State Word 0 0x00000001
Transmit CPPI DMA State Word 1 0x89400fe1
Transmit CPPI DMA State Word 2 0x00000002
Transmit CPPI DMA State Word 3 0x00000000
Transmit CPPI DMA State Word 4 0x00000000
Transmit CPPI DMA State Word 5 0x00000000
Transmit CPPI Completion Pointer 0x89400fe0
--------------------------------------------------

The following values are written at the address indicated by Transmit CPPI DMA Status Word 1 Register (W1).

W1=0x89400fe1 : Transmit Buffer Descriptor
--------------------------------------------------
+0x0 +0x4 +0x8 +0xC
0x89400fe0 0x00000000 0x8A184300 0x00000003 0xE0000003
--------------------------------------------------

I think this indicates that 3 byte packets are being transferred and not completed.
Also, in this state, the completion interrupt did not occur even if canceling DMA transfer by TearDown was executed.


The application repeats the following transfer operation.
1: Interrupt OUT 4 byte Transmission transfer
2: Interrupt OUT 3 byte Transmission transfer
3: Interrup IN receive transfer

When stopping, the second 3 byte transfer will not be completed.
Also, I tried changing the second one to 4 byte, but similarly the transfer is not completed.

Is there a solution to this problem?

Best Regards,
Shigehiro Tsuda