Post Go back to editing

ADSP-21584 SPORT Tx/Rx OverFlow & UnderFlow

Hi Dear ANALOG engineer:

  I have some problems when I use SPORT in ADSP-21584, I configured SPORT as TDM8 in DMA Mode, the bitclock is 12.288MHz, Fs is 48KHz. But the Tx or Rx OverFlow/UnderFlow Error occurs in several minutes. I called adi_sport_SubmitBuffer in SPORT DMA irq. What should I do to solve the promblen? why __ADSP215xx__ do not  support adi_pdma_PeripheralCircRead and adi_pdma_PeripheralCircWrite in CCES's driver API???

  • Hello,

    Our sincere apologies. We had missed this thread while tracking ezone queries.

    To solve the Over Flow/Under Flow error you have to receive/transmit data continuously. For that you can submit two buffers to the drivers in a ping pong manner. And you have to re-submit the processed buffers again to the driver.

    The adi_pdma_EnableBufferRepeat API enables the buffer repetition when a driver uses buffer queuing APIs such as "adi_pdma_PeripheralWrite" and "adi_pdma_PeripheralRead" for DMA buffer submission. When buffer repetition is enabled, the DMA channel will keep on processing (repeating) the last two buffers submitted. In that case there is no need to resubmit the buffers again and again.

    Please find the updated driver file for SPORT which includes the provision for buffer repetition enable functionality.

    Kindly replace the attached file with the existing file in C:\Analog Devices\CrossCore Embedded Studio <version>\SHARC\lib\src\drivers\Source\sport and then rebuild the project. Also ensure that you have installed the "SPORT Driver for Sharc" add-in via system.svc to the project and take a backup of your adi_sport_bf6xx.c file for future use.