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.

TLV320AIC3109-Q1: codec have no output for playing

Part Number: TLV320AIC3109-Q1
Other Parts Discussed in Thread: TDA4VM

HI,TI

      We are debugging TLV320AIC3109 on our TDA4VM board. The driver refers to tlv320aic3x.c and we modified the corresponding register according to the chip specification. 

     Codec  working on slave mode,  right-justified timing,  route to HPCOM/HPOUT and LEFT/RIGHT_LOM/LOP.  Now we found that codec have no output when playing music. We measured the bit clock, word clock, and data, and they are all correct. The value of the register is shown below when playback.

81450 16:31:34
[  475.230974] tlv320--aic3x_mute--audio test--reg94:0x00
[  475.236104] tlv320--aic3x_mute--audio test--reg95:0x00
[  475.241235] tlv320--aic3x_mute--audio test--reg96:0x00
[  475.246361] tlv320--aic3x_mute--audio test--reg97:0x00
[  475.251486] tlv320--aic3x_mute--audio test----------------------------------------------------
[  475.260081] tlv320--aic3x_mute--audio test--reg81:0xaf
[  475.265208] tlv320--aic3x_mute--audio test--reg82:0xaf
[  475.270335] tlv320--aic3x_mute--audio test--reg84:0xaf
[  475.275461] tlv320--aic3x_mute--audio test--reg86:0x01
[  475.280586] tlv320--aic3x_mute--audio test--reg88:0xaf
[  475.285719] tlv320--aic3x_mute--audio test--reg89:0xaf
[  475.290853] tlv320--aic3x_mute--audio test--reg91:0xaf
[  475.295981] tlv320--aic3x_mute--audio test--reg93:0x01
[  475.301106] tlv320--aic3x_mute--audio test----------------------------------------------------
[  475.309698] tlv320--aic3x_mute--audio test--reg34:0x00
[  475.314824] tlv320--aic3x_mute--audio test--reg36:0x00
[  475.319949] tlv320--aic3x_mute--audio test--reg37:0xc0
[  475.325075] tlv320--aic3x_mute--audio test--reg38:0x00
[  475.330200] tlv320--aic3x_mute--audio test--reg39:0x00
[  475.335326] tlv320--aic3x_mute--audio test--reg40:0x40
[  475.340452] tlv320--aic3x_mute--audio test--reg41:0x00
[  475.345579] tlv320--aic3x_mute--audio test--reg42:0x00
[  475.350708] tlv320--aic3x_mute--audio test--reg43:0x2f
[  475.355834] tlv320--aic3x_mute--audio test----------------------------------------------------
[  475.364427] tlv320--aic3x_mute--audio test--reg60:0xaf
[  475.369553] tlv320--aic3x_mute--audio test--reg61:0xaf
[  475.374680] tlv320--aic3x_mute--audio test--reg63:0xaf
[  475.379806] tlv320--aic3x_mute--audio test--reg65:0x58
[  475.384932] tlv320--aic3x_mute--audio test--reg67:0xaf
[  475.390063] tlv320--aic3x_mute--audio test--reg68:0xaf
[  475.395192] tlv320--aic3x_mute--audio test--reg70:0xaf
[  475.400322] tlv320--aic3x_mute--audio test--reg72:0x58
[  475.405450] tlv320--aic3x_mute--audio test----------------------------------------------------
[  475.414045] tlv320--aic3x_mute--audio test--reg8:0x20
[  475.419086] tlv320--aic3x_mute--audio test--reg9:0x80
[  475.424125] tlv320--aic3x_mute--audio test--reg10:0x00
[  475.429251] tlv320--aic3x_mute--audio test--reg11:0x01
[  475.434376] tlv320--aic3x_mute--audio test--reg12:0x00
[  475.439502] tlv320--aic3x_mute--audio test--reg13:0x00
[  475.444628] tlv320--aic3x_mute--audio test--reg14:0x00
[  475.449756] tlv320--aic3x_mute--audio test--reg15:0x2f
[  475.454883] tlv320--aic3x_mute--audio test--reg16:0x2f
[  475.460009] tlv320--aic3x_mute--audio test--reg19:0x00
[  475.465133] tlv320--aic3x_mute--audio test--reg21:0x78
[  475.470260] tlv320--aic3x_mute--audio test--reg22:0x00
[  475.475387] tlv320--aic3x_mute--audio test----------------------------------------------------
[  475.483980] tlv320--aic3x_mute--audio test--reg26:0x00
[  475.489105] tlv320--aic3x_mute--audio test--reg27:0xfe
[  475.494231] tlv320--aic3x_mute--audio test--reg28:0x00
[  475.499357] tlv320--aic3x_mute--audio test--reg32:0x18
[  475.504484] tlv320--aic3x_mute--audio test----------------------------------------------------
[  475.513080] tlv320--aic3x_mute--audio test--reg0:0x00
[  475.518254] tlv320--aic3x_mute--audio test--reg1:0x00
[  475.523299] tlv320--aic3x_mute--audio test--reg2:0x00
[  475.528340] tlv320--aic3x_mute--audio test--reg3:0x10
[  475.533381] tlv320--aic3x_mute--audio test--reg4:0x04
[  475.538424] tlv320--aic3x_mute--audio test--reg5:0x00
[  475.543462] tlv320--aic3x_mute--audio test--reg6:0x00
[  475.548500] tlv320--aic3x_mute--audio test--reg7:0x98

    So How can we check the working status of the codec? such as whether data is received and correctly parsed. We will be very  pleased if you can provide  register configuration of codec.

   Best regards,
   Zhang

  • Hi,

    Here are the register settings for Differential LINEOUT and SE Headphone path, you will need to set the digital audio per your system like the format, clock etc.

    Line Outputs (differential signals):
    - Left and Right Line outputs
    - DAC to Left Line Output
    - DAC to Right Line output
    - Mixer gain = 0dB
    - Line Output amplifier gain = 0dB}

    Commands=
    {w 30 00 00
    w 30 07 8C
    w 30 28 80
    w 30 2B 00
    w 30 0E 80
    w 30 25 80
    w 30 26 10
    w 30 52 80
    w 30 59 80
    w 30 5D 0D
    w 30 56 0D}

    Headphone High Power Outputs:
    - Single-ended headphone outputs
    - AC-coupled headphone configuration
    - DAC_1 routed to HPOUT
    - DAC_1 routed to HPCOM
    - Mixer gain = 0dB
    - Output amplifier gain = 0dB}

    Commands=
    {w 30 07 8C
    w 30 28 80
    w 30 2B 00
    w 30 0E 80
    w 30 25 80
    w 30 26 10
    w 30 44 80
    w 30 3D 80
    w 30 41 0D
    w 30 48 0D}

    Regards.

  • Hi,

        Thanks for your support.The audio is able to output, but there is a noise in the bass. How can we adjust it?

        In addition, how to set the register to use mic1p/mic1M?

     Best regards,
     Zhang

  • Noise could be caused by several things, maybe your clock/digital setting is not correct.

    Here is an apps. note for most common audio noise.

    Common Noise Issues in Audio Codecs (ti.com)

    The attached diagram shows the register for the block you want to set, for example in LINE 1 input it has (R19, R24) which represents the register address 19 and 24. You can then cross-check against the datasheet register fields.

    Regards.