Hi,
I have the CDC ACM (virtual com port) working in FIFO mode. I am enabling the DMA so that I can free the CPU from data transfer.
While I am configuring the CPPI DMA for TX, I found that the DMA must be disabled (TXGCR[n].TX_ENABLE = 0) when I submit the HPD into the USB Endpoint TX submit queue.
If the DMA is enabled while submitting the HPD, the descriptor will end up in the wrong queue (by looking at the PEND[n] register). For example, when I submit HPD for Endpoint 2 into queue 18 while the DMA is enabled, PEND[0] shows me that the descriptor is end up in the queue 0.
I am not sure if this is the correct behaviour because the sample code in sprufm9h-july 2010 enable the DMA first and submit the descriptor into the queue later. Although it calls function enableCoreTxDMA() after descriptor submission, that function does not set TXGCR[n].TX_ENABLE.
By the way, I am using RNDIS transfer mode.
rgds,
kc Wong