Hi, I'm a bit lost right now. I can get the input and output from, let's say, Audio Precision, however, there is something missed.
I sent 1 kHz (100 mVRMS) to the BF706 ezlite mini and after I changed it to long fract or float, I got 0.0003. When I sent back to Audio Precision, it showed 81.2 mVRMS.
What did I miss? Do I have to do scaling rather than using lrbits or bitslr? Here's my code below, please kindly assist me. Thanks a lot.
void RX_ISR(uint32_t iid, void *handlerArg) { if (*pREG_DMA1_STAT & ENUM_DMA_STAT_IRQDONE) *pREG_DMA1_STAT = ENUM_DMA_STAT_IRQDONE; channel[codec_Left] = lrbits(bufferRx[codec_Left]); channel[codec_Right] = lrbits(bufferRx[codec_Right]); xS[0] = lrbits(bufferRx[codec_Right]); for(i = orderS - 1; i > 0; i--) { xS[i] = xS[i - 1]; } bufferTx[codec_Left] = bitslr(output); bufferTx[codec_Right] = bitslr(xS[0]); }
Hi Anthony,Can you please explain more about your application? From your code snippet I believe you performing audio talk-through application on ADSP-BF706 mini. Correct? A simple block diagram would be helpful on assisting you better on this issue.You mentioned, "I sent 1 kHz (100 mVRMS) to the BF706 ezlite mini and after I changed it to long fract or float, I got 0.0003. When I sent back to Audio Precision, it showed 81.2 mVRMS.". Do you mean that you are changing the variables to long fract/float somewhere in the code? Is yes, does the code work correctly if you do not change it?BTW, are you implementing any filtering algorithm in the code?You can also take a look at the example code provided in the Board Support Package for some additional information. The path of the example code is given below<Installation path>\Analog Devices\ADSP-BF706_EZ-KIT_Mini-Rel1.1.0\BF706_EZ-Kit_MINI\Blackfin\ExamplesThe BSP can be downloaded from the below link.download.analog.com/.../ADI_ADSP-BF706_EZ-KIT_Mini-Rel1.1.0.exeRegards,Lalitha S
Sorry, my fault. I already solved it, it's the matter of bits. At first, I used lrbits to get 32 bits data from a 24 bit ADC which is wrong. I solved by changing the ADC to 16 bits and put the data to 16 bits buffer instead. Thanks a lot for the reply, I'm really sorry for the inconvenience.
Hi Anthony,Thanks for the update.Regards,Lalitha.S