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/TLV320ADC3101:ADC3101溢出中断

Guru**** 2353800 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/591630/linux-tlv320adc3101-adc3101-overflow-interrupt

部件号:TLV320ADC3101

工具/软件:Linux

您好,

  音频编解码 器tlv320adc3101的配置 非常成功,我们可以使用麦克风输入捕获音频,但在尝试录制时,我们会收到连续的溢出中断

根据数据表,当AGC目标级别保持很高且输入信号中的能量增长速度高于攻击时间时,会发生溢出中断。 因此,我们尝试将AGC目标级别降至最低,但我们面临相同的问题,我们也尝试控制攻击时间。  

默认情况下,AGC目标级别设置为-5.5db

以下是供 参考的配置设置,

第0页寄存器设置:

未指定大小(使用字节数据访问)
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 00 00 00 00 00 00 00 00 ???
10:00 00 01 02 80 80 04 00 00 00 01 00 02 01 00????? ?????
20:00 10 00 00 22 00 02 00 00 00 00 00 00 00 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?...
40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50:00 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 00 00 00 PP.??..........
70:00 00 00 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 00 00 00
90:00 00 00 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 00 00 00
B0:00 00 00 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 00 00 00
D0:00 00 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 00 00 00
F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

第1页注册设置

未指定大小(使用字节数据访问)
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 00 00?..........
10:00 00 00 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 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 00 00 00
50:00 00 00 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 00 00 00
70:00 00 00 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 00 00 00
90:00 00 00 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 00 00 00
B0:00 00 00 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 00 00 00
D0:00 00 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 00 00 00
F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

谢谢!

Mohan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    为了更好地解决此问题,您是否可以尝试禁用ADC3101的AGC功能? 你还会遇到溢出吗?

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    通过禁用AGC功能,我们没有收到任何溢出中断。

    请查找禁用AGC后所做寄存器更改的附件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    根据您的寄存器配置,似乎没有配置衰减时间。 它似乎处于默认状态。 您是否可以尝试增加此时间?

    此外,您是否可以尝试将模拟输入增益从0dB降低到-6dB? (请查看第1页/注册52-55了解详细信息)。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    很抱歉回复延迟

    我们已将衰减时间(左侧和右侧)配置为0x50,并将输入增益降低至-6dB,如prev POST中所述。  

    以下是我们提出的意见,

    1.与无声环境一样,没有溢出中断。 但每当我们尝试播放某种内容或将输入作为人类的声音时,我们就会遇到溢出中断。  

    2.我们将 衰减时间和攻击时间都配置为0c50。 我们能知道左右两侧的建议衰减时间和攻击时间是多少吗?

    在此附上寄存器配置供您 参考,

    e2e.ti.com/.../adc.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    您能否提供有关您正在使用的输入信号电平的详细信息? 如果输入电平过高,即使AGC配置正确,也存在溢出风险。

    此外,您能否提供您正在使用的时钟值(MCLK,BCLK和WCLK)?

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Luis,

    您能否提供有关您正在使用的输入信号电平的详细信息?

    >>>输入为"人声",其强度为标称值。

    您正在使用的时钟值(MCLK,BCLK和WCLK)?

    >>MCLK ->4.096MHz
    >>> BCLK -> 512KHz
    >>> WCLK -> 16KHz
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    使用PLL时,需要遵守“音频时钟生成”一节中所述的数据表条件:

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

    您正在使用MCLK = 4.096MHz和16-KHz采样率(WCLK)。 因此,我建议使用以下PLL值:

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

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Luis,

    我们按照MCLK配置了这些值,但没有收到任何中断。

    已配置的寄存器,

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

    面临的问题:

    1) 录制的文件不清晰,听起来非常糟糕。

    2) 将NADC和mAdc更改为默认设置时,我们将获得与上一个相同的清晰语音,但我们正在接收中断。

    您能否提供上述MCLK的寄存器值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    您需要将PLL配置为以下值:

    第0页/注册4:0x03 (MCLK为PLL_CLKIN,PLL_CLK为CODEC _CLKIN)
    第0页/注册5:0x91 (已启用PLL,P = R = 1)
    第0页/注册6:0x18 (J = 24)
    第0页/注册18:0x88 (NADC已启用,NADC = 8)
    第0页/注册19:0x86 (mAdc已启用,mAdc =6)

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,  

    这些是我们根据您的建议设置的寄存器配置。 但是,我们仍在接收溢出中断。  

    以下是我们始终收到的中断,

    * 左ADC溢出标志
    * ADC筒形换档器输出溢流标志
    *右ADC溢出标志

    以下是所做的测试:

    1.由于输入信号在1米范围内,因此我们不会收到任何溢出中断。

    2.由于扬声器连接在麦克风附近,当我们尝试播放扬声器并平行 录制时,我们将接收到溢出中断。

    以下是寄存器配置,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    很抱歉回复太晚。 您能否告诉我是否启用了溢出标志,而模拟输入端没有任何信号? 此外,您能否提供信号电平或模拟输入的任何捕获?

    谢谢你。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    默认情况下,溢出标志被配置为中断。

    正如我前面提到的那样,人的声音是作为一种投入而发出的。

    我将在此共享捕获的文件,配置为采样频率为16k,MCLK为4.096M,经过不同范围(米)的测试。

    据分析,如果输入信号(人声)超过0.5米,我们不会收到任何溢出中断。

    我们确实尝试播放音乐,并且观察到相同的行为,只有 在输入信号非常接近所连接的microphone.e2e.ti.com/.../human_5F00_voice_5F00_1 m.wav时,我们才会收到溢出流中断

    e2e.ti.com/.../human_5F00_voice_5F00_2 m .wav

    e2e.ti.com/.../human_5F00_voice_5F00_0.5 m .wav

    e2e.ti.com/.../human_5F00_voice_5F00_0.2 m .wav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    感谢您录制的声音,它们有助于了解这种情况。

    似乎启用了溢出中断,因为在0.5 仪表下声音更强烈。 因此,如果您想要消除此溢出中断,您需要借助PGA降低信号级别。 特别是,我建议使用AGC并确定目标级别。 这样,即使在0.5 仪表或更低的值下也不会启用溢出中断。

    请告诉我这是否清楚,以及您是否还有其他问题或意见。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    我们尝试了不同的目标级别, 我们观察到,随着目标级别的降低,溢出中断的发生次数会减少,但我们仍然看到 数字更少,而且声音质量(强度更低)也会降低。

    您是否可以推荐所述的要配置的AGC参数值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mohan

    除了目标水平较低之外,我建议增加攻击和衰变时间。 在某些情况下,要达到目标水平需要花费大量时间。 这将启用溢出标志。 但是,如果攻击和衰减时间增加,则会快速达到目标,避免启用溢出标志。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    根据我们的实验和观察,通过降低目标水平并增加攻击和衰减时间,我们发现麦克风末端的强度较低。下面是我们的观察结果,

    目标水平 攻击时间 衰减时间 模拟输入增益 溢出中断状态 强度
    距离(2 m) 距离(0.2 m)
    高(- 5.5) 0x50 0x50 -6dB 巨大 诺尔
    高(- 5.5) 0x59 0x59 -6dB 更少 非常少
    高(- 5.5) 0x5f 0x5f -6dB 更少 非常少
    高(- 5.5) 0xA0 0xA0 -6dB 巨大 满意
    -10 0xA0 0xA0 -6dB 巨大 诺尔
    -10 0xa4. 0xa4. -6dB 更少 非常少
    -14. 0xA0 0xA0 -6dB 更少 正常

    如果我们降低目标水平,则无论攻击和衰减时间如何,声音强度都会降低。

    正如我们所观察到的,强度与攻击和衰变时间成反比。

    我们按照 您的建议尝试了所有方案,但我们无法克服出现的溢出中断。

    如果您建议推荐的寄存器值,这将非常有用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mohan,

    如数据表中所述,由于输入中的饱和或失真,可能会出现溢出标志。 此外,如果AGC目标级别保持很高且输入信号中的能量增加速度快于攻击时间。 因此,具有较低的AGC级别(我建议-10或-14dB)和较高的攻击时间(我建议使用10 x左右的值(32/FS),如果您需要额外的时间,可以使用乘数 (第0页/左通道注册89,右通道注册97)。

    此外,我注意到在您的寄存器配置中,第0页/寄存器48被配置为0x16。 这意味着中断INT1已启用,以获得溢出标志,AGC噪声和ADC数据。 是否可以尝试仅为溢出标志(0x04)配置它?

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    根据建议的建议值,我们修改了参数并针对不同的情况进行了测试,

    AGC级别(dB) 攻击时间 中断配置 溢流中断发生次数(执行2-3秒的观察) 声音强度
    2 m 1 m 0.5 m 近距离(以距离计)
    -14. 0x50 (11*(32/FS)) 仅溢出(0x04) 0 0 1-3 4-5

    声音。

    -14. 0x50 (11*(32/FS)) 全部(0x16) 0 0 1-3 4-5 声音
    -14. 0x40 (9*(32/FS) 仅溢出(0x04) 0 0 1-3 4-5 声音
    -14. 0x40 (9*(32/FS) 全部(0x16) 0 0 1-3 4-5 声音
    -10 0x50 (11*(32/FS)) 仅溢出(0x04) 0 0 2-5 20-40. 声音
    -10 0x50 (11*(32/FS)) 全部(0x16) 0 0 2-5 20-40. 声音
    -10 0x40 (9*(32/FS) 仅溢出(0x04) 0 0 2-5 20-40. 声音
    -10 0x40 (9*(32/FS) 全部(0x16) 0 0 2-5 20-40. 声音

    正如我们仅通过将溢出配置为中断观察到的那样, 中断命中没有巨大的变化。

    尽管我们测试了推荐值,但仍收到溢出中断。  

    根据我们的使用案例,它应在2米范围内发出声音。

    我们还将扬声器连接 到麦克风附近。 因此,它似乎不会像推荐值那样降低为零

    因此,它似乎也不会像建议的值那样降低到零,如果扬声器尝试在录制 过程中播放,我们也会收到连续中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,  

    您是否可以更新此信息?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mohan

    您还可以选择最大AGC增益吗? 您需要允许AGC达到最大级别。 此外,您是否可以启用噪声门阈值? 请在最大级别使用噪声门,否则可能是由于AGC增益而增加的噪声级别。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    您还可以选择最大AGC增益吗?

    是的,默认情况下,我们已设置为高值(40dB)。

    请在 最大级别使用噪声门,

    如果我们将噪声阈值配置为寄存器87和95中的最大级别(即-30dB),我们已经观察到巨大的静音,因此声音中没有强度,在这种情况下,我们 没有收到来自0.2 表以上距离的任何中断溢出。 仅当我们试图从0 m 距离发出非常大的声音时,它才会收到2-5次中断。

    我们还观察到以下中断,

    右侧ADC信号功率小于右侧AGC的噪声阈值

    左ADC信号功率小于左AGC的噪声阈值。

    以下是配置的寄存器值,

    AGC目标级别:-10dB

    AGC噪声阈值:-30dB

    AGC最大增益:40 dB

    AGC攻击时间: 10 x (32/FS)(注册值:0x40)

    AGC衰减时间:寄存器值:0x50

    我希望最重要的是推荐的值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,

    是否有任何更新?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Luis,  

    我们想知道我们是否需要提供任何投入?