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.

[参考译文] AM62P:TLV320ADC3101

Guru**** 2826855 points

Other Parts Discussed in Thread: TLV320ADC3101, AM62P

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1619210/am62p-tlv320adc3101

部件号: AM62P
Thread 中讨论的其他器件: TLV320ADC3101

我将使用 AM62p5 处理器和 TLV320ADC3101 作为音频输入。

我的声音节点上有此配置

	codec_audio: sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "Lohr-Full-Audio";
		simple-audio-card,mclk-fs = <512>;
		status = "okay";

		simple-audio-card,dai-link@0 {
			format = "i2s";
			bitclock-master = <&mcasp_cpu>;
			frame-master = <&mcasp_cpu>;

			mcasp_cpu: cpu {
				sound-dai = <&mcasp2 0>;
				system-clock-direction-out;
				dai-tdm-slot-num = <2>;
				dai-tdm-slot-width = <32>;
			};

			codec_3: codec@0 {
				sound-dai = <&audio_adc1>;
				clocks = <&audio_refclk0>;
				clock-names = "mclk";
				simple-audio-card,prefix = "ADC1";
				assigned-clock-rates = <24576000>; 
			};
		};
};

我的 mcasp2 节点上的此配置。

&mcasp2 {
	pinctrl-names = "default";
    pinctrl-0 = <&mcasp_audio_in_out_pins_default>;

	op-mode = <0>;          /* Modo I2S */
    tdm-slots = <2>;        /* Stereo */

	serial-dir = <0 0 0 2 0>;

	tx-num-evt = <32>;
	rx-num-evt = <32>;

    status = "okay";

	#sound-dai-cells = <0>;

    clocks = <&k3_clks 192 0>, <&k3_clks 192 27>; 
	clock-names = "fck", "mcasp_aux_clk";

    assigned-clocks = <&k3_clks 192 0>, <&k3_clks 192 27>;
    assigned-clock-parents = <0>, <&k3_clks 192 30>;
    assigned-clock-rates = <0>, <24576000>;

	auxclk-fs-ratio = <512>;
	fck-master;

};


我的 I2C 节点上进行这种配置

&main_i2c1 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c1_pins_default>;
	clock-frequency = <400000>;

	audio_adc1: adc1@19 {
		compatible = "ti,tlv320adc3101";
		reg = <0x19>;
		pinctrl-0 = <&main_rst_adc1_pins_default>;
		pinctrl-names = "default";
		reset-gpios = <&main_gpio0 47 GPIO_ACTIVE_HIGH>;
		
		#sound-dai-cells = <0>;
		clocks = <&k3_clks 192 30>;
		mclk-fs = <512>;
		clock-names = "mclk";

		assigned-clocks = <&k3_clks 192 30>;
    	assigned-clock-rates = <24576000>;

        status = "okay";

        gpio-controller;
        #gpio-cells = <2>;

        ti,dmdin-gpio1 = <0>;
        ti,micbias1-vg = <0>;
    };
};

但当我尝试使用此命令获取声音时

root@am62p-Lohr:~# arecord -D HW:0、0 -d 2 -f S16_LE -r 48000 -c 2 /tmp/test.wav

我得到了这个错误。

录制波形'/tmp/test.wav ':有符号 16 位小端字节序,速率 48000 Hz,立体声
A 记录:PCM_READ:2272:读取错误:输入/输出错误

我的配置有问题吗?

此致。

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

    您好 Sergio、

    您能同时共享引脚多路复用控件吗? 我假设 aux clk 和 refclk 作为 MCLK 至 ADC 存在冲突。

    此致

    Suren

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

    您好、Suren

    这是 McASP 引脚多路复用

    McASP_AUDIO_IN_OUT_PINS_DEFAULT:McASP-AUDIO-IN-OUT-DEFAULT 引脚{
    pinctrl-single、pins =<
    AM62Px_IOPAD (0x0170、PIN_INPUT、2)/*(A21) RGMII2_TD1.MCASP2_ACLKR */
    AM62Px_IOPAD (0x0178、PIN_OUTPUT、2)/*(A19) RGMII2_TD3.MCASP2_ACLKX */
    AM62Px_IOPAD (0x0188、PIN_INPUT、2)/*(E16) RGMII2_RD1.MCASP2_AFSR */
    AM62Px_IOPAD (0x0174、PIN_OUTPUT、2)/*(D17) RGMII2_TD2.MCASP2_AFSX */
    AM62Px_IOPAD (0x018c、PIN_OUTPUT、2)/*(E17) RGMII2_RD2.MCASP2_AXR0 */
    AM62Px_IOPAD (0x0180、PIN_OUTPUT、2)/*(D19) RGMII2_RXC.MCASP2_AXR1 */
    AM62Px_IOPAD (0x0184、PIN_OUTPUT、2)/*(E19) RGMII2_RD0.MCASP2_AXR2 */
    AM62Px_IOPAD (0x017c、PIN_INPUT、2)/*(F19) RGMII2_RX_CTL.MCASP2_AXR3 */
    AM62Px_IOPAD (0x0164、PIN_INPUT、2)/*(A20) RGMII2_TX_CTL.MCASP2_AXR4 */
    >;
    };

    此致

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

    您好 Sergio、

    让我们明天讨论一下。

    此致

    Suren

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

    您好 Sergio、

    我已将您的问题转发至我们的音频论坛。 请期待尽快答复。 如果您没有响应、请在一天或两天内 ping 我。

    此致

    Suren

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

    您好 Sergio、

    您是否能够进行播放、但这只是有此问题的记录? 还是两者都有? 您能否检查 amixer 设置、以验证在所用输入引脚和 ADC 之间的 DAPM_Route 路径上是否建立了连接。 如果您可以向我发送 asound.state 文件和编解码器的 i2c 寄存器转储、我可以在尝试记录之前帮助验证它的设置方式。

    此致、
    Mir

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

    尊敬的 Mir:

    我可以使用 aplay、但一次只能使用一个源、如果我在一个终端中运行“aplay -v -D HW:0、1 -c 8 -r 48000 /storage/Enya-May-It-Be.wav “、而在另一个终端中、我尝试运行“aplay -v -D HW:0、0 -c 8 -r 48000 /storage/Enya-May-It-Be.wav “时出现资源繁忙错误。 我的目标是在我所有的编解码器中同时运行不同的源代码。

    我的记录不起作用。  我使用了 alsamixer -c 0、但没有找到这个 dapm_route。

    这是我的 /var/lib/alsa/asound.state 内容

    # Dummy file, do not delete
    


    这是我的 i2cdump

    root@am62p-lohr:~# i2cdump -y -f 2 0x19
    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: 04 00 01 17 01 17 7d d3 7f ff 00 00 00 00 7f ff    ?.????}??.....?.
    10: 00 00 00 00 00 00 00 00 7f ff 00 00 00 00 00 00    ........?.......
    20: 00 00 7f ff 00 00 00 00 00 00 00 00 7f ff 00 00    ..?.........?...
    30: 00 00 00 00 00 00 7f ff 00 00 00 00 00 00 00 00    ......?.........
    40: 00 00 00 00 00 00 00 00 7f ff 00 00 00 00 7f ff    ........?.....?.
    50: 00 00 00 00 00 00 00 00 7f ff 00 00 00 00 00 00    ........?.......
    60: 00 00 7f ff 00 00 00 00 00 00 00 00 7f ff 00 00    ..?.........?...
    70: 00 00 00 00 00 00 7f ff 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    ................
    

    此致、  

    Sergio

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

    尊敬的 Mir:

    我不知道它是否有帮助、但我的硬件连接就是这样。



    我刚放置了 McASP 和时钟引脚。

    ATT.

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

    是否有任何更新?

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

    您好 Sergio Rossi 

    • 很抱歉耽误响应。  请求您在问题重现时共享内核日志、查看内核日志中是否抛出任何错误消息。
    • IO 错误通常与音频数据/DMA 相关 — 我怀疑它与编解码器相关。 由于我们将使用多个具有唯一小部件名称 sound-name-prefix 和 i2c 总线和基于地址的 Dai 名称的实例。  

    录制波形'/tmp/test.wav ':有符号 16 位小端字节序,速率 48000 Hz,立体声
    A 记录:PCM_READ:2272:读取错误:输入/输出错误

     

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

    嗨、  Sergio Rossi 您是否在捕获这些日志时重现了“资源繁忙错误“? 我看不到任何错误日志。

    如果没有、请请求您共享问题案例的内核日志。  

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

    您好、发生此错误是因为我在多个 Dai-link 中使用了 mcasp2 实例、现在我已将其更改为此拓扑

    	codec_audio: sound {
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "Audio";
    		status = "okay";
    		simple-audio-card,mclk-fs = <512>;
    
    		simple-audio-card,format = "i2s";
    
    		simple-audio-card,widgets =
    			"Speaker", "External Speaker";
    
    		clocks = <&audio_refclk0>;
    		clock-names = "mclk";
    
     		simple-audio-card,dai-link@0 {
     			format = "i2s";
    			bitclock-master = <&cpu_dai>;
                frame-master = <&cpu_dai>;
    
    			cpu_dai: cpu {
                    sound-dai = <&mcasp2>;
                    system-clock-direction-out;
                };
    
    			codec {
                    sound-dai = <&tas5731>, <&audio1>, <&audio2>;
    
                    clocks = <&audio_refclk0>, <&audio_refclk0> , <&audio_refclk0>;
    
     			};
    		};
    
    	};


    我的旧版本是这样的。

    	codec_audio: sound {
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "Lohr-Audio";
    		status = "okay";
    		simple-audio-card,mclk-fs = <512>;
    
    		simple-audio-card,format = "i2s";
    
    		simple-audio-card,widgets =
    			"Speaker", "External Speaker";
    
    		clocks = <&audio_refclk0>;
    		clock-names = "mclk";
    
     		simple-audio-card,dai-link@0 {
     			format = "i2s";
    			bitclock-master = <&cpu_dai>;
                frame-master = <&cpu_dai>;
    
    			cpu_dai: cpu {
                    sound-dai = <&mcasp2>;
                    system-clock-direction-out;
                };
    
    			codec {
                    sound-dai = <&tas5731>;
    
                    clocks = <&audio_refclk0>;
    
     			};
    		};
    		
    		simple-audio-card,dai-link@1 {
     			format = "i2s";
    			bitclock-master = <&cpu_dai1>;
                frame-master = <&cpu_dai1>;
    
    			cpu_dai1: cpu {
                    sound-dai = <&mcasp2>;
                    system-clock-direction-out;
                };
    
    			codec {
                    sound-dai =<&audio1>;
    
                    clocks = <&audio_refclk0>;
    
     			};
    		};
    
    	};

    ATT.

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

    您是否说在对 DTS 文件进行更改后问题已解决、我们是否可以将问题视为已结束?

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

    否、我还无法同时复制多个源、但问题资源忙不会再出现。

    ATT.

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

    好的、在内核日志中重现问题时、请告诉我们。

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

    您好 Sergio、

    请使用多通道方法验证播放和记录用例、如果您遇到困难、请告知我们。  

    此致

    Suren

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

    您好、Suren、

    我正在尝试进行工作播放和录制、但我认为我遇到了时钟问题、您能查看我的时钟配置吗?

    /{
    
    	codec_audio: sound {
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "Lohr-Audio";
    		status = "okay";
    		simple-audio-card,mclk-fs = <512>;
    
    		simple-audio-card,format = "i2s";
    
    		simple-audio-card,widgets =
    			"Headphone", "Headphone Jack",
    			"Speaker", "External Speaker",
    			"Speaker", "Left Speaker",
    			"Speaker", "Right Speaker",
    			"Line", "Line In Left",
            	"Line", "Line In Right";
    
    		simple-audio-card,routing =
    			/* Codec 1 (AIC1) - Conectando aos fones */
    			"Headphone Jack", "AIC1 HPL",
    			"Headphone Jack", "AIC1 HPR",
    
    			/* Codec 2 (AIC2) - Conectando ao Speaker Externo */
    			"External Speaker", "AIC2 HPL",
    			"External Speaker", "AIC2 HPR",
    
    			/* TAS5731 - Amplificador Principal */
    			"Left Speaker", "OUT_A",
    			"Left Speaker", "OUT_B",
    			"Right Speaker", "OUT_C",
    			"Right Speaker", "OUT_D";
    
    		clocks = <&audio_refclk0>;
    
    		clock-names = "mclk";
    
     		simple-audio-card,dai-link@0 {
     			format = "i2s";
    			bitclock-master = <&cpu_dai>;
    			frame-master = <&cpu_dai>;
    
    			cpu_dai: cpu {
    				sound-dai = <&mcasp2>;
    				system-clock-direction-out;
    			};
    
    			codec@0 {
    				sound-dai = <&tas5731>;
    				sound-name-prefix = "TAS_0";				
    				clocks = <&audio_refclk0>;
    
     			};
    		};
    
    		simple-audio-card,dai-link@1 {
     			format = "i2s";
    			bitclock-master = <&cpu_dai1>;
    			frame-master = <&cpu_dai1>;
    
    			cpu_dai1: cpu {
    				sound-dai = <&mcasp2>;
    				system-clock-direction-out;
    			};
    
    			codec@1 {
    				sound-dai =<&audio1>;
    				sound-name-prefix = "AIC1";
    				clocks = <&audio_refclk0>;
     			};
    		};
    
    		simple-audio-card,dai-link@2 {
     			format = "i2s";
    			bitclock-master = <&cpu_dai2>;
    			frame-master = <&cpu_dai2>;
    
    			cpu_dai2: cpu {
    				sound-dai = <&mcasp2>;
    				system-clock-direction-out;
    			};
    
    			codec@2 {
    				sound-dai =<&audio2>;
    				sound-name-prefix = "AIC2";
    				clocks = <&audio_refclk0>;
     			};
    		};
    
    		simple-audio-card,dai-link@3 {
     			format = "i2s";
    			bitclock-master = <&cpu_dai3>;
    			frame-master = <&cpu_dai3>;
    
    			cpu_dai3: cpu {
    				sound-dai = <&mcasp2>;
    			};
    
    			codec@3 {
    				sound-dai =<&audio_adc1>;
    				sound-name-prefix = "ADC1";
    				clocks = <&audio_refclk0>;
     			};
    		};
    
    	};
    };
    
    &mcasp2 {
        status = "okay";
        #sound-dai-cells = <0>;
    
        pinctrl-names = "default";
        pinctrl-0 = <&mcasp_audio_in_out_pins_default>;
    
        op-mode = <0>;          /* Modo I2S */
        tdm-slots = <2>;        /* Stereo */
    	tdm-slots-rx = <6>;
    	slot-width = <16>;
    
        serial-dir = <1 1 1 2 0>;
    
    	tx-num-evt = <32>;
    	rx-num-evt = <32>;
    
    	assigned-clocks = <&k3_clks 192 0>, <&k3_clks 192 27>;
    	assigned-clock-parents = <&k3_clks 192 1>, <&k3_clks 192 1>; 
    	assigned-clock-rates = <24576000>, <24576000>;
    	
    };
    
    &main_i2c0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c0_pins_default>;
    	clock-frequency = <400000>;
    	audio1: audio1@18 {
    		// TLV320DAC3203IRGE (ADC/DAC)
    		#sound-dai-cells = <0>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_rst_dac1_pins_default>;
    
    		compatible = "ti,tlv320aic32x4";
            reg = <0x18>;
    	    status = "okay";
    
    		sound-name-prefix = "AIC1";
    		iov-supply = <&vcc_3v3_sys>;
    		ldoin-supply = <&vcc_3v3_sys>;
    
    		reset-gpios = <&main_gpio0 45 GPIO_ACTIVE_LOW>;
    
    		clocks = <&k3_clks 157 6>;
    		clock-names = "mclk";
    
    		assigned-clocks = <&k3_clks 157 6>;
    		assigned-clock-rates = <24576000>;
    
    		aic32x4-gpio-func = <0xff 0xff 0xff 0xff 0x08>;
    
    		gpio-controller;
    		#gpio-cells = <2>;
    	};
    };
    
    
    &main_i2c1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <400000>;
    
    	audio_adc1: adc1@19 {
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_rst_adc1_pins_default>;
            compatible = "ti,tlv320adc3101";
            reg = <0x19>;
            status = "okay";
    
            reset-gpios = <&main_gpio0 47 GPIO_ACTIVE_HIGH>;
    		clocks = <&k3_clks 192 30>;
    
    		sound-name-prefix = "ADC1";
    
            ti,dmdin-gpio1 = <0>;
            ti,dmclk-gpio2 = <0>;
    
            ti,micbias1-vg = <0>;
    
            gpio-controller;
            #gpio-cells = <2>;
            #sound-dai-cells = <0>;
        };
        
    };
    
    &main_i2c2 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c2_pins_default>;
    	clock-frequency = <400000>;
    
    	tas5731: audio-codec@1a {
    		compatible = "ti,tas5717";
    		reg = <0x1a>;
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_amp_rst_pins_default>,
    					<&main_amp_pwr_down_pins_default>;
    
    		#sound-dai-cells = <0>;
    		reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_HIGH>;
    		pdn-gpios = <&main_gpio0 16 GPIO_ACTIVE_HIGH>;
    
    
    		clocks = <&k3_clks 157 6>;
    		clock-names = "mclk";
    
    		assigned-clocks = <&k3_clks 157 6>;
    		assigned-clock-rates = <24576000>;
    
    		AVDD-supply  = <&vcc_3v3_sys>;
    		DVDD-supply  = <&vcc_3v3_sys>;
    		PVDD_AB-supply = <&en_pwr_17v>;
    		PVDD_CD-supply = <&en_pwr_17v>;
    	};
    };
    
    &k3_clks {
    	assigned-clocks = <&k3_clks 157 6>;
    	status = "okay";
    };
    
    &audio_refclk0 {
    	#clock-cells = <0>;
    
    	pinctrl-names = "default";
        pinctrl-0 = <&audio_ext_refclk_pins_default>;
    
    	clocks = <&k3_clks 157 0>;
    	assigned-clocks = <&k3_clks 157 0>;
    	assigned-clock-parents = <&k3_clks 157 6>;
    
    	assigned-clock-rates = <24576000>;
    
    	#clock-cells = <0>;
    
        status = "okay";
    };
    


    此致、

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

    您好、

    您能否分享您的预期时钟及其来源? 我不确定此处的语法、但我可以帮助您查看是否可能以及需要配置什么 i2c。 然后、我们可以使用驱动程序文件/reg dump 验证正在设置哪些寄存器。  

    此致、
    Mir

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

    您好 Sergio、

    MCASP2 AHCLKX 是否正确生成 AUDIO_EXT_REFCLK? 您的 DTS 为什么指向 McASP0_AHCLKX?

    	assigned-clocks = <&k3_clks 157 0>;
    	assigned-clock-parents = <&k3_clks 157 6>;

    不应该 是<&k3_CLKS 157、8>而不是<&k3_clks157、6>

    MIR Jeffres 。它们使用 MCASP 作为主站并从 AUX_CLK 生成时钟。  

    此致

    Suren

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

    我还问是什么频率、我看到提到了“24576000"的“的速率、我假设这是 MCLK? 所需的 BCLK 和 WCLK 是什么、ADC 是生成这些信号还是 MCU? 感谢您提供的语法帮助 — 我真的不知道如何在 DTS 中为此系统定义时钟。

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

    您好、
    我正在使用 MPU 生成的 AUDIO_EXT_REFCLK0 作为我的 MCKL、我希望主时钟为 24576000。

    我所需的 BCLK 为 1.5MHz、所需的 WCLK 为 48kHz。

    此致。

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

    您好 Sergio、

    您的时钟是否仍有问题?  

    此致

    Suren

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

    您好、Suren、

    McASP 节点已更改为该节点

    &mcasp2
    状态=“正常“
    #sound-dai-cells =<0>

    pinctrl-names =“default";“;
    pinctrl-0 =<&McASP_AUDIO_IN_OUT_PINS_DEFAULT>

    OP-MODE =<0>/* modo I2S */
    TDM-SLOTS =<2>/*立体声*/
    TDM-SLOTS-Rx =<6>
    插槽宽度=<32>

    serial-dir =<1 1 2 0>

    tx-num-evt =<32>
    rx-num-evt =<32>

    Clocks =<&K3_CLKS 192 0>、<&K3_CLKS 192 30>
    时钟名称=“fck",“,"ahclkx"、"ahclkx";“;</s>“

    Assigned-clocks =<&K3_CLKS 192 27>
    assigned-clock-parter =<&K3_CLKS 192 30>
    分配的时钟速率=<24576000>

    MCLK-FS =<512>

    };

    现在它正在运行我的 TAS、但在我的 TLV320DAC3203IRGE 上、我只听到了持续的嘶嘶声。 我的节点配置如下。

    AUDIO1AUDIO1@18
    // TLV320DAC3203IRGE (ADC/DAC)
    #sound-dai-cells =<0>
    pinctrl-names =“default";“;
    pinctrl-0 =<&main_rst_dac1_pins_default>

    兼容=“ti、tlv320aic32x4“
    reg =<0x18>
    状态=“正常“

    sound-name-prefix =“AIC1";“;
    IOV-SUPPLY =<&VCC_3V3_SYS>
    ldoin-supply =<&VCC_3V3_sys>

    RESET-GPIO =<&MAIN_GPIO0 45 GPIO_ACTIVE_HIGH>

    时钟=<&AUDIO_refclk0>
    时钟名称=“MCLK";“;

    aic32x4-GPIO-func =<0xff 0xff 0xff 0x08>

    GPIO 控制器;
    #GPIO-cells =<2>
    };



    此致。

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

    您好 Sergio。

    在音频团队的帮助下、您是否在没有 DAC/放大器的情况下使 ADC 独立工作?

    此致

    Suren

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

    您好、Suren。

    正如您所提到的、只让我在设备树中输入麦克风。

    当我尝试记录时、我得到了这个错误

     root@am62p:/storage# areord -D HW:0、0 -f S32_LE -r 48000 -c 2 -V 立体声/storage/test.wav
    录制波形'/storage/test.wav ':有符号的 32 位小端字节序,速率 48000 Hz,立体声
    +00%|00%+记录:PCM_READ:2272:读取错误:输入/输出错误

    我的 mcasp2 节点如下所示

    &mcasp2
    状态=“正常“
    #sound-dai-cells =<0>

    pinctrl-names =“default";“;
    pinctrl-0 =<&McASP_AUDIO_IN_OUT_PINS_DEFAULT>

    OP-MODE =<0>/* modo I2S */
    TDM-SLOTS =<2>/*立体声*/
    TDM-SLOTS-Rx =<6>
    插槽宽度=<32>

    serial-dir =<0 0 0 2 0>

    tx-num-evt =<32>
    rx-num-evt =<32>

    Clocks =<&K3_CLKS 192 0>、<&K3_CLKS 192 30>
    时钟名称=“fck",“,"ahclkx"、"ahclkx";“;</s>“

    Assigned-clocks =<&K3_CLKS 192 27>
    assigned-clock-parter =<&K3_CLKS 192 30>

    分配的时钟速率=<24576000>

    MCLK-FS =<512>

    };


    ATT.

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

    您好 Sergio、

    音频团队以前是否帮助配置/编程 ADC?

    如果你明天不能再听到声音,那我们就可以跟我谈谈了。

    此致

    Suren

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

    可以共享 ADC 的寄存器转储 (i2cdump) 吗? 以及在这些测试期间、您在 MCLK/BCLK/WCLK 上测量的时钟。

    此致、
    Mir

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

    TLV320ADC3101IRGER  

    root@am62p-lohr:~# i2cdump -f -y 2 0x19
    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: 04 00 01 17 01 17 7d d3 7f ff 00 00 00 00 7f ff    ?.????}??.....?.
    10: 00 00 00 00 00 00 00 00 7f ff 00 00 00 00 00 00    ........?.......
    20: 00 00 7f ff 00 00 00 00 00 00 00 00 7f ff 00 00    ..?.........?...
    30: 00 00 00 00 00 00 7f ff 00 00 00 00 00 00 00 00    ......?.........
    40: 00 00 00 00 00 00 00 00 7f ff 00 00 00 00 7f ff    ........?.....?.
    50: 00 00 00 00 00 00 00 00 7f ff 00 00 00 00 00 00    ........?.......
    60: 00 00 7f ff 00 00 00 00 00 00 00 00 7f ff 00 00    ..?.........?...
    70: 00 00 00 00 00 00 7f ff 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    ................


    当我运行 arecord -D HW:0、3 -r 48000 -f S16_LE -c 2 -d 15 /storage/teste.wav 时、我获得了此输出  

    录制波形'/storage/teste.wav ':有符号 16 位小端字节序,速率 48000 Hz,立体声
    A 记录:PCM_READ:2272:读取错误:输入/输出错误

    BCLK = 1、66MHz
    Wclk =在 680ms 内为高电平
    MCLK = 24、30MHz

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

    您好、

    这是第 4 页的转储、只是系数。 你能做一个转储页 0 吗? 为此、请将 0x00 写入寄存器 0x00、然后执行 i2cdump。 如果您没有在 WCLK 上获得任何时钟,这是导致问题的原因 — 生成 WCLK 的对象之间存在不匹配(是编解码器从 BCLK/MCLK 生成的、还是您希望 MCU 生成 WCLK?)。 这也可能是时钟分频器问题。 如果您可以发送第 0 页、我可以看到您的时钟分频器是什么。 如果可以、请确保转储在录制/播放期间。

    此致、
    Mir

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

    您好、

    root@am62p-lohr:~# sleep 2 && i2cdump -f -y 2 0x19
    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 03 11 03 13 88 00 00 00 00 00 00 00    .. .?????.......
    10: 00 00 07 02 80 80 04 00 00 00 01 00 00 02 08 00    ..?????...?..??.
    20: 00 10 00 00 00 00 02 00 00 00 00 00 00 00 00 00    .?....?.........
    30: 00 00 00 00 00 12 02 02 00 00 00 44 00 01 00 00    .....???...D.?..
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 88 00 00 00 00 00 7f 00 00 00 00 00 00 00    ..?.....?.......
    60: 7f 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    ................
    


    这是我的垃圾


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

    您好 Sergio、

    Mir 今天已下班、下周可以返回到这一主题。

    此致、

    Garret

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

    您好 Sergio、

    我今天去了你的垃圾场。 时钟分频器看起来好像您在 48KHz(48K 采样速率)的 WCLK 下使用 24.576MHz 的 MCLK。 您是希望 MCU 为您生成所有时钟、还是希望直接生成 MCLK、而 ADC 将生成其运行所需的 BCLK 和 WCLK? 当前脚本需要从模式(还提供了 BCLK 和 WCLK)。 但是、时钟树中的所有分频器都已断电、我们通常只会在器件未运行时看到这种情况。 我知道您一开始就遇到了问题、因此可能是 MCU 在时钟上设置下拉电阻器或无法正确打开时出现的问题?

    # PAGE 0 NOW
    02 20
    04 03 #plL_clkin=mclk, codec_clkin=pll_clk
    05 11 #P=1, R=1 (default)
    06 03 #J = 3
    07 13 #D MSB=0x13
    08 88 #D LSB=0x88 for total of 0x1388=5000 so J.D = 3.5
    12 07 #nadc powered down,=7
    13 02 #madc powered down,=2
    14 80 #aosr = 128
    15 80 #iadc=128*2
    16 04 #default decimation
    1a 01 #clkout div powered down, =1
    1b 00 #i2s, 16 bit, slave mode
    1d 02 #bdiv_clkin=adc_clk (default)
    1e 08 #bclk ndiv=8, powered down
    21 10 #default, pasi wclk output=internally generated adc_fs clk
    26 02 #default, both channels enabled
    35 12 #default, dout=primary dout
    36 02 
    37 02 
    3b 44 #def
    3d 01 #prb_r1 (default)
    52 88 #default - ladc+radc channels muted
    58 7f #default agc gains
    60 7f #default agc gains
    
    
    # expect 48k and bclk of 24.3MHz (24.576MHz??) otherwise it would be 47.46kHz
    
    

    请告诉我这一点。

    此致、
    Mir

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

    尊敬的 Mir:

    我希望 MPU 在 MCASP2 上生成时钟。

    我当前的&mcasp2 节点如下所示

    &mcasp2 {
        status = "okay";
        #sound-dai-cells = <0>;
    
        pinctrl-names = "default";
        pinctrl-0 = <&mcasp_audio_in_out_pins_default>;
    
        op-mode = <0>;          /* Modo I2S */
        tdm-slots = <2>;        /* Stereo */
    	tdm-slots-rx = <6>;
    	slot-width = <32>;
    	//slot-width = <16>;
    
        serial-dir = <1 1 1 2 0>;
    
    	tx-num-evt = <32>;
    	rx-num-evt = <32>;
    
    	clocks = <&k3_clks 192 0>, <&k3_clks 192 30>;
    	clock-names = "fck", "ahclkx";
    
    	assigned-clocks = <&k3_clks 192 27>;
    	assigned-clock-parents = <&k3_clks 192 30>;
    
    	assigned-clock-rates = <24576000>;
    
    	mclk-fs = <512>;
    
    };
    


    下面显示了我的 ADC 节点

    	audio_adc1: adc1@19 {
    
    		#sound-dai-cells = <0>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_rst_adc1_pins_default>;
    		compatible = "ti,tlv320adc3101";
    		reg = <0x19>;
    		status = "okay";
    
    		reset-gpios = <&main_gpio0 47 GPIO_ACTIVE_HIGH>;
    		//clocks = <&k3_clks 192 30>;
    		clocks = <&k3_clks 157 16>;
    		clock-names = "mclk";
    
    		sound-name-prefix = "ADC1";
    
    		ti,dmdin-gpio1 = <0>;
    		ti,dmclk-gpio2 = <0>;
    
    		ti,micbias1-vg = <0>;
    
    		gpio-controller;
    		#gpio-cells = <2>;
        };



    ATT.

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

    您好、

    我对 DTS 的具体配置不太了解。 不过、可以确定时钟与 mcasp2 节点中的时钟父级相同吗? 然后、在 ADC“Clocks"条“条目中还有另一个对不同时钟的引用。  

    您发送给我的转储不是在操作期间。 您是否能够录制或播放设备? 或者 WCLK 在尝试播放/录制之前是否从未生成、并且出现错误?  
    您是否验证了 DTS 配置没有将该引脚拉高? 我在“RESET-GPIO"行“行中看到 GPIO 47 ACTIVE_HIGH?  

    此致、
    Mir

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

    您好、
    在 mcasp2 中,我能够播放,但从未能够录制,我认为我的时钟是错误的,但我不知道太多关于时钟配置。

    我的复位正确、我们选择具有 ACTIVE_HIGH。

    此致、

    Sergio

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

    好的。 Niranjan Holalu Yogendra 和 Suren Porwar 可为 ADC 端的 DTS 配置提供更多帮助。 如果播放正常、则 ADC 和 DAC 应该具有相同的时钟、因此 DTS 上可能缺少一些元件。

    此致、
    Mir

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

    您好 Sergio、

     是否仍面临 IO 错误? 您能分享这方面的内核日志吗? 如前所述、我怀疑与 IO 错误相关的问题主要与 DMA 相关、而不是与编解码器相关。  

    McASP:  

    根据 文档、 我认为当 Tx 和 Rx 具有不同的格式时、我们必须使用“ti、异步模式“。 Suren Porwar 请确认。 这可能与 IO 错误有关。  

    编解码器: 关于编解码器配置(与 IO 错误无关,但很重要)

    1. TI、micbias1-vg =<0>;//禁用 micbias。 您是否不使用芯片上的 micbias?  

    2.您的复位 GPIO 应为  RESETs =<&MAIN_GPIO0 47 GPIO_ACTIVE_LOW>;

    驱动器中、

    gpiod_set_value_cansleep (adc3xxx->rst_pin、1);//设置为逻辑 1 => GPIO 子系统会将引脚物理上驱动为低电平(复位启动)
    uleep_range (2,000,100000);
    gpiod_set_value_cansleep (adc3xxx->rst_pin、0);//设置为逻辑 0 => GPIO 子系统驱动器、然后引脚物理上为高电平(复位结束)

    根据数据表、RESET(带顶置杆)引脚必须驱动为低电平至少 10ns

    请检查更改是否有帮助。 谢谢  

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

    嗨、Niranjan

    当我运行此命令“arecord -D HW:0、3 -f S16_LE -c 2 -r 44100 -v /tmp/test.wav 时、我会得到此输出

    root@am62p-lohr:~# arecord -D hw:0,3 -f S16_LE -c 2 -r 44100 -v /tmp/test.wav
    arecord: set_params:1456: Unable to install hw params:
    ACCESS:  RW_INTERLEAVED
    FORMAT:  S16_LE
    SUBFORMAT:  STD
    SAMPLE_BITS: 16
    FRAME_BITS: 32
    CHANNELS: 2
    RATE: 44100
    PERIOD_TIME: (125011 125012)
    PERIOD_SIZE: 5513
    PERIOD_BYTES: 22052
    PERIODS: 4
    BUFFER_TIME: (500045 500046)
    BUFFER_SIZE: 22052
    BUFFER_BYTES: 88208
    TICK_TIME: 0
    [  422.111814] tlv320adc3xxx-codec 2-0019: ASoC: error at snd_soc_dai_hw_params on tlv320adc3xxx-hifi: -22
    [  422.124739]  2b20000.audio-controller-tlv320adc3xxx-hifi: ASoC: error at __soc_pcm_hw_params on 2b20000.audio-controller-tlv320adc3xxx-hifi: -22



    1.我的 micbias 引脚未连接。
    2.我们将 RESET-GPIO 更改为高电平、因为我们有一个逆变器电路连接到 RESET 引脚、但我们也更改了驱动器代码

    	/* Reset codec chip */
    	dev_info(dev, "Executando sequencia de reset de hardware...\n");
    	//gpiod_set_value_cansleep(adc3xxx->rst_pin, 1);
    	gpiod_set_value_cansleep(adc3xxx->rst_pin, 0);
    	usleep_range(2000, 100000); /* Requirement: > 10 ns (datasheet p13) */
    	//gpiod_set_value_cansleep(adc3xxx->rst_pin, 0);
    	gpiod_set_value_cansleep(adc3xxx->rst_pin, 1);
    


    我看一下“ti,async-mode",“,谢谢、谢谢。

    ATT.

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

    似乎错误是从驱动程序中的 hw_params 返回的? 如果您将 MCLK 用作  24576000Hz、您可以尝试 SR 48K 吗?

    看起来驱动程序中不支持此 MCLK 为 44.1k、因为它使用的是查找表。  

    elixir.bootlin.com/.../tlv320adc3xxx.c

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

    以下是 48000 的结果。

    root@am62p-lohr:~# arecord -D hw:0,3 -f S16_LE -c 2 -r 48000 -v /tmp/test.wav
    Hardware PCM card 0 'Lohr-Audio' device 3 subdevice 0
    Its setup is:
      stream       : CAPTURE
      access       : RW_INTERLEAVED
      format       : S16_LE
      subformat    : STD
      channels     : 2
      rate         : 48000
      exact rate   : 48000 (48000/1)
      msbits       : 16
      buffer_size  : 24000
      period_size  : 6000
      period_time  : 125000
      tstamp_mode  : ENABLE
      tstamp_type  : MONOTONIC
      period_step  : 1
      avail_min    : 6000
      period_event : 0
      start_threshold  : 1
      stop_threshold   : 24000
      silence_threshold: 0
      silence_size : 0
      boundary     : 6755399441055744000
      appl_ptr     : 0
      hw_ptr       : 0
    Recording WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    arecord: pcm_read:2272: read error: Input/output error
    
    [ 1923.353658] tlv320adc3xxx-codec 2-0019: ASoC: error at soc_component_write_no_lock on tlv320adc3xxx-codec.2-0019 for register: [0x00000005] -121
    [ 1923.366814] tlv320adc3xxx-codec 2-0019: ASoC: error at soc_component_write_no_lock on tlv320adc3xxx-codec.2-0019 for register: [0x00000006] -121
    [ 1923.380123] tlv320adc3xxx-codec 2-0019: ASoC: error at soc_component_write_no_lock on tlv320adc3xxx-codec.2-0019 for register: [0x00000008] -121
    [ 1923.393240] tlv320adc3xxx-codec 2-0019: ASoC: error at soc_component_write_no_lock on tlv320adc3xxx-codec.2-0019 for register: [0x00000007] -121
    [ 1923.406373] tlv320adc3xxx-codec 2-0019: ASoC: error at soc_component_write_no_lock on tlv320adc3xxx-codec.2-0019 for register: [0x00000004] -121
    [ 1923.419566] tlv320adc3xxx-codec 2-0019: ASoC: error at snd_soc_component_update_bits on tlv320adc3xxx-codec.2-0019 for register: [0x00000012] -121
    [ 1923.432862] tlv320adc3xxx-codec 2-0019: ASoC: error at snd_soc_component_update_bits on tlv320adc3xxx-codec.2-0019 for register: [0x00000013] -121
    [ 1923.446179] tlv320adc3xxx-codec 2-0019: ASoC: error at snd_soc_component_update_bits on tlv320adc3xxx-codec.2-0019 for register: [0x0000001e] -121
    
    


    ATT.

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

    好的、现在之前的错误消失了、这些错误看起来像在配置 hw_params 中时钟的除数时抛出 i2c 错误。 一些与 i2c 相关的问题、请检查 i2cdump 是否仍可用于器件。

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

    这是 I2cdump

    ~# i2cdump -f -y 2 0x19
    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 03 11 03 13 88 00 00 00 00 00 00 00    .. .?????.......
    10: 00 00 07 02 80 80 04 00 00 00 01 00 00 02 08 00    ..?????...?..??.
    20: 00 10 00 00 00 00 02 00 00 00 00 00 00 00 00 00    .?....?.........
    30: 00 00 00 00 00 12 02 02 00 00 00 44 00 01 00 00    .....???...D.?..
    40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    50: 00 00 88 00 00 00 00 00 7f 00 00 00 00 00 00 00    ..?.....?.......
    60: 7f 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    ................
    

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

    是否可以尝试保留重置所做的任何更改并重试?

    选项 1:RESET-GPIO =<&MAIN_GPIO0 47 GPIO_ACTIVE_LOW>;

    或  

    选项 2:驱动程序更改以处理复位

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

    选项 1:失败 — 我看起来像预期的那样  

    选项 2:声卡注册失败? 不知道在这里发生了什么。  

    选项 3:失败 — 看起来像预期的那样

    选项 4:内核错误仍然是 i2c 错误还是其他错误? 请共享此 IO 错误的内核日志  

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

    选项 4 日志

    root@am62p-Lohr:~# arecord -D HW:0、3 -f S16_LE -c 2 -r 48000 -v /tmp/test.wav
    硬件 PCM 卡 0 “Lohr-Audio"设备“设备 3 子设备 0
    其设置为:
    STREAM:捕获
    访问:rw_interleaved
    格式:S16_LE
    子格式:标准
    频道:2.
    价格:48000
    确切费率:48000(48000/1)
    第 16 章我是不是
    buffer_size:24000
    PERIOD_SIZE:6000
    Period_time:125000
    tstamp_mode:启用
    tstamp_type :单调
    PERIOD_STEP:1.
    AVAY_MIN:6000
    PERIOD_EVENT:0
    start_threshold:1.
    stop_threshold:24000
    SILENY_THRESHOLD:0
    SILENY_SIZE:0
    边界:6755399441055744000
    Appl_ptr:0
    hw_ptr:0
    录制波形'/tmp/test.wav ':有符号 16 位小端字节序,速率 48000 Hz,立体声
    A 记录:PCM_READ:2272:读取错误:输入/输出错误
    [ 110.895608] DaVinci-McASP 2b20000.audio-controller: startup:Open Capture stream
    [ 110.895633] DaVinci -McASP 2b20000.audio-controller:启动:最大通道限制为 2 个(串行器:1、TDM 插槽:2)
    [ 110.896233] DaVinci -McASP 2b20000.audio-controller: SET_SYSCLK:ID=0、freq=24576000Hz、dir=out
    [ 110.896240] DaVinci -McASP 2b20000.audio-controller: SET_SYSCLK:将 HCLK 配置为输出(AUXCLK ->引脚)
    [ 110.898979] DaVinci -McASP 2b20000.audio-controller: HW_params:开始设置为 48000Hz、2 个通道、格式为 0x2
    [ 110.8988] DaVinci -McASP 2b20000.audio-controller: hw_params:检测到的 WORD_LENGTH = 16
    [ 110.898994] DaVinci -McASP 2b20000.audio-controller: McASP_set_dai_fmt:原始 fmt 掩码 0x1001
    [ 110.899000] DaVinci -McASP 2b20000.audio-controller: McASP_set_dai_fmt:format -> I2S
    [ 110.899006] DaVinci -McASP 2b20000.audio-controller: McASP_set_dai_fmt:FS 是提供方(BCLK/McASP 主站)
    [ 110.899015] DaVinci -McASP 2b20000.audio-controller: HW_params:计算 BCLK (RATE:48000 * sbits:16 * SLOTS:2)= 1536000Hz
    [ 110.899022] DaVinci -McASP 2b20000.audio-controller: calc_clk_div:SYSCLK =24576000、TARGET_BCLK=1536000
    [ 110.899029] DaVinci -McASP 2b20000.audio-controller: calc_clk_div:最终 BCLK div=16、误差=0PPM
    [ 110.899035] DaVinci -McASP 2b20000.audio-controller: set_clkdiv:将 BCLK 分频器设置为 16(寄存器值:15、显式:0)
    [ 110.899043] DaVinci -McASP 2b20000.audio-controller: set_clkdiv:将 MCLK (AUXCLK) 分频器设置为 1(寄存器值:0)
    [ 110.899049] DaVinci -McASP 2b20000.audio-controller: HW_PARAM RX:通道=2、PERIOD_WORDS=12000、插槽=2
    [ 110.899056] DaVinci -McASP 2b20000.audio-controller: HW_PARAM:所需的串行器= 1
    [ 110.899065] DaVinci -McASP 2b20000.audio-controller: HW_PARAM:将 AXR3 配置为 RX
    [ 110.899072] DaVinci -McASP 2b20000.audio-controller: HW_PARAM:FIFO 有效! dma 1、NUMEVT=32、NUMDMA= maxburst=32
    [ 110.899127] DaVinci -McASP 2b20000.audio-controller: HW_params:进入 I2S 模式设置
    [ 110.899196] DaVinci -McASP 2b20000.audio-controller: I2S_HW_PARAM RX:通道=2、TOTAL_SLOTS=2
    [ 110.899204] DaVinci -McASP 2b20000.audio-controller: I2S_HW_PARAM:计算的 TDM 掩码= 0x3(需要串行器:1)
    [ 110.899210] DaVinci -McASP 2b20000.audio-controller: I2S_HW_PARAM:配置 RX TDM=0x3、FSRMOD=2 时隙
    [ 110.899217] DaVinci -McASP 2b20000.audio-controller: I2S_HW_PARAM:同步模式 — 强制 TX FSXMOD 为 2
    [ 110.899223] DaVinci -McASP 2b20000.audio-controller: CONFIG_CH_SIZE:SAMPLE_WIDTH=16、SLOT_WIDTH=16、MASK=0xFFFF
    [ 110.899229] DaVinci -McASP 2b20000.audio-controller: CONFIG_CH_SIZE:格式 I2S/LEFT_J -> TX ROTTOT = 4、RX ROTATE = 0
    [ 110.899236] DaVinci -McASP 2b20000.audio-controller: CONFIG_CH_SIZE:设置 TX/RX SSZ=0x7(fmt 字段)
    [ 110.899242] DaVinci -McASP 2b20000.audio-controller: HW_PARAMS:安装成功完成
    [ 110.916283] DaVinci -McASP 2b20000.audio-controller: McASP RX:开始接收...
    [ 110.916306] DaVinci -McASP 2b20000.audio-controller: McASP RX:启用 FIFO(基数 0x1000)
    [ 110.916314] DaVinci -McASP 2b20000.audio-controller: McASP RX:释放时钟复位
    [ 110.916319] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x2 写入寄存器 0x60
    [ 110.916326] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 110.916332] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x1 写入寄存器 0x60
    [ 110.916338] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 110.916344] DaVinci -McASP 2b20000.audio-controller: McASP RX:同步模式 — RX 的起始 TX 时钟
    [ 110.916349] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x200 写入寄存器 0xa0
    [ 110.916356] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 110.916361] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x100 写入寄存器 0xa0
    [ 110.916367] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 110.916374] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x4 写入寄存器 0x60
    [ 110.916380] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 110.916385] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x8 写入寄存器 0x60
    [ 110.916391] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 110.916396] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x10 写入寄存器 0x60
    [ 110.916402] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 110.916408] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL:将 0x1000 写入寄存器 0xa0
    [ 110.916414] DaVinci -McASP 2b20000.audio-controller: McASP GBLCTL 在 0 次迭代后同步
    [ 111.633971] DaVinci -McASP 2b20000.audio-controller: SET_SYSCLK:ID=0、freq=0 Hz、dir=out
    [ 111.633996] DaVinci -McASP 2b20000.audio-controller: SET_SYSCLK:将 HCLK 配置为输出(AUXCLK ->引脚)

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

     嗨、 Sergio Rossi 、我建议保留选项 4 并继续调试。

    Suren Porwar 请求您检查与 IO 相关的错误

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

    您好、Sergio、Niranjan、

    我将安排一个呼叫星期一 Morning(达拉斯时间上午 9:00)以快速解决此问题。 此设置的播放似乎正常工作、其唯一的记录有问题。  

    此致

    Suren

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

    太棒了。

    此致

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

    通过星期一 Sergio 与您交谈。

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

    Sergio Rossi 

        在测试时、还请保持“.symmetric _rates = 0、“   

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

    您好 Sergio、

    此外、如通话中所述、请检查您是否可以使用 ACLKx/FSX 来驱动 ADC 上的 BCLK/WCLK。

    在 SYNC 模式下、无法引出 ACLKR 和 AFSR 引脚、只能使用 ACLKX 和 AFSx 引脚。
    同步模式在内部将 ACLKX 和 AFSX 路由到 ACLKR 和 AFSR。

    此致

    Suren