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.

[参考译文] AM625:can##39;t 从 TLV320AIC3106IRGZT 播放音频编解码器中的声音。

Guru**** 2480055 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1457796/am625-can-t-play-sound-from-audio-codec-from-tlv320aic3106irgzt

器件型号:AM625

工具与软件:

您好、TI 专家!
我将音频编解码器 TLV320AIC3106IRGZT 与我的定制 AM625 SOM 配合使用。 我需要在上面播放一些音频、我正在使用的输出线路是音频编解码器 IC 中的左侧 LOP 和左侧 LOM。
我在器件树中将其配置为

/ {
    tlv320_mclk: clk-0 {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <12288000>;
	};

	codec_audio: sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "AM62x-SKEVM";
		simple-audio-card,widgets =
			"Headphone",	"Headphone Jack",
			"Line",		"Line Out",
			"Line",		"Line In",
			"Microphone",	"Microphone Jack",
			"Speaker",		"External Speaker";
		simple-audio-card,routing =
			"Headphone Jack",	"HPLOUT",
			"Headphone Jack",	"HPROUT",
			"Line Out",		"LLOUT",
			"Line Out",		"RLOUT",
			"LINE1L",		"Line In",
			"LINE1R",		"Line In",
			"MIC3R",		"Microphone Jack",
			"Microphone Jack",	"Mic Bias";
		simple-audio-card,format = "dsp_b";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;
		simple-audio-card,bitclock-inversion;

		simple-audio-card,cpu {
			sound-dai = <&mcasp1>;
		};

		sound_master: simple-audio-card,codec {
			sound-dai = <&tlv320aic3106>;
			clocks = <&tlv320_mclk>;
		};
	};
};
	
&main_pmx0 {
    main_audio_codec_reset_pins_default: main-audio-codec-reset-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x1dc, PIN_OUTPUT_PULLDOWN, 7) // (E15) MCAN0_RX.GPIO1_25 /
		>;
	};
	
	main_mcasp1_pins_default: main-mcasp1-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x090, PIN_INPUT, 2) /* (M24/K17) GPMC0_BE0N_CLE.MCASP1_ACLKX */
			AM62X_IOPAD(0x098, PIN_INPUT, 2) /* (U23/P21) GPMC0_WAIT0.MCASP1_AFSX */
			AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
			AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
		>;
	};
};

&main_i2c2 {
	bootph-all;
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&main_i2c2_pins_default>;
	clock-frequency = <100000>;

	tlv320aic3106: audio-codec@1b {
		#sound-dai-cells = <0>;
		compatible = "ti,tlv320aic3106";//ti,tlv320aic3x: tlv320aic3106
		reg = <0x1b>;
		
		pinctrl-names = "default";
		pinctrl-0 = <&main_audio_codec_reset_pins_default>;
		reset-gpios = <&main_gpio1 25 GPIO_ACTIVE_LOW>;
		
		ai3x-micbias-vg = <1>;

		AVDD-supply = <&vcc_3v3_sys>;
		IOVDD-supply = <&vcc_3v3_sys>;
		DRVDD-supply = <&vcc_3v3_sys>;
		DVDD-supply = <&vcc_1v8_audio>;
	};
};

&mcasp1 {
	status = "okay";
	#sound-dai-cells = <0>;

	pinctrl-names = "default";
	pinctrl-0 = <&main_mcasp1_pins_default>;

	op-mode = <0>;
	tdm-slots = <2>;

	serial-dir = < 
	       1 0 2 0
	       0 0 0 0
	       0 0 0 0
	       0 0 0 0
	>;
	tx-num-evt = <0>;
	rx-num-evt = <0>;
};

我使用 Kernel Config 构建的驱动程序包括:

设备驱动程序-->
声卡支持-->
高级 Linux 声音架构-->
支持 SoC 音频的 ALSA -->
适用于德州仪器(TI) SoC -->的音频支持
<*>多通道音频串行端口(McASP)支持
编解码器驱动程序-->
<*>德州仪器(TI) TLV320AIC3x 编解码器
<*>ASOC 简单声卡支持 

在完成器件树和内核配置中的所有这些更改后、我通过 Linux 从 SDK V10.00.07.04引导了 AM625 SOM、并进行了上述更改、然后输出会如所示

root@am62xx-evm:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AM62xSKEVM [AM62x-SKEVM], device 0: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0 [2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@am62xx-evm:~#
root@am62xx-evm:~# aplay sample-12s-48000.wav 
Playing WAVE 'sample-12s-48000.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
aplay: pcm_write:2178: write error: Input/output error
root@am62xx-evm:~# 

如何解决此问题并使音频播放?

此致、
Aditya T

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

    尊敬的 Aditya:

    当 BCLK/帧同步上存在不匹配情况时、会发生输入/输出错误。 您能否检查编解码器是否正确提供了 MCLK。 请探测示波器上的 BCLK/FSYNC 引脚、以查看它们是否正确。

    此致、

    Suren

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

    您好!


    1.我已经探测了所有的引脚,即 BCLK, WCLK, AXR0和 AXR2,我不能观察到任何 th 线上的任何移动,可能的原因是什么?

    2.还指导我是否设备树正确或需要更改左侧 LOP 和左侧 LOM 作为音频编解码器输出的任何内容。

    此致、

    Aditya T  

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

    尊敬的 Aditya:

    您确定您的编解码器提供的是12.28MHz 的 MCLK 吗?  

    此外、我还找到了下面的此主题供您参考:

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1274144/tlv320aic3104-the-output-vpp-of-the-pins-left_lop-and-left_lom

    此致、

    Suren

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

    您好!

    您确定您的编解码器是否提供了12.28MHz 的 MCLK?

    我刚才确认了 MCLK 不会生成、这是可能的原因。 我使用 DSO 进行了检查、编解码器的 MCLK 引脚上没有生成时钟、如何解决该问题?

    [报价 userid="533957" url="~/support/processors-group/processors/f/processors-forum/1457796/am625-can-t-play-sound-from-audio-codec-from-tlv320aic3106irgzt/5595213 #5595213"]

    此外、我还找到了下面的此主题供您参考:

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1274144/tlv320aic3104-the-output-vpp-of-the-pins-left_lop-and-left_lom

    [报价]

    目前 LEFT_LOP 和 LEFT_LOM 没有任何问题、因为绕过了扬声器和麦克风的信号。 我可以从靠近麦克风播放的扬声器中播放声音。

    此致、

    Aditya T  

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

    Aditya

    您能否分享一些信息、说明在您的设置中编解码器是否会为 MCASP 引脚提供时钟? 如果是这样、MCLK 应来自编解码器、它将被内部拆分以创建 BCLK 和 WCLK。  请参阅以下有关时钟生成的文档:

    https://www.ti.com/lit/an/sprack0/sprack0.pdf

    此致、

    Suren