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.

McBSP0 reception is halted

Hi experts, 

We are working using a c6424 DSP. We are working developing audio codecs but our problem can be reproduced in a simple audio loop.  We are using EDMA3 for all transfers related to MCBSP.

If the tx and rx clocks are synchronous all is OK, but if the clocks are asynchronous the reception stopped working after running a while.

We can see in "Queue Status Register" a value of 1 in "Watermark for maximum queue usage" field when the loop is working fine but after the problem occurs the value is set to 2. The application continues running after that but the audio reception doesn't work. Even after an MCBSP reset and reconfiguration the audio reception is halted.

It is funny that the only way to recover the reception functionality is accessing to MCASP0 Control, MCASP0 Data, MCBSP0 or MCBSP1 registers. A simple read of any register between these memory addresses before resetting and reconfiguring the MCBSP is enough to recover audio reception. This read is mandatory to recover the functionality.

Best regards.

Thank you in advance.

  • The read to recover the audio reception is done through the emulator (watch window or memory window). If the read is inserted in the code the solution is not valid. It looks like something in the system was corrupt, hang or freeze.

    Thank you.

  • Hi,

    Thanks for your post.

    In order to detect the issue, we would recommend you to debug the code via keeping the breakpoints at the desired place to evaluate the status of McBSP control/error registers, sothat, we could evaluate the cause of the issue.

    For your case, we would suggest you check the status of RINTM bit in SPCR, if the value is 3, then RSYNCERR will drive the Rx. interrupts (RINT) to CPU, so, please check the status of RSYNCERR bit in SPCR. Do you able to deteact any unexpected frame sync pulse? If so, it would have occurred the value in RDATDLY bit clocks in RCR before the last bit of the previous element is received on DR. Kindly ensure whether any value exists in receive data delay bit clock (RDATDLY bit in RCR).

    Please check the possible cases of unexpected receive frame synchronization (RSYNCERR) and check the case where the reception blocks/halts. Kindly refer section 2.6.5.2 in the c642x McBSP's user guide as below:

    http://www.ti.com/lit/ug/spruen2b/spruen2b.pdf

    Actually, the above case should be a serial port exception conditon on the reception side, so, i would recommend you to walkthrough the sample C code in serial port mode which would describe how to initialize the C6000 McBSP to communicate with a UART. Kindly refer Appendix A in the c642x McBSP :UART application report below:

    http://www.ti.com/lit/an/spra633c/spra633c.pdf

    Thanks & regards,

    Sivaraj K

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    -------------------------------------------------------------------------------------------------------

  • Hi,

    Alternatively, You could also try for  BIOS PSP release build 1.10.03 and the PSP package contains DSP/BIOS drivers and CSL (register layer) for C6424 SoC.  The CSLs can be found at \packages\ti\sdo\pspdrivers\soc inside the package. You could download the same from the below link from which you could find the McBSP/McASP sample audio playback example. Kindly check it in the PSP package.

    http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/psp/bios_psp/index.html

    http://processors.wiki.ti.com/index.php/Chip_support_library#Chip_Support_Library_for_C6424

    Kindly refer to release notes for the list of peripherals supported, known issues and fix information.
    For further peripheral specific information, please refer to peripheral specific release notes inside the package.

    Thanks & regards,

    Sivaraj K

    -------------------------------------------------------------------------------------------------------

    Please click the Verify Answer button on this post if it answers your question.

    -------------------------------------------------------------------------------------------------------

     

  • The application runs properly using BIOS PSP release build 1.10.03. It looks like a driver bug:

    Fixed IR SDOCM00055494 : The Mcbsp driver contained a redundant enabling of
    EDMA transfer in case the packet submitted was the first one in the queue. This
    caused the current pending events to get cleared. This was causing the Mcbsp
    driver to hang. This function to restart the EDMA transfer is now removed

     

    Best Regards.

    Thank you very much for your help.

     

     

  • Hi,

    Glad to hear that your application runs properly now.

    Thanks for your update.

    Regards,

    Sivaraj K