This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Very very serious problems with AIC3106 on OMAP-L137

Other Parts Discussed in Thread: OMAP-L137

Dear All,

I have some serious problems with Audio codec AIC3106 on OMAP-L137 board.I want to handle the codec in ARM. I fed the codec with a clean sinusoid wave and play it on output. I used "arecord" and "aplay" functions. I have three problems:

1. The output is so noisy. The SNR is less than 50 db !!!! wow. It is so disappointing.The codec datasheet claims that its SNR is 90db. By the way, I read the codec registers. They say "all things are ok"

2. The output level is very low. I changed the setting by "amixer" function and I was successful in heightening it to 2 volts (pick to pick). How can I restore the output to 3.3 volts?

3.The codec claims that it supports 32 and 24 bit format. However, when I set the format to 24-bit the data is not really 24-bit. It seems to be 16-bit. I tested it.

We have three OMAP-L137 boards. All of them have the following problems.

I would be very thankful if someone can help me.

Thanks alot

  • Hi Jack,

    Let's separate this issue from OMPA-L137 EVM .Can you please post this question to Audio converter forum hope they will answer to your specific question about the AIC3106 codec and make sure all you’re settings are correct and what is the test setup to measure the noise level …etc.

    http://e2e.ti.com/support/data_converters/audio_converters/default.aspx

    Regards

    Antony

  • Dear Antony,

    Thank you

    The audio engineers say that the OMAP engineers should answer these questions.

    Best regards,

  • Hi Jack ,

    Here is the answer from our experts

    1. The output is so noisy. The SNR is less than 50 db !!!! wow. It is so disappointing.The codec datasheet claims that its SNR is 90db. By the way, I read the codec registers. They say "all things are ok"

    There’s no such thing as “all things are OK.”  If he has the AIC3106 configured one way and the McASP on L137 set up another way (differing bit depth, right justified vs left justified, different clock polarity, etc), then it’s not OK.  He should grab a scope and look at the bit clock vs frame sync vs data at the input and output of McASP and see what’s different, for starters.

    2. The output level is very low. I changed the setting by "amixer" function and I was successful in heightening it to 2 volts (pick to pick). How can I restore the output to 3.3 volts?

    I don’t know what “amixer” is.  If it’s a volume function on the DSP/ARM, then someone who knows the software can help him.  If it’s a function to directly change the analog output level, then it’s a codec question and they need to help him with it.  But if he’s seeing low output level, first step is to figure out if the ARM side code is applying any attenuation.  That shouldn’t be hard to find.

    3.The codec claims that it supports 32 and 24 bit format. However, when I set the format to 24-bit the data is not really 24-bit. It seems to be 16-bit. I tested it.

    Sounds like a question for the codec team, but I would ask: what data?  The data going from AIC to L137?  Or the data going from L137 back to ADC?

    Regards

    Antony

  • Hi, you may want to navigate to the below link and grab the sample code there.  There should be a low level test program for the stereo codec.  It's a good starting point/sanity check.

    http://support.spectrumdigital.com/boards/evmomapl137/revg/

  • Dear Antony,

    I did not change any things. I used the default setting of the board and the software. I think the default setting of  a board primarily should give the best signal in terms of SNR. The setting of the audio codec registers are as follows: (the register values are in hexadecimal format)

    Reg[0]=0                                                                        
    Reg[1]=80                                                                       
    Reg[2]=0                                                                        
    Reg[3]=10                                                                       
    Reg[4]=4                                                                        
    Reg[5]=0                                                                        
    Reg[6]=0                                                                        
    Reg[7]=0                                                                        
    Reg[8]=0                                                                        
    Reg[9]=0                                                                        
    Reg[10]=0                                                                       
    Reg[11]=1                                                                       
    Reg[12]=0                                                                       
    Reg[13]=0                                                                       
    Reg[14]=0                                                                       
    Reg[15]=18                                                                      
    Reg[16]=18                                                                      
    Reg[17]=f                                                                       
    Reg[18]=f0                                                                      
    Reg[19]=40                                                                      
    Reg[20]=78                                                                      
    Reg[21]=78                                                                      
    Reg[22]=40                                                                      
    Reg[23]=78                                                                      
    Reg[24]=78                                                                      
    Reg[25]=0                                                                       
    Reg[26]=0                                                                       
    Reg[27]=fe                                                                      
    Reg[28]=0                                                                       
    Reg[29]=0                                                                       
    Reg[30]=fe                                                                      
    Reg[31]=0                                                                       
    Reg[32]=18                                                                      
    Reg[33]=18                                                                      
    Reg[34]=0                                                                       
    Reg[35]=0                                                                       
    Reg[36]=0                                                                       
    Reg[37]=0                                                                       
    Reg[38]=0                                                                       
    Reg[39]=0                                                                       
    Reg[40]=0                                                                       
    Reg[41]=0                                                                       
    Reg[42]=6c                                                                      
    Reg[43]=80                                                                      
    Reg[44]=80                                                                      
    Reg[45]=f                                                                       
    Reg[46]=f                                                                       
    Reg[47]=8f                                                                      
    Reg[48]=0                                                                       
    Reg[49]=0                                                                       
    Reg[50]=0                                                                       
    Reg[51]=c                                                                       
    Reg[52]=f                                                                       
    Reg[53]=f                                                                       
    Reg[54]=8f                                                                      
    Reg[55]=0                                                                       
    Reg[56]=0                                                                       
    Reg[57]=0                                                                       
    Reg[58]=c                                                                       
    Reg[59]=0                                                                       
    Reg[60]=0                                                                       
    Reg[61]=0                                                                       
    Reg[62]=f                                                                       
    Reg[63]=f                                                                       
    Reg[64]=8f                                                                      
    Reg[65]=c                                                                       
    Reg[66]=0                                                                       
    Reg[67]=0                                                                       
    Reg[68]=0                                                                       
    Reg[69]=f                                                                       
    Reg[70]=f                                                                       
    Reg[71]=8f                                                                      
    Reg[72]=c                                                                       
    Reg[73]=f                                                                       
    Reg[74]=f                                                                       
    Reg[75]=8f                                                                      
    Reg[76]=f                                                                       
    Reg[77]=f                                                                       
    Reg[78]=8f                                                                      
    Reg[79]=8                                                                       
    Reg[80]=f                                                                       
    Reg[81]=0                                                                       
    Reg[82]=80                                                                      
    Reg[83]=0                                                                       
    Reg[84]=0                                                                       
    Reg[85]=0                                                                       
    Reg[86]=8                                                                       
    Reg[87]=0                                                                       
    Reg[88]=0                                                                       
    Reg[89]=0                                                                       
    Reg[90]=f                                                                       
    Reg[91]=0                                                                       
    Reg[92]=80                                                                      
    Reg[93]=8                                                                       
    Reg[94]=0                                                                       
    Reg[95]=0                                                                       
    Reg[96]=0                                                                       
    Reg[97]=0                                                                       
    Reg[98]=0                                                                       
    Reg[99]=0                                                                       
    Reg[100]=0                                                                      
    Reg[101]=0                                                                      
    Reg[102]=2                                                                      
    Reg[103]=0                                                                      
    Reg[104]=0                                                                      
    Reg[105]=0                                                                      
    Reg[106]=0                                                                      
    Reg[107]=0                                                                      
    Reg[108]=0                                                                      
    Reg[109]=0       

    I used a signal generator to generate a sinusoid signal shown in Figure 1. It is clean. Then, I used following instruction that captures from line in and plays on line out (ALSA driver):

    arecord -d 20 -D 'hw:0,0' -r 96000 -f S32_LE -c 2 | aplay -D 'hw:0,0' -c 2

    I saw the output by a scope. Figure 2 shows the result. The result is so noisy. Our analysis by Matlab shows that the SNR is about 50 db.

    Figure 1

    Figure 2

    We have bought Three OMAP-L137 boards. All have the same mistake.

    Thanks,

    Jone,