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.

[参考译文] TLV320AIC3120:aic31xx_wait_bits:失败! 启用 AGC

Guru**** 2481465 points
Other Parts Discussed in Thread: TLV320AIC3120

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1176099/tlv320aic3120-aic31xx_wait_bits-failed-with-agc-enabled

器件型号:TLV320AIC3120

软件/硬件:

  • Raspbian (Linux)

  • I2C 工具

  • ALSA 包括 ALsamixer

  • Raspberry Pi 4计算模块

  • TLV320AIC3120是 i2c 从器件

tlv320aic31xx-codec 1-0018:aic31xx_wait_bits:失败! 0x24应为0x40预期值0x0 (0、0x40、500000us)

tlv320aic31xx-codec 1-0018:ASOC:post_PMD:ADC 事件失败:-1

在启用 AGC 的情况下执行 arecord 命令时、我收到上述 dmesg 错误。 使用 aplay 和 arecord 仍然起作用。 我希望收集更多信息或可能的原因。

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

    在回放或反转过程中、您会这么善良并捕获 I2S 时钟波形、包括 WS 时钟和位时钟吗?

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

    开始时。 蓝色 BCLK 和黄色为 WCLK。

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

    CLKS 看起来很糟糕。 您希望记录什么采样率? bitclk 为59.92Hz、wclk 为11.12Hz。 两个都不是很好的 clk freq。

    还有一件事、希望得到 I2S 和 i2c clk 的序列。 理论上、I2S clk 应早于 i2c clk (编解码器上电命令)。

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

    黄色(CH.1)是 I2S CLK、与 BCLK 相同。 蓝色(CH.2)是 i2c CLK/SCL

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

    仍然异常。 您可以共享 DTS 文件吗? 请告诉我您如何使这些 clk 起作用。

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

    // Definitions for 3120 miniDSP
    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/sound/tlv320aic31xx-micbias.h>
    
    / {
    	compatible = "brcm,bcm2835";
    
    	fragment@0 {
    		target = <&i2s>;
    		__overlay__ {
    			status = "okay";
    		};
    	};
    
    	fragment@1 {
    		target = <&i2c1>;
    		__overlay__ {
    			#address-cells = <1>;
                #size-cells = <0>;
    			status = "okay";
    			clock-frequency = <100000>;
    			pinctrl-names = "default";
    
    			tlv320aic31xx: tlv320aic3120@18 {
    				#sound-dai-cells = <0>;
    				reg = <0x18>;
    				compatible = "ti,tlv320aic3120";
    //				ai31xx-micbias-vg = <MICBIAS_OFF>;
    //				ai31xx-micbias-vg = <MICBIAS_2_0V>;
    				ai31xx-micbias-vg = <MICBIAS_2_5V>;
    //				ai31xx-micbias-vg = <MICBIAS_AVDD>;
    
    				reset-gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
    
    //				ai31xx-ocmv = 0;
    //				ai31xx-ocmv = 1;
    //				ai31xx-ocmv = 2;
    //				ai31xx-ocmv = 3;
    				status = "okay";
    			};
    		};
    	};
    
    	fragment@2 {
    		target = <&sound>;
    		__overlay__ {
    			compatible = "simple-audio-card";
    			i2s-controller = <&i2s>;
    			status = "okay";
    			simple-audio-card,name = "tlv320aic3120-hifi";
    			simple-audio-card,bitclock-slave = <&sound_master>;
    			simple-audio-card,frame-slave = <&sound_master>;
    			simple-audio-card,format = "i2s";
    
    			simple-audio-card,widgets =
    				"Microphone", "Mic In",
    				"Speaker", "Speaker Driver";
    			simple-audio-card,routing =
    				"MIC1LP", "MICBIAS",
    //				"MIC1LP", "Mic In",
    //				"MIC1RP", "Mic In",
    				"MIC1LP", "Mic In",
    				"ADC", "MIC1LP",
    				"Capture", "MIC1LP",
    				"Speaker Driver", "SPK ClassD"; /*these are widget names mapped to options in the TI driver */
    
    
    			simple-audio-card,cpu {
    				sound-dai = <&i2s>;
    			};
    
    			sound_master: simple-audio-card,codec {
    				sound-dai = <&tlv320aic31xx>;
    				system-clock-frequency = <12000000>; /* this matches sai1 */
    				
    			};
    		};
    	};
    };
    

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

    根据 DTS 的说法、ws/bit clk 是由平台生成的、您是不是很友好、请咨询平台供应商、了解如何正确设置 clk。