AnsweredAssumed Answered

SC589 audio loop back

Question asked by dcher on Aug 30, 2017
Latest reply on Sep 8, 2017 by dcher

Hello, 

I am working with the ADSP-SC589 EZ-Board and using the ADC_DAC_Playback_SC589_SHARC example provided with the BSP SW package. 

I am using the example in a PLAYBACK and TDM mode. 

The playback works great an able to hear the sound captured by the microphone through the loudspeaker. 

I want to modify the example such that the samples of the microphone are stored in the memory for lets say 10 sec and afterwards i want to download the stored signal to a file using the dump memory interface. 

I order to acomplish the above mentioned task i added another for loop below the existing "//Playback Loop" in the ProcessBuffers function. 

The loop i added is: 

for(i=0; i<AUDIO_BUFFER_SIZE/4;i++)
{
         if(AdcCount >= START_REC_FRAME & AdcCount < END_REC_FRAME)
         {

               MicsBuf[indx] = __builtin_conv_RtoF(pSrc32b[i]);
               indx++;
         }
}

where MicsBuf is a global variable stored starting in a memory address 0x80000000 defined as float32_t *MicsBuf ;

pSrc32b is a pointer to the ADC buffer that generated the callback, it is initialized inside ProcessBuffers  function as follows pSrc32b =  (int32_t *)pADC; 

 

I do see that some data is saved during this processes to the DDR, however, when i dump the data in floating point 32 but format to a file and extract the different channels (based on my understanding the data in the memory is stored as ch1 ch2 ch3 ch4 ch1 ch2 ch3 ch4 ....) what i get is a complete garbage instead of the sine wave that was generated by and external loudspeaker. 

 

would some have an idea on what the problem might be?

Thanks a lot

Dani 

 

Outcomes