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.

the problem of checking data from mcasp by uart

I have uart and mcasp work successfully, i want to check the data transfer between uart and mcasp.

I have one dsp. I connect the data pins and the frame syns signal pins of mcasp, I can receive and send data, I found that it work successflly.

I have check the uart by the software working in windows. I send data from the software and after dsp receive the data, dsp transits the data to the software again. I have found it also works successfully. The baud(115200bps), I send 1024 bytes data every 100ms.

So, I use software to send 1024 bytes data every 100ms, uart receives the data and put the data in the buffer, then mcasp with edma send the buffer to the receive pin of mcasp, after mcasp receive the data, then dsp put the receive data to the uart, finnally, the uart send the data to the software, that is the procedure.

After a while, I found that there are several data lost in mcasp,because I find there is no error in  the send buffer, I tried ping-pong buffer, but I can not resolve the problem.

where is the problem is?

  • BM,

    Are you using EDMA for UART as well?  I wonder if you may have some competition for system resources when both the UART and McASP are active.

    -Tommy

  • If I understand this correctly, you have confirmed by looking at the data buffers that the errors occur somewhere between the DSP sending the data to the McASP transmit side and receiving the data from the McASP receive side back into the DSP. Is this correct?

    Which DSP are you using and which McASP & port are you using?

    Have you been able to check any error or status flag bits in the McASP to see if it gives any indication of the problem, like overrun or underrun?

    baby mercy said:
    After a while, I found that there are several data lost in mcasp,because I find there is no error in  the send buffer,

    How long is "a while"? Can you describe the circumstances of the lost data? Corrupted, zeroed, missing, repeated, at 1024 boundary, randomly located within the buffer, etc.?