• Not Answered

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

25 Replies

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

    Hi Luis, 

    These are the register configurations we had set as per your suggestions. But, we are still receiving Overflow interrupt. 

    Below are the interrupts we are Keep on receiving on all the time,

    *  Left ADC overflow flag
    * ADC barrel-shifter output-overflow flag
    * Right ADC overflow flag

    Below are the testing Made:

    1. As the input signal is within 1 meter, we are not receiving any overflow Interrupt.

    2. As Speaker is connected nearby Mic, When we are trying to play thro' Speaker and parallelly recording then we are receiving Overflow Interrupt.

    Below are the register configurations,

  • In reply to Mohan Prasath:

    Hi Luis,

    Any update on this?

  • In reply to Mohan Prasath:

    Hi, Mohan,

    Sorry for this late reply. Could you tell me if the overflow flag is enabled without any signal at the analog input? Additionally, could you provide the signal level or any capture of you analog input?

    Thank you.

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

    Hi Luis,

    By Default, Overflow flag is configured as an Interrupt.

    As I previously mentioned, the human voice is given as an input.

    I'll be sharing the captured files hereby, with the configuration's as Sampling Frequency as 16k and MCLK as 4.096M, tested with different ranges(in meters).

    As Closely analyzed, We are not receiving any Overflow interrupt, if the input signal(human voice) is more than 0.5meters.

    We do try to play a music, and we have observed the same behavior, we only receive Overflow flow interrupt, if the input signal is very close to the connected microphone.

  • In reply to Mohan Prasath:

    Hi, Mohan,

    Thank you for the recorded sounds, they were helpful to understand this situation.

    It seems that the overflow interrupt is enabled because the sound in more intense below 0.5 meters. So, if you are looking to eliminate this overflow interrupt, you would need to reduce the signal level with the help of the PGA. Particularly, I would recommend to use the AGC and fix a target level. In that way, the overflow interrupt will not be enabled even at 0.5 meters or below.

    Please let me know if this was clear and if you have additional questions or comments.

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

    Hi Luis,

    We tried for different target levels and we observed, as the target level decreases, the occurrence of overflow interrupt is less, but still we seen in fewer numbers and also the quality of sound(less intense) gets decreased.

    Could you please recommend the AGC parameters values to configure as mentioned?

  • In reply to Mohan Prasath:

    Mohan,

    In addition to the low target level, I recommend to increase the attack and decay times. The target level in some cases takes a lot of time to be reached. This enables the overflow flag. However, if the attack and decay times are increased, the target will be reached quickly, avoiding to enable the overflow flag.

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

    Hi Luis,

    As per our experiments and observations, by decreasing the target level and increasing the attack and decay times, we have seen less intensity at the microphone end. Below is our observations,

    Target Level Attack Time Decay Time Analog Input Gain Overflow interrupt Status Intensity
    Distance(2m) Distance(0.2m)
    High(-5.5) 0x50 0x50 -6dB No Enormous Norrnal
    High(-5.5) 0x59 0x59 -6dB No Less Very Less
    High(-5.5) 0x5f 0x5f -6dB No Less Very Less
    High(-5.5) 0xa0 0xa0 -6dB No Enormous Satisfactory
    -10 0xa0 0xa0 -6dB No Enormous Nornal
    -10 0xa4 0xa4 -6dB No Less Very Less
    -14 0xa0 0xa0 -6dB No Less Normal

    If we are decreasing the target level, the intensity of the sound gets decreased irrespective of the attack and decay time.

    As we observed, the intensity is inversely proportional to the attack and decay time.

    We tried all the scenarios as you suggested, but we can't able to overcome Overflow Interrupt occurring.

    It would be very helpful if you suggest the recommended register values.

  • In reply to Mohan Prasath:

    Hi, Mohan,

    As mentioned in the datasheet the overflow flag may appear due to saturation or distortion in the input. Additionally, if the AGC target level is kept very high and the energy in the input signal increases faster than the attack time. So, it is important to have a low AGC level(I would recommend -10 or -14dB) and a high attack time (I would recommend to use a value around the 10 x (32/fs) and if you require additional time, you may use the multiply factor (page 0 / register 89 for left channel and page 0 / register 97 for right channel).

    Additionally, I noticed in your registers configuration that the page 0 / register 48 is configured as 0x16. It means that you interrupt INT1 is enabled for overflow flags, AGC noise and ADC data-available. Could you try configuring it only for overflow flags (0x04)?

    Best regards,
    Luis Fernando Rodríguez S.