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.

TLV320AIC3262: Headset mic not working!

Part Number: TLV320AIC3262
Other Parts Discussed in Thread: AM5728

Tool/software:

Hello All ,

We have a custom board based on am5728 SOC. It has TLV320AIC3262 audiocodec device connected to it.

We are unable to use mic of any headset connected on the 3.5 mm jack.

Although we are able to hear stereo sound on the headset. 

Please help in resolving the issue!

Thanks!

 

  • Hi Vishal,

    Do you have a circuit diagram of the headset/mic connection? Also, check to make sure your ADC path is enabled in the codec. Let me know any more information you have about the system so that we can better assist you.

    Best,
    Mir Jeffres

  • Hi,

    Please find the attached:

    1. Circuit diagram for connection to audio codec. Headset is connected
    through J8.

    2. Circuit diagram of audio jack board(ABV), J1 on this board is
    connected to J8 on main board. Audio jack(J2) used is CUI SJ-43515TS.

  • This looks good. What I2C data are you sending to configure the device? Where do you want the headset microphone signal to be routed? There are two types of analog bypass modes that the IN1L pin could be sending to, either the LOL or the RECP, or if you do not have it set to analog bypass then you should make sure you enabled the ADC and that the left channel is enabled. Check out the Applications Reference Guide for the device. Specifically check out sections 5.3.43, 5.4.17, and 5.5.5 for some potential registers to look out for.

    If you do not have an I2C script, if you can attach a register dump that will help me to debug your issue.

    Best,
    Mir

  • Hi,

    We using ADC and the left channel is enabled. PFA the i2c commands to enable stereo support in headset for your reference.

    #!/bin/bash

    #OP CHANNEL
    /usr/sbin/i2cset -f -y 3 0x18 0x00 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x43 0x94
    /usr/sbin/i2cset -f -y 3 0x18 0x25 0xba
    /usr/sbin/i2cset -f -y 3 0x18 0x3f 0xc0
    /usr/sbin/i2cset -f -y 3 0x18 0x40 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x00 0x01

    # HANDSFREE MIC AND SPEAKER-OFF
    /usr/sbin/i2cset -f -y 3 0x18 0x2e 0x7f #Not-Route LOL to SPK-Left @ 0dB
    /usr/sbin/i2cset -f -y 3 0x18 0x2f 0x7f #Not-Route LOR to SPK-Right @ 0dB
    /usr/sbin/i2cset -f -y 3 0x18 0x30 0x00 #Mute Left & Right Speaker
    /usr/sbin/i2cset -f -y 3 0x18 0x2d 0x00 #Power-Down Stereo Speaker

    #HANDSET MIC AND SPEAKER -OFF
    /usr/sbin/i2cset -f -y 3 0x18 0x16 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x08 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x24 0x7f
    /usr/sbin/i2cset -f -y 3 0x18 0x25 0x7f
    /usr/sbin/i2cset -f -y 3 0x18 0x26 0x7f
    /usr/sbin/i2cset -f -y 3 0x18 0x28 0x39
    /usr/sbin/i2cset -f -y 3 0x18 0x29 0xb9
    /usr/sbin/i2cset -f -y 3 0x18 0x2a 0x08

    #HEADSET ON (MIC NOT WORKING)
    /usr/sbin/i2cset -f -y 3 0x18 0x03 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x04 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x08 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x09 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x1f 0x8e
    /usr/sbin/i2cset -f -y 3 0x18 0x20 0x8e
    /usr/sbin/i2cset -f -y 3 0x18 0x21 0x28
    /usr/sbin/i2cset -f -y 3 0x18 0x23 0x10
    /usr/sbin/i2cset -f -y 3 0x18 0x1b 0x37 # Route LDACM to HPR (for stereo support in headphones)

    #ADC CONFIG
    /usr/sbin/i2cset -f -y 3 0x18 0x00 0x01
    /usr/sbin/i2cset -f -y 3 0x18 0x33 0x40
    /usr/sbin/i2cset -f -y 3 0x18 0x34 0x80
    /usr/sbin/i2cset -f -y 3 0x18 0x36 0x80
    /usr/sbin/i2cset -f -y 3 0x18 0x37 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x39 0xa0

    /usr/sbin/i2cset -f -y 3 0x18 0x3b 0x2f
    /usr/sbin/i2cset -f -y 3 0x18 0x3c 0x2f
    /usr/sbin/i2cset -f -y 3 0x18 0x3d 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x00 0x00
    /usr/sbin/i2cset -f -y 3 0x18 0x51 0xc0
    /usr/sbin/i2cset -f -y 3 0x18 0x52 0x00

  • Hi,

    From this script, I can tell you are setting the headset microphone to be IN1L, and IN1L is set to the right and left mic PGA. How are you getting the PGA's signal to test if the headset works? You will probably want to send it to MAL/MAR if you want the microphone signal to be played in the headphones. Otherwise, you can send the IN1L/IN1R signal to RECP or RECM and measure the pinout. Currently, your settings do not power RECP and RECM, it is powered down. This is set in your line 0x18 0x28 0x39 - change it to 0xc0. You will also need to change the line before that one, 0x18 0x26 0x7f, to route the In1L input to the RECP driver. Try changing the value you set this register to 0x00 to avoid muting the RECP volume control.

    One more change that you could make is to edit register 0x33 on page 1 to select the option that powers MICBIAS_EXT irrespective of whether microphone is detected or not. Maybe your headset microphone is not the standard impedance that the device is expecting, and it is just not powering the microphone bias. You will need to change your line of 0x18 0x33 0x40 to 0x48. 

    Let me know if this does not fix your problem.

    Best,
    Mir