BF70x DMA PSIZE behaviour

Hi,

what happens when I have configured the SLEN of a SPORT in receive mode to 32 bit but use a DMA to transfer rx'ed data to memory with PSIZE of 16 bit?

Will that copy just 16 bit from the receive data register and if so: the low or high portion?

I want to interface a chip needing 32 colcks and FS but delivering only 16 meaningful bits. Thus, the 16 MSB shifted in could be discarded right away.

regards

Parents Reply Children
  • Thanks for the answer.

    But the original question is not covered.

  • 0
    •  Analog Employees 
    on Mar 3, 2021 8:41 AM in reply to J_Merlin

    Hi,

    Sorry for not being clear in the previous mail.

    When the receive SPORT length is 32-bit and the PSIZE/MSIZE is set to 16-bit, then the upper 16 MSB bits will not be received. I'm attaching a sample code for this. This code can be directly run on ADSP-BF609 Ezkit. Similar concept applies to ADSP-BF70x as well.

    As you can see from the attached screenshot when MSIZE/PSIZE is16-bit and XMOD is 4, the receive data will be stored to memory as 32-bit(since XMOD is 4, upper MSB data is discarded and filled with 0s). If you want to store only 16-bit to memory, you can set MSIZE/PSIZE=16-bit and XMOD=2.

    Hence, make sure you set MSIZE, PSIZE, XMOD and XCNT values correctly based on your requirement. Let me know if anything is unclear.

    SPORT_DMA_Core0.zip

    Regards,
    Anand Selvaraj.