AnsweredAssumed Answered

SPDIF SPORT DMA0 usage onto 21469

Question asked by jdelorme on Jun 22, 2011
Latest reply on Jun 24, 2011 by jeyanthi.jegadeesan


I am currently switching from a project running onto a 21369 to a 21469 using EZKIT boards for each SHARC version. I am using the SPDIF IN and OUT in the way to collect a stereo channel in input and duplicate them by 8 (artificialy creating 16 channels) into the external memory using the DMA0.Then our processing use the DMA 1 in the way to collect the adapted audio samples into the external memory and then modify them when required.Then we only select 2 channels from the external memory to write the audio samples in the output TCB block using also the DMA0.

Regarding the documentation and the "Block Based SPDIF talkthrough in C" example, the EZkit board for the 21369 and the 21469 have the same configuration (SRU, init, ...).

But when I run the project from the 21369 board to the 21469 one, it doesn't work. I have take a look at the example "Block Based SPDIF talkthrough in C" and I have a question onto the process done into the function ProcessBlock(). Why the code below is done?


    *(outblock_ptr) =  ((*(inblock_ptr))<<8 | 0x10);
    *(outblock_ptr+1) =  ((*(inblock_ptr+1))<<8 | 0x10);
    for(i=2; i<NUM_SAMPLES; i++)
        // Shift left by 8 bits
       *(outblock_ptr+i) =  ((*(inblock_ptr+i))<<8);

A simple recopy of the buffer like the code below doesn't work onto the board 21469, is there an explanation or a modification between the two version of the SHARC?

    for(i=0; i<NUM_SAMPLES; i++)
       *(outblock_ptr+i) =  (*(inblock_ptr+i));

Thanks in advance for your help.