Linux/TLV320ADC3101: ADC3101 Overflow Interrupt

Part Number: TLV320ADC3101

Tool/software: Linux

HI,

    The configuration of audio codec tlv320adc3101 has been a success and we are able to capture the audio using mic input but we are getting continuous overflow interrupt while trying to do recording

As per the datasheet, Overflow interrupt happens when the AGC target level is kept very high and the energy in the input signal increases faster than the attack time. So, we tried to reduce the AGC Target Level to Minimum and tried but we are facing the same issue also we tried to control the attack time. 

By Default AGC Target Level is set to -5.5db

Below are the configuration settings for reference,

Page 0 Register Setting:

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 20 00 00 11 04 00 00 00 00 00 00 00 00 00 .. ..??.........
10: 00 00 01 02 80 80 04 00 00 00 01 00 00 02 01 00 ..?????...?..??.
20: 00 10 00 00 22 00 02 00 00 00 00 00 00 00 00 00 .?..".?.........
30: 16 00 00 15 00 12 02 02 00 00 00 44 00 02 00 00 ?..?.???...D.?..
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
50: 00 00 00 00 00 00 80 3e 50 50 00 0c 03 00 80 3e ......?>PP.??.?>
60: 50 50 00 0c 03 00 00 00 00 00 00 00 00 00 00 00 PP.??...........
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
e0: 00 00 00 00 00 00 00 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 ................

Page 1 Register Setting

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: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?...............
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
30: 00 00 00 50 fc 00 3f fc 00 3f 00 46 46 00 00 00 ...P?.??.?.FF...
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60: 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
e0: 00 00 00 00 00 00 00 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 ................

Thanks,

Mohan

27 Replies

  • Hi, Mohan,

    In order to have a better approach to this, could you try disabling the AGC function of the ADC3101? Do you still get an overflow?

    Best regards,
    Luis Fernando Rodríguez S.
  • In reply to Luis Fernando Rodríguez S.:

    Hi Luis,

    By disabling AGC function, we didn't receive any Overflow interrupt.

    Please find the attachment for the register changes made after disabling AGC

  • In reply to Mohan Prasath:

    Hi, Mohan,

    Based on your registers configuration, it seems that the decay time is not being configured. It seems to be placed in default state. Could you try increasing this time?

    Additionally, could you try reducing the analog inputs gain from 0dB to -6dB? (Please take a look at the page 1 / registers 52-55 for details).

    Best regards,
    Luis Fernando Rodríguez S.
  • In reply to Luis Fernando Rodríguez S.:

    Hi Luis,

    Sorry for the delayed response

    We have configured decay time(both Left and Right) to 0x50, and we reduced the input gain to -6db as mentioned in the prev post. 

    Here are the observations we made,

    1. As in silent environment, there is no Overflow Interrupt. But whenever we tried to play something or given input as a human voice, we are getting an Overflow interrupt. 

    2. We configured both Decay time and Attack time as 0c50. Can we know what is the recommended Decay time, Attack time for both left and right?

    Hereby I'm attaching the register configurations for your reference,

    adc.txt

  • In reply to Mohan Prasath:

    Hi Luis,

    Is there any update on this ?

  • In reply to Mohan Prasath:

    Hi, Mohan,

    Could you provide details about the input signal level that you are using? If the input level is too high, there's a risk to have an overflow even if the AGC is configured correctly.

    Additionally, could you provide the clock values that you are using (MCLK, BCLK and WCLK)?

    Best regards,
    Luis Fernando Rodríguez S.
  • In reply to Luis Fernando Rodríguez S.:

    Hi Luis,

    Could you provide details about the input signal level that you are using?

    >>>> Input is "Human voice " and its intensity is nominal.

    Clock values that you are using (MCLK, BCLK and WCLK)?

    >>> MCLK -> 4.096MHz
    >>> BCLK -> 512KHz
    >>> WCLK -> 16KHz
  • In reply to Mohan Prasath:

    Hi, Mohan,

    When the PLL is used, it is required to respect the datasheet conditions described in Audio Clock Generation section:

    www.ti.com/.../slas553b.pdf

    You are using a MCLK = 4.096MHz and a 16-KHz sampling rate (WCLK). So, I would recommend to use the following PLL values:

    P = R = 1
    J = 24
    D = 0
    NADC = 8
    MADC = 6
    AOSR = 128

    Best regards,
    Luis Fernando Rodríguez S.
  • In reply to Luis Fernando Rodríguez S.:

    Hi Luis,

    We configured the values as per the MCLK, We didnt receive any interrupts.

    Configured Registers,

    MCLK = 4.096MHz
    BCLK = 512KHz
    WCLK = 16KHz
    P = R = 1
    J = 24
    D = 0
    NADC = 8
    MADC = 6
    AOSR = 128

    Issue's Faced:

    1.) Recorded File has no clarity and is very bad to hear.

    2.) As Changing the NADC and MADC to the default settings, we are getting an clear voice as in pervious, but we are receiving interrupts.

    Could you give me the registers values for our MCLK as mentioned above?
  • In reply to Mohan Prasath:

    Hi, Mohan,

    You would need to configure the PLL as the following values:

    Page 0 / Register 4: 0x03 (MCLK as PLL_CLKIN, PLL_CLK as CODEC_CLKIN)
    Page 0 / Register 5: 0x91 (PLL enabled, P = R = 1)
    Page 0 / Register 6: 0x18 (J = 24)
    Page 0 / Register 18: 0x88 (NADC enabled, NADC = 8)
    Page 0 / Register 19: 0x86 ( MADC enabled, MADC = 6)

    Best regards,
    Luis Fernando Rodríguez S.