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.

Linux/TLV320AIC3104: Noise only captured when recording with mic

Part Number: TLV320AIC3104

Tool/software: Linux

Hi

Audio processor is connected on to mcasp1 and made proper configuration changes.

Facing issue with mic record on TI8148 using tlv320aic3104, only noise is captured but playback is fine (checked with pre-recorded audio).

In source i see register 17,18 are been connected to Mic3 but the same is not seen in datasheet or in my schematic.

Attaching my register dumps and audio interface schematic.

Any idea how to get rid of the noise issue.

Thanks & Regards
Sudhakar

  • Attaching the audio processor and codec schematic

  • Hello Sudhakar,

    It looks like you are shorting the differential inputs for mic1R. I imagine this was unintentional and perhaps you intended to use the SE inputs available (MIC2R/L : pins 14 and 16) as we did on the EVM?

    I'm afriad I don't see the register dumps you mentioned, can you repost those?

    Other things I'm noticing looking at your schematic:
    all unused inputs should be connected to a .47uf capacitor terminated to GND.
    The Schematic is unclear regarding the node names on both sides of C135. To me it initially looks like C135 is connected to nodes named "mic_in" on both sides. You might move the one named "Mic_IN_T" for clarity.

    best regards,
    -Steve Wilson
  • Hi Steve

    Thank you for your response, the register dumps is a below:

    root@dm814x:~# i2cdump -f -y 1 0x18

    No size specified (using byte-data access)

         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef

    00: 00 00 00 92 1c 36 b0 8a c0 70 00 01 00 00 00 20    ...??6???p.?... 

    10: 20 ff ff 00 78 78 00 78 78 06 00 fe 00 00 fe 00     ...xx.xx?.?..?.

    20: 00 01 00 00 00 c0 00 00 00 00 00 80 80 2f 2f af    .?...?.....??//?

    30: 00 00 00 0f 2f 2f af 00 00 00 0e 00 00 00 2f 2f    ...?//?...?...//

    40: af 0f 00 00 00 2f 2f af 0e 2f 2f af 2f 2f af 08    ??...//??//?//??

    50: 2f 2f af 00 00 00 0b 00 00 00 2f 2f af 0b de 0c    //?...?...//????

    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........

    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    80: 00 00 00 92 1c 36 b0 8a c0 70 00 01 00 00 00 20    ...??6???p.?... 

    90: 20 ff ff 00 78 78 00 78 78 06 00 fe 00 00 fe 00     ...xx.xx?.?..?.

    a0: 00 01 00 00 00 c0 00 00 00 00 00 80 80 2f 2f af    .?...?.....??//?

    b0: 00 00 00 0f 2f 2f af 00 00 00 0e 00 00 00 2f 2f    ...?//?...?...//

    c0: af 0f 00 00 00 2f 2f af 0e 2f 2f af 2f 2f af 08    ??...//??//?//??

    d0: 2f 2f af 00 00 00 0b 00 00 00 2f 2f af 0b de 0c    //?...?...//????

    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........

    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    Checking with the hardware team about the differential input shorting.

    Regards
    Sudhakar

  • Hi Steve

    Verified by removing short on the differential inputs. Still we see noise only captured via mic recording
    The min_in naming is just for clarity.

    Regards
    Sudhakar
  • Sudhakar,

    Please check Register 19 and register 22. Both are currently set to 0x00 however they should be set to 0x04 if you want the Right and left ADC channels to be on.

    How do you have the mic connected now? if you are still connecting to MIC1RP, and this is being sent to both the left and right ADC, please ensure that the D7 setting in Reg 21 and 22 match.

    -Steve
  • Hi Steve

    This is what am trying to do. Am able to set the register values to 0x04 via i2cset command and then am recording.

    After recording when i check the dumps, the register values are gain changed to 0x00.

    The record file on playback, either no sound or only noise is heard.

    Attaching the register dumps.

    arecord_dump.txt
    root@dm814x:~# i2cdump -f -y 1 0x18
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    10: 20 ff ff 00 78 78 00 78 78 46 00 fe 00 00 fe 00     ...xx.xxF.?..?.
    20: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    30: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    40: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    50: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    90: 20 ff ff 00 78 78 00 78 78 46 00 fe 00 00 fe 00     ...xx.xxF.?..?.
    a0: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    b0: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    c0: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    d0: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@dm814x:~# i2cset -f -y 1 0x18 19 0x04 w
    root@dm814x:~# i2cdump -f -y 1 0x18
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    10: 20 ff ff 04 00 78 00 78 78 46 00 fe 00 00 fe 00     ..?.x.xxF.?..?.
    20: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    30: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    40: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    50: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    90: 20 ff ff 04 00 78 00 78 78 46 00 fe 00 00 fe 00     ..?.x.xxF.?..?.
    a0: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    b0: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    c0: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    d0: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@dm814x:~# i2cset -f -y 1 0x18 22 0x04 w
    root@dm814x:~# i2cdump -f -y 1 0x18
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    10: 20 ff ff 04 00 78 04 00 78 46 00 fe 00 00 fe 00     ..?.x?.xF.?..?.
    20: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    30: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    40: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    50: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    90: 20 ff ff 04 00 78 04 00 78 46 00 fe 00 00 fe 00     ..?.x?.xF.?..?.
    a0: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    b0: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    c0: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    d0: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@dm814x:~# arecord -f cd -D hw:0,0 -d 30 -t wav nov14.wav
    Recording WAVE 'nov14.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    sudha: aic3x_set_bias_level : 3
    overrun!!! (at least 88.763 ms long)
    root@dm814x:~# i2cdump -f -y 1 0x18
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    10: 20 ff ff 00 78 78 00 78 78 46 00 fe 00 00 fe 00     ...xx.xxF.?..?.
    20: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    30: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    40: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    50: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    80: 00 00 00 12 1c 36 b0 8a c0 40 00 01 00 00 00 20    ...??6???@.?... 
    90: 20 ff ff 00 78 78 00 78 78 46 00 fe 00 00 fe 00     ...xx.xxF.?..?.
    a0: 00 00 00 00 44 00 00 00 00 00 00 00 00 2f 2f af    ....D........//?
    b0: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f    ...?//?...?...//
    c0: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08    ??...//??//?//??
    d0: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00    //?...?...//??..
    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00    ......?.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    root@dm814x:~# 
    
    
    

  • Hi Steve
    Now am able to Capture via Mic and Playback, but still there is noise(sound like clock ticks on right channel only).

    Record dump registers:
    No size specified (using byte-data access)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00: 00 00 00 92 1c 36 b0 8a c0 40 00 01 00 00 00 20 ...??6???@.?...
    10: 20 ff ff 04 78 78 04 78 78 46 00 fe 00 00 fe 00 ..?xx?xxF.?..?.
    20: 00 00 00 00 cc c0 00 00 00 00 00 00 00 2f 2f af ....??.......//?
    30: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f ...?//?...?...//
    40: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08 ??...//??//?//??
    50: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 c0 00 //?...?...//???.
    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 ......?.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    80: 00 00 00 92 1c 36 b0 8a c0 40 00 01 00 00 00 20 ...??6???@.?...
    90: 20 ff ff 04 78 78 04 78 78 46 00 fe 00 00 fe 00 ..?xx?xxF.?..?.
    a0: 00 00 00 00 cc c0 00 00 00 00 00 00 00 2f 2f af ....??.......//?
    b0: 00 00 00 0c 2f 2f af 00 00 00 0c 00 00 00 2f 2f ...?//?...?...//
    c0: af 0c 00 00 00 2f 2f af 0c 2f 2f af 2f 2f af 08 ??...//??//?//??
    d0: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 c0 00 //?...?...//???.
    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 ......?.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................


    Playback dump registers:
    No size specified (using byte-data access)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00: 00 00 00 92 1c 36 b0 8a c0 40 00 01 00 00 00 20 ...??6???@.?...
    10: 20 ff ff 00 78 78 00 78 78 46 00 fe 00 00 fe 00 ...xx.xxF.?..?.
    20: 00 00 00 00 00 c0 00 00 00 00 00 00 00 2f 2f af .....?.......//?
    30: 00 00 00 0f 2f 2f af 00 00 00 0e 00 00 00 2f 2f ...?//?...?...//
    40: af 0f 00 00 00 2f 2f af 0e 2f 2f af 2f 2f af 08 ??...//??//?//??
    50: 2f 2f af 00 00 00 0b 00 00 00 2f 2f af 0b de 0c //?...?...//????
    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 ......?.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    80: 00 00 00 92 1c 36 b0 8a c0 40 00 01 00 00 00 20 ...??6???@.?...
    90: 20 ff ff 00 78 78 00 78 78 46 00 fe 00 00 fe 00 ...xx.xxF.?..?.
    a0: 00 00 00 00 00 c0 00 00 00 00 00 00 00 2f 2f af .....?.......//?
    b0: 00 00 00 0f 2f 2f af 00 00 00 0e 00 00 00 2f 2f ...?//?...?...//
    c0: af 0f 00 00 00 2f 2f af 0e 2f 2f af 2f 2f af 08 ??...//??//?//??
    d0: 2f 2f af 00 00 00 0b 00 00 00 2f 2f af 0b de 0c //?...?...//????
    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 ......?.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................


    In play back register dumps its observed register 0x25 set to 0xc0 (00: HPLCOM configured as differential of HPLOUT).
    Does this have effect on noise. Tried to set the register value to 0xe0 (0: HPLCOM configured as independent single-ended output) still noise is observed.

    Any pointers about noise reduction will be helpful.

    Regards
    Sudhakar
  • Sudahkar,

    Ok, so you can now record audio from the microphone, and there is a ticking sound on the right output?

    If you are not using HPR/LCOM just power them down. do the same to the Right_LOM/P and LEFT_LOM/P outputs as well.
    HPRCOM (power down: Reg 72)
    HPLCOM (power down: Reg 58)
    RIGHT_LOM (power down: Reg 93)
    RIGHT_LOP (power down: Reg 93)
    LEFT_LOM (power down: Reg 86)
    LEFT_LOP (power down: Reg 86)

    did you AC couple the unused inputs to gnd using a 0.47uf Capacitor as i mentioned before? unused inputs must be terminated in this way to prevent unwanted noise.

    best regards,
    -Steve Wilson
  • Hi Steve

    Thank you very much for the support.

    Able to capture audio without noise and playback.

    Regards
    Sudhakar

  • Hi Steve

    I see on Right channel noise been removed as per the suggestions you made.
    But on right channel nothing is played when i playback the recorded audio.
    But when i play a pre-recorded audio am able to hear on right channel.

    Based on the below document i configured the audiio path.
    www.ti.com/.../slaa403.pdf
    Any information regarding this will be helpful.

    Register dumps are as below:

    No size specified (using byte-data access)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00: 00 00 00 92 1c 36 b0 8a c0 40 00 01 00 00 00 64 ...??6???@.?...d
    10: 64 ff ff 04 78 78 04 78 78 46 00 fe 00 00 fe 00 d..?xx?xxF.?..?.
    20: 00 00 00 00 cc 00 00 00 00 00 00 00 00 2f 2f af ....?........//?
    30: 00 00 00 0c 2f 2f af 00 00 00 0d 00 00 00 2f 2f ...?//?...?...//
    40: af 0c 00 00 00 2f 2f af 0d 2f 2f af 2f 2f af 08 ??...//??//?//??
    50: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00 //?...?...//??..
    60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 ......?.........
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    80: 00 00 00 92 1c 36 b0 8a c0 40 00 01 00 00 00 64 ...??6???@.?...d
    90: 64 ff ff 04 78 78 04 78 78 46 00 fe 00 00 fe 00 d..?xx?xxF.?..?.
    a0: 00 00 00 00 cc 00 00 00 00 00 00 00 00 2f 2f af ....?........//?
    b0: 00 00 00 0c 2f 2f af 00 00 00 0d 00 00 00 2f 2f ...?//?...?...//
    c0: af 0c 00 00 00 2f 2f af 0d 2f 2f af 2f 2f af 08 ??...//??//?//??
    d0: 2f 2f af 00 00 00 08 00 00 00 2f 2f af 08 00 00 //?...?...//??..
    e0: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 ......?.........
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    In this i see Reg:21(0x15) is always 0x78 instead of 0x04. Will this be the cause for the issue.

    I tried to make reg:21 to 0x04, but its not setting.



    Regards
    Sudhakar

  • Sudhakar,

    Just to clarify, your previous post said that you were able to capture audio and playback?

    was this the case?

    if 0x15 is always 0x78 then then LINE1R is not connected to the left ADC PGA. Which means its not connected. this would explain why you are unable to capture audio with MIC1/LINE1R.

    This register can be wrtten to, be sure to only write zeros to d0-d2

    best regards,
    -Steve
  • Hi Steve

    To clarify, Am able to capture and playback the audio.

    But it was like on left channel it was clear and on right channel only noise.

    With the suggestions made the noise on right channel is removed.

    The current problem is, not able to hear audio on right channel only (on left channel am able to hear recorded audio) of the headset.

    if 0x15 is always 0x78 then then LINE1R is not connected to the left ADC PGA. Which means its not connected. this would explain why you are unable to capture audio with MIC1/LINE1R. 

    is this because, pins 12 & 13 (MIC1RP/LINE1RP & MIC1RM/LINE1RM) shorting the differential inputs.

     

    Regards
    Sudhakar

  • Sudhakar,

    Can you post your register dump for your most recent configuration. The most recent one I have is the one you posted 11/21 and that one is clearly not the one you are using now.

    best regards,
    -Steve