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:AXR0 上仅 McASP 数据流

Guru**** 2794765 points

Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1614809/am62p-mcasp-data-only-streams-on-axr0

部件号: AM62P

您好、  
我将使用 AM62P 开发定制电路板、并使用 TLV320DAC3203IRGE 和 TAS5731MPHPR 进行音频再现。
设备树中有此配置。

/{
	codec_audio: sound {
        compatible = "simple-audio-card";
        simple-audio-card,name = "Lohr-Full-Audio";
        status = "okay";

        #address-cells = <1>;
        #size-cells = <0>;

		simple-audio-card,mclk-fs = <512>;

        /* --- LINK 0: TAS5731 --- */
        simple_dai0: simple-audio-card,dai-link@0 {
            reg = <0>;
            format = "i2s";
            bitclock-master = <&cpulink0>;
            frame-master = <&cpulink0>;

            cpulink0: cpu {
                sound-dai = <&mcasp2>;
                system-clock-direction-out;
            };

            codec0: codec {
                sound-dai = <&tas5731>;
				clocks = <&audio_refclk0>;
				clock-names = "mclk";
                system-clock-frequency = <24576000>;
				simple-audio-card,prefix = "AMP";
				auxclk-fs-ratio = <512>;
            };
        };

		/* --- LINK 1: TLV320DAC3203 (U8) --- */
        simple_dai1: simple-audio-card,dai-link@1 {
            reg = <1>;
            format = "i2s";
			bitclock-master = <&cpulink1>;
            frame-master = <&cpulink1>;

            cpulink1: cpu {
                sound-dai = <&mcasp2>;
            };

            codec1: codec {
                sound-dai = <&audio1>;
				clocks = <&audio_refclk0>;
				clock-names = "mclk";
				simple-audio-card,prefix = "DAC1";
				system-clock-frequency = <24576000>;
				auxclk-fs-ratio = <512>;
            };
        };
	};
};

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

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

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

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

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

	clocks = <&k3_clks 157 0>, <&k3_clks 157 16>;
	clock-names = "fck", "mcasp_aux_clk";

	assigned-clocks = <&k3_clks 157 0>;
	assigned-clock-parents = <&k3_clks 157 16>;
    assigned-clock-rates = <24576000>;

	tdm-mask = <0x3>;
};

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

	audio1: audio1@18 {
		// TLV320DAC3203IRGE (ADC/DAC)
		compatible = "ti,tlv320aic32x4";
        reg = <0x18>;

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

		#sound-dai-cells = <0>;
		reset-gpios = <&main_gpio0 45 GPIO_ACTIVE_HIGH>;
	    		
		clocks = <&k3_clks 157 16>;
		clock-names = "mclk";

		assigned-clocks = <&k3_clks 157 16>;
    	assigned-clock-rates = <24576000>;

		sound-name-prefix = "AIC1";

		iov-supply = <&vcc_3v3_main>;
        ldoin-supply = <&vcc_3v3_main>;

		aic32x4-gpio-func = <0xff 0xff 0xff 0xff 0xff>;

		gpio-controller;
		#gpio-cells = <2>;
		
		status = "okay";
	};
};

&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 16>;
		clock-names = "mclk";

		assigned-clocks = <&k3_clks 157 16>;
		assigned-clock-rates = <24576000>;

		sound-name-prefix = "tas-1";

		AVDD-supply  = <&vcc_3v3_sys>;
		DVDD-supply  = <&vcc_3v3_sys>;
		PVDD_AB-supply = <&en_pwr_17v>;
		PVDD_CD-supply = <&en_pwr_17v>;
	};
};

&main_pmx0{
	mcasp_audio_in_out_pins_default: mcasp-audio-in-out-default-pins {
	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 */
    >;
};

&audio_refclk0 {
	#clock-cells = <0>;

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

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

	assigned-clock-rates = <24576000>;

    status = "okay";
};

&k3_clks {
	assigned-clocks = <&k3_clks 157 16>;
	status = "okay";
};

如果我运行此命令 avplay -D HW:0、0 Audio_1kHz_32767.wav、则表示我在 AXR0 上看到信号、但当我运行 avplay -D HW:0、1 Audio_1kHz_32767.wav 时、我也看到 AXR0 上的信号。

如何使信号传输到 AXR1?

此致。

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

    您好 Sergio、

    当配置为单独或独立运行两个设置时、设置是否起作用?  

    此外、我还向您发送了一封电子邮件、用于调试您的设置。 请检查您的电子邮件。

    此致、

    Suren

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

    就我测试过的 McASP 中唯一响应的引脚是 AXR0 而言、这与我的配置无关。

    此致。

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

    您好 Sergio、

    请回复我在这里发布的查询:

     AM62P:ASOC-simple-card 声卡 

    这两个问题是否相同?  

    我们能否关闭其中一个问题并继续讨论单线程?

    此致

    Suren

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

    是的、这也是一个问题。

    ATT.

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

    您好 Sergio、

    是否可以从 mcasp2 节点中删除这些行:

    clocks =<&k3_CLKS 157 0>、<&k3_CLKS 157 16> ;clock-names =“fck",“,"McASP_aux_clk"、"McASP_aux_clk";“;assigned-clocks“assigned-clocks =<&k3_CLKS 157 0>;assigned-clock-partmenter =<&k3_CLKS 157 16>; 分配的时钟速率=<24576000>;

    并在两个 DAI 链接上添加以下条目。

    system-clock-direction-out; 


    This will allow to use auxclk to generate the MCLK instead of AUDIO_EXTREFCLK and you can modify the audio_refclk to take input from MCASP2->AHCLKX PIN.

    Let me know how it goes with these changes.
    Best Regards
    Suren
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Suren、

    我已经做了此更改、但当我运行“speaker-test -D HW:0、0 -t sine -f 400 -c 2“ 或“speaker-test -D HW:0、1 -t sine -f 400 -c 2“时、唯一具有数据信号的引脚是 AXR0。  
    在测量时钟时、得到了这个频率。

    MCLK = 24、5MHz
    TX_FS = 200kHz
    TX_CLK = 19、29MHz

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

    你好 Suren 我对我的 mcasp2 节点做了一些更改  

    &mcasp2{
    状态=“正常“;
    #sound-dai-cells =<0>;
    #address-cells =<1>;
    #size-cells =<0>;
    pinctrl-names =“default";“;
    pinctrl-0 =<&McASP_AUDIO_IN_OUT_PINS_DEFAULT>;

    OP-MODE =<0>;/* modo I2S */
    TDM-SLOTS =<4>;/*立体声*/
    TDM-MASK =<0xF>;

    TDM 时隙宽度=<32>;

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

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

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

    Assigned-clocks =<&K3_CLKS 192 0>、<&K3_CLKS 192 27>;
    分配的时钟父级=[0]、<&K3_CLKS 192 30>;/* 30 = AUDIO_EXT_REFCLK0_OUT */
    分配的时钟速率=<0>、<24576000>;

    auxclk-Fs-ratio =<512>;
    FCK-MASTER;

    };

    现在时钟工作正常、但每次运行时都会这样
     SPEAKER-TEST -D HW:0、0 -t sine -f 400 -c 2.
     SPEAKER-TEST -D HW:0、1 -t sine -f 400 -c 2.

    唯一有符号的数据引脚是 AXR0、但时钟每次都正常工作。

    ATT.

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

    您好 Sergio、

    是的、如果您只是尝试在连接到 AXR1 引脚的 DAC 上播放数据、则您会看到 AXR0 上有数据。  

    如果您有 4 通道音频、然后播放、前两个通道将显示在 AXR0 上、接下来的两个通道将显示在 AXR1 引脚上。

    其主要原因是通道默认映射到 AXR0。

    此致

    Suren

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

    您好、Suren、

    是否有办法改变这种情况? 在某些情况下、我只希望 DAC 连接到正在播放的 AXR1。

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

    您好 Sergio、

    如何区分放大器和 DAC 播放? 当前不受支持、需要更改驱动程序。

    此致

    Suren

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

    您好、Suren、

    当我运行 avplay -l 时、我得到了这个输出

    root@am62p:~# avplay -l
    ****播放硬件设备列表****
    卡 0:FullAudio【全音频】、设备 0:2b20000.audio-controller-tas571x-hifi tas571x-hifi-0 [2b20000.audio-controller-tas571x-hifi tas571x-hifi-0]
     子设备:1/1
     SUBDEVICE #0:SUBDEVICE #0
    卡 0:FullAudio【全音频】、设备 1:2b20000.audio-controller-tlv320aicx4-hifi-1-18 tlv320aicx4-hifi [2b20000.audio-controller-tlv320aicx4-hifi-1-18 tlv320aicx4-hifi]
     子设备:1/1
     SUBDEVICE #0:SUBDEVICE #0
    卡 0:FullAudio【全音频】、设备 2:2b20000.audio-controller-tlv320aicx4-hifi-2-18 tlv320aicx4-hifi [2b20000.audio-controller-tlv320aicx4-hifi-2-18 tlv320aicx4-hifi]
     子设备:1/1
     SUBDEVICE #0:SUBDEVICE #0

    我可以区分器件型号吗? 我的放大器是器件 0、我的 DAC 播放是器件 1 和器件 2。

    这种驱动程序修改,它将是在简单卡上?

    此致。

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

    您好 Sergio、  

    AXR1 针脚上是否显示 4 声道音频(通道 3 和 4)?

    此致

    Suren

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

    您好、Suren、

    它未接受 4 声道音频、我运行了“Speaker-test -D HW:0、0 -t sine -f 1000 -c 4“、我收到通道数错误。

    此致。

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

    运行时、您是否同时连接了放大器和 DAC?

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

    是的。

    放大器连接到 AXR0
    DAC1 连接到 AXR1
    DAC2 连接到 AXR2

    此致。

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

    您是否在每个 AXR 引脚上都连接了逻辑分析仪?  

    您可以使用 avplay 命令运行以下文件吗?
    avplay 6_Channel_ID.wav  

    并共享逻辑分析仪的屏幕截图。

    此致

    Suren

    e2e.ti.com/.../6_5F00_Channel_5F00_ID.wav

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

    您好、Suren

    我在 AXR0、AXR1 和 AXR2 上连接了一个示波器、您可以在下面看到
    AXR0:

    AXR1:

    AXR2:

     
    您可以看到唯一具有信号的输出是 AXR0。

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

    您好 Sergio、

    我们有多通道音频功能用于另一个 SoC、

    看一下器件树的变化、其中 8 通道音频可以使用多个 AXR 引脚。

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts?h=ti-linux-6.18.y-cicd

    此致

    Suren