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.

[参考译文] TLV320AIC3104:时钟相关问题

Guru**** 2554760 points
Other Parts Discussed in Thread: TLV320AIC3104

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1559199/tlv320aic3104-clock-related-issue

器件型号:TLV320AIC3104


工具/软件:

您好团队:  

我们正在将 TLV320aic3104 音频编解码器集成到我们的处理器中。 我们正面临这个错误  

01-01 12:14:56.4274157 4157 E aic3x_hw_params():无法设置 PLL
01-01 12:14:56.427 4157 4157 E tlv320aic3x 29-0018:ASOC:tlv320aic3x-hifi 上 snd_soc_dai_hw_params 出现错误:–22

我看到 SYSCLK 值为 0。 我也看到了  .set_SYSCLK   = aic3x_set_dai_SYSCLK、  未调用该函数。 在哪个阶段将调用此函数?  

我们希望寄存器 102 的值为 0xA2。 我看到该寄存器仅在上述函数中进行了修改。 您可以确认一下吗?

此外、如果我要使用 BCLK 而不使用 MCLK、那么我们需要在 DTS 中进行任何特定的更改吗?  

此致、

Kokila K

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

    您好、

    我将在星期二上回复您、抱歉耽误您的时间。  

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

    尊敬的 Kokila:

    再次你(们)好。 我相信它会在运行时被调用、如果不是、它会在您在 dts 文件中设置时钟时被调用。 您能否提供 DTS、让我们看看需要在何处定义 MCLK/BCLK 速率? 我认为它是在 部分。

    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/devicetree/bindings/sound/ti,tlv320aic3x.yaml

    此致、
    Mir

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

    尊敬的 Mir:

    这是 TLV 的 DTS 条目。 对于时钟参数、我们需要给出的预期值是多少?

    tlv320aic320: tlv320aic320@18 {
                    compatible = "ti,tlv320aic3104";
                    reg = <0x18>;
                    #sound-dai-cells = <0>;
    
                    ai3x-micbias-vg = <3>;
                    //reset-gpios = <&io_expander 11 GPIO_ACTIVE_LOW>;
                    AVDD-supply = <&codec_3v3_reg>;
                    IOVDD-supply = <&codec_3v3_reg>;
                    DRVDD-supply = <&codec_1v8_reg>;
                    DVDD-supply = <&codec_1v8_reg>;
            };

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

    您好、

    我发现这个旧的 e2e 谈论的是同一个问题:  https://e2e.ti.com/support/audio-group/audio/f/audio-forum/702805/rtos-tlv320aic3105-tlv320aic3105-codec-showing-system-clock-sysclk-as-0 

    它们建议在行 aic3x->sysclk =中添加  在驱动器本身... 但根据其他论坛帖子、可能会希望您的 SoC 更改 MCLK 速率。 您可以查看此论坛、获取有关 DTS 或将驱动程序更改为硬编码 MCLK 的一些建议:

    https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-SAI-MCLK-frequency/m-p/1097084#M160628

    https://www.programrsought.com/article/40346906740/

    很抱歉、我没有更多帮助、我不是 Linux DTS 专家。

    此致、
    Mir

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

    你好、Mir、

    现在、我的 PLL 错误已经解决、IAM 能够捕获、但在捕获后、当我尝试检查 wav 文件时、没有有效数据。

    exynosauto9_easdk_android_vm:/ # i2cdump -y -f 29 0x18
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 91 10 0c dc 0a 00 00 00 01 00 00 00 20    ...?????...?...
    10: 20 ff ff 04 78 78 04 78 78 06 00 fe 00 00 fe 00     ???xx?xx?.?..?.
    20: 00 00 00 00 cc 00 00 00 40 00 00 af af 00 2f af    ....?...@..??./?
    30: 00 00 00 0c 00 2f af 00 00 00 0c 00 00 00 00 2f    ...?./?...?..../
    40: af 0c 00 00 00 00 2f af 0c 00 00 00 00 00 00 00    ??..../??.......
    50: 00 2f af 00 00 00 08 00 00 00 00 2f af 08 00 00    ./?...?..../??..
    60: 00 00 00 00 00 00 a2 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 91 10 0c dc 0a 00 00 00 01 00 00 00 20    ...?????...?...
    90: 20 ff ff 04 78 78 04 78 78 06 00 fe 00 00 fe 00     ???xx?xx?.?..?.
    a0: 00 00 00 00 cc 00 00 00 40 00 00 af af 00 2f af    ....?...@..??./?
    b0: 00 00 00 0c 00 2f af 00 00 00 0c 00 00 00 00 2f    ...?./?...?..../
    c0: af 0c 00 00 00 00 2f af 0c 00 00 00 00 00 00 00    ??..../??.......
    d0: 00 2f af 00 00 00 08 00 00 00 00 2f af 08 00 00    ./?...?..../??..
    e0: 00 00 00 00 00 00 a2 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    ................
    exynosauto9_easdk_android_vm:/ #
    
    

    另外、让我知道音频的路由、我们是否应该为混频器设置任何值?

    请在尝试捕获音频时找到日志。

    exynosauto9_easdk_android_vm:/# tinycap /mnt/test.wav -d 16 -c 2 -r 48000 -b 16
    捕获样本:2 通道、48000 Hz、16 位
    捕获了 417792 帧
    exynosauto9_easdk_android_vm:/#

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

    您好、

    您能分享为修复 PLL/时钟所做的更改吗? 仅供将来参考。  

    是的、您需要将 dapm_routes 添加到 dts 文件中。 您可以通过在驱动程序 aic3x.c 文件: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/sound/yam/codecs/tlv320aic3x.c 中搜索“snd_soc_dapm_route"来“来找到这些选项 、并且编解码器引脚名称位于驱动程序的 soc 帮助文件: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/devicetree/bindings/sound/ti,tlv320aic3x.yaml 中

    “intercon"部分“部分有一些共同的值、但 AIC3104 也有其自己的几个选项。 这取决于您尝试使用的引脚。  

    此致、
    Mir

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

    尊敬的 Mir:

    对于 PLL 问题、我尝试从主器件设置 SYSCLK、这会自动调用 SET_SYSCLK 函数、从而解决 PLL 错误。

     ret = snd_soc_dai_set_sysclk(codec_dai, 2, 24080000, SND_SOC_CLOCK_OUT);
            if (ret) {
                dev_err(card->dev, "failed to set tlv320aic31xx sysclk!\n");
                return ret;
            }


    现在、Pls 帮助我处理 Mixer 设置、我们需要为 Mic capture(麦克风捕获)设置什么值?

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

    我试图捕捉音频,文件被捕捉没有有效的音频数据,我想我错过了一些混音器路由. 请帮助我了解混频器配置

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

    尊敬的 Kokila:

    您需要在 DTS 文件中包含一些路由、如下所示:

             simple-audio-card,widgets =
                    "Microphone", "Microphone Jack",
                    "Microphone", "Internal Microphone",
                    "Headphone", "Headphone Jack",
                    "Line", "Line Out",
                    "Speaker", "Internal Speaker";
                simple-audio-card,routing =
                    "Line Out", "HPLCOM",
                    "Line Out", "HPRCOM",
                    "Headphone Jack", "HPLOUT",
                    "Headphone Jack", "HPROUT",
                    "Microphone Jack", "MIC2L",
                    "Internal Microphone", "MIC1L",
                    "Internal Speaker", "LLOUT",
                    "Internal Speaker", "RLOUT";

    -米尔

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

    你好、Mir、  

    现在、当我们尝试捕捉音频时、我们可以播放音频。 获取文件上的垃圾数据。

    这些是混音器控件的默认值、您能对此进行评论吗? 要正确录制音频、我们需要设置什么值?

    522	ENUM	1	Left Line1L Mux                          single-ended
    523	ENUM	1	Left Line1R Mux                          single-ended
    524	ENUM	1	Right Line1L Mux                         single-ended
    525	ENUM	1	Right Line1R Mux                         single-ended
    526	BOOL	1	Left PGA Mixer Line1L Switch             On
    527	BOOL	1	Left PGA Mixer Line1R Switch             Off
    528	BOOL	1	Left PGA Mixer Mic2L Switch              Off
    529	BOOL	1	Left PGA Mixer Mic2R Switch              Off
    530	BOOL	1	Right PGA Mixer Line1R Switch            On
    531	BOOL	1	Right PGA Mixer Line1L Switch            Off
    532	BOOL	1	Right PGA Mixer Mic2L Switch             Off
    533	BOOL	1	Right PGA Mixer Mic2R Switch             Off

    另外、这是尝试通过 MIC 捕获音频的路径 IAM。

    我们需要为 MICBIAS 设置的确切值是多少? 另请查找 TLV 编解码器的 I2cdump

    exynosauto9_easdk_android_vm:/ # i2cdump -y -f 29 0x18
    
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    
    00: 00 00 00 91 10 00 00 0a 00 00 00 41 00 00 00 20    ...??..?...A... 
    
    10: 20 00 00 04 78 78 04 78 78 06 00 fe 00 00 fe 00     ..?xx?xx?.?..?.
    
    20: 00 00 00 00 44 00 00 00 40 00 00 af af 00 2f af    ....D...@..??./?
    
    30: 00 00 00 0c 00 2f af 00 00 00 0c 00 00 00 00 2f    ...?./?...?..../
    
    40: af 0c 00 00 00 00 2f af 0c 00 00 00 00 00 00 00    ??..../??.......
    
    50: 00 2f af 00 00 00 08 00 00 00 00 2f af 08 00 00    ./?...?..../??..
    
    60: 00 00 00 00 00 00 a2 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 91 10 00 00 0a 00 00 00 01 00 00 00 20    ...??..?...?... 
    
    90: 20 00 00 04 78 78 04 78 78 06 00 fe 00 00 fe 00     ..?xx?xx?.?..?.
    
    a0: 00 00 00 00 44 00 00 00 40 00 00 af af 00 2f af    ....D...@..??./?
    
    b0: 00 00 00 0c 00 2f af 00 00 00 0c 00 00 00 00 2f    ...?./?...?..../
    
    c0: af 0c 00 00 00 00 2f af 0c 00 00 00 00 00 00 00    ??..../??.......
    
    d0: 00 2f af 00 00 00 08 00 00 00 00 2f af 08 00 00    ./?...?..../??..
    
    e0: 00 00 00 00 00 00 a2 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    ................
    
     

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

    您好、

    给我一天的时间来通读这个,抱歉耽误了时间。 垃圾数据看起来每个通道的偏移量都不同、这导致我认为、您的麦克风偏置不正确、或者在不打算使用时设置为交流或直流耦合、诸如此类。  

    -米尔

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

    您能分享您的原理图吗? 我看到在寄存器 25 (0x19) 中、micbias 在录音期间断电。 此外、寄存器 11 (0x0B) 中有一个溢出标志、指明右 ADC 已溢出、我们可以看到审核屏幕截图上的右通道接近+1。 因此、我认为麦克风信号上的偏置可能不正确。 我们预计模拟输入信号介于 0 和 AVDD 之间、micbias 可以介于 1.8 和 2.5V 之间。 因此、如果信号未从外部偏置、则会出现问题、因为未启用 micbias(因此信号未正确交流耦合)。 您是否还能测量麦克风发出的电压来检查该范围并验证模拟信号是否符合预期?

    此致、
    Mir

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

    尊敬的 Mir:  

    正如您所指出的、我们发现麦克风电源存在问题并已解决。 之后,我尝试捕获音频,仍然没有录制音频。 现在新的波形看起来像这样。

    另外、i2cdump 的外观看起来也不会发生 ADC 溢出。

    exynosauto9_easdk_android_vm:/ # i2cdump -y -f 29 0x18
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 00 00 91 10 0c dc 0a 00 00 00 01 00 00 00 20    ...?????...?...
    10: 20 ff ff 04 78 78 04 78 78 06 00 fe 00 00 fe 00     ???xx?xx?.?..?.
    20: 00 00 00 00 cc 00 00 00 40 00 00 af af 00 2f af    ....?...@..??./?
    30: 00 00 00 0c 00 2f af 00 00 00 0c 00 00 00 00 2f    ...?./?...?..../
    40: af 0c 00 00 00 00 2f af 0c 00 00 00 00 00 00 00    ??..../??.......
    50: 00 2f af 00 00 00 08 00 00 00 00 2f af 08 00 00    ./?...?..../??..
    60: 00 00 00 00 00 00 a2 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 91 10 0c dc 0a 00 00 00 01 00 00 00 20    ...?????...?...
    90: 20 ff ff 04 78 78 04 78 78 06 00 fe 00 00 fe 00     ???xx?xx?.?..?.
    a0: 00 00 00 00 cc 00 00 00 40 00 00 af af 00 2f af    ....?...@..??./?
    b0: 00 00 00 0c 00 2f af 00 00 00 0c 00 00 00 00 2f    ...?./?...?..../
    c0: af 0c 00 00 00 00 2f af 0c 00 00 00 00 00 00 00    ??..../??.......
    d0: 00 2f af 00 00 00 08 00 00 00 00 2f af 08 00 00    ./?...?..../??..
    e0: 00 00 00 00 00 00 a2 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    ................

    您能在这里帮助我们吗?  我是否错过了任何与通过麦克风捕获相关的寄存器设置?

    谢谢、

    Kokila

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

    您好、

    您能分享您的原理图吗? 这将帮助我了解你打算做什么。 我看到不再有溢出、但 micbias 仍处于断电状态。 我还注意到您的 J.D 与前一个屏幕截图中的不同、您提供了哪些时钟以及您希望芯片外有哪些时钟? 还是提供所有时钟? 以下是我对输入寄存器的注释:

    03 91 #pll enabled, p=q=1
    04 10 #j=4
    05 0c #d msb = 1100 
    06 dc #d lsb = 1101 11 -> 823 ??
    07 0a #48k
    0b 01 #no overflows
    0f 20 #ladc pga is not muted, gain=32db
    10 20 #radc pga not muted, gain=32db
    11 ff #mic2l and mic2r not connected to ladc 
    12 ff #mic2l and mic2r not connected to radc
    13 04 #mic1lp single ended, connected to ladc pga, 0db, ladc powered up
    15 78 #line1r not connected to ladc
    16 04 #mic1rp single ended, connected to radc pga, 0db, radc powered up
    18 78 #mic1lp not connected to radc
    19 06 #micbias powered DOWN -> ??

    此致、
    Mir

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

    尊敬的 Mir:  

    请找到原理图。

    e2e.ti.com/.../Audio-codec-schematic.pdf

    谢谢  

    Kokila K

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

    您好、

    我认为您获得的音频有可能是预期的、您能否尝试增加 PGA 增益? 我不确定麦克风的摆幅、但我注意到在原理图中、 运算放大器滤波器电路的麦克风信号降低了~10dB。 因此、ADC 上的电压可能很低 — 如果您可以更改该运算放大器的增益,您应该会看到信号摆幅有一些改善。 要消除音频信号中的直流失调电压、您可以 在第 0 页寄存器 12 (0x0c) 中选择预设的 ADC 高通滤波器。

    此致、
    Mir