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.

DM6446 EVM ASP + EDMA3 connect to external device not triggering

Dear experts,

I was hoping you could provide me with some help getting the ASP with EDMA up and running.

Hardware:

I am using the Davinci-DM644x EVM by Spectrum Digital, but only the DSP side. The ASP is connected to external device, which provides all the frame sync and bit clocks to the EVM. To achieve this on the EVM, I need to disconnect the ASP from the on-board codec, i.e. pull McBSP_EN high. See attached the technical reference manual of the EVM. DaVinciEVM_TechRef.pdf

Software:

- CCS 5.5

- DSP/BIOS 5.42.1.09

- EDMA3 Low-Level driver 1.11.03.01

I have ported an existing stable C6748 McBSP + EDMA3 to the DM6446, so I am quite confident that the McBSP and EDMA3 setup is correct, as these peripherals are basically the same for both DSP's. However, my EDMA callbacks never fire, not even once. I already tried the obvious things such as looking at the PINMUX and PSC setups. So basically the problem can be in one of the following areas:

1) The frame syncs never actually reach the ASP, i.e. ASP is not really disconnected from the codec

2) The ASP peripheral is not configured properly

3) The EDMA3 is not configured properly

To rule out 1), I disconnected my external device (but still pulling McBSP_EN high) and configured the ASP for internal clock generation. I measured the frame syncs and bit clocks with a scope on the EVM's connector, so that also seems to rule out 2)

Therefore, my main suspicion so far is that the EDMA3 is somehow not configured correctly. However, I stepped through the configuration code with a debugger and the EDMA3 never complained about anything edma3init() returned successfully, I could successfully request the main trigger channels (2 for XEVT and 3 REVT), as well as the link channels from my PING/PONG setup.

Is there anything specific to the DM6446 that I might be missing?

Is there something special I need to do from the ARM side?

Any ideas would be welcome!

  • I also configured the ASP to interrupt the DSP upon frame synchronization, and I could successfully (and repeatedly) trigger both ASP Rx and Tx interrupts. I think this then confirms that my problem is very likely not 1) or 2).

    I remember from developing the C6748 McBSP driver that not using FIFO buffering was a typical issue for getting the EDMA3 working properly. However, the DM6446 ASP does not have FIFO buffering. How should I configure the EDMA3 differently in this case?