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.

[参考译文] TDA4VM:J7上的 McASP 和虚拟模式

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1227108/tda4vm-mcasp-and-dummy-mode-on-j7

您好、专家!

我需要使用 J7的 McASP10对无编解码器器件的外部器件进行一些测试。

MCASP10 AXR0:输入,接收来自外部设备的 I2S 信号
MCASP10 AXR1:输出,向外部设备发送 I2S 信号

我设置为 虚拟模式 并播放这个 wav 文件、

但是 我无法用示波器探测来自 McASP10 ACLKX 和 AXR1的任何信号。

您能给我一些建议吗?  

谢谢、此致、

-------------------------------------------------------

内核版本:Linux J7-EVM 5.10.100 #9 SMP 抢占 Mon 五月22 15:43:41 CST 2023 Aarch64 Aarch64 GNU/Linux

-------------------------------------------------------

我参考了这些讨论、以修改 DTS

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/607500/linux-processor-sdk-am335x-mcasp-master-mode-configuration

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/672205/linux-am3352-mcasp-configuration-for-dummy-codec

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/629979/linux-dra745-mcasp-and-dummy-sound-card-on-dra7xx?tisearch=e2e-sitesearch&keymatch=jacinto

我尝试使用"aplay"来检查虚拟函数是否可以使用

root@J7-EVM:~# aplay -l
****播放硬件设备列表****
卡0:虚拟[虚拟]、设备0:虚拟 PCM [虚拟 PCM]
子器件:8/8
子设备#0:子设备#0
子设备#1:子设备#1
子设备#2:子设备2
子设备#3:子设备#3
子设备#4:子设备#4
子设备#5:子设备#5
子设备#6:子设备#6
子设备#7:子设备#7

根目录@J7-EVM:~# aplay /bin/Ring01.wav
Playing wave '/bin/Ring01.wav : Signed 16 bit Little Endian, Rate 22050Hz,  Stereo

在"播放"这个 wav 文件后、我无法 探测 McASP10 ACLKX 和 FSX 上的输出信号。

检查 aplay 状态、看起来"aplay"正在工作、

根目录@J7-EVM:~# aplay /bin/Ring01.wav &
[1] 1248
Playing wave '/bin/Ring01.wav : Signed 16 bit Little Endian, Rate 22050Hz, Stereo
root@J7-EVM:~ cat /proc/asound/card0/pcm0p/sub0/status
状态:正在运行
owner_pid:1248
TRIGGER_TIME:2583.017112615
时间戳:0.000000000
延迟:10250
浏览次数:775
最大值:8269
--------
HW_PTR:28336
APP_PTR : 38586
根目录@J7-EVM:~#
root@J7-EVM:~ cat /proc/asound/card0/pcm0p/sub0/status
状态:正在运行
owner_pid:1248
TRIGGER_TIME:2583.017112615
时间戳:0.000000000
延迟:9948
产品编号:1077
最大值:2756
--------
HW_PTR:100294
APP_PTR : 110242
根目录@J7-EVM:~#

并且我 在 defconfig ( "board-support/linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/arch/arm64/configs/ tisdk_J7-evm_defconfig")

CONFIG_SND_SIMPLE_CARD=y

CONFIG_SND_DUEM=y

我修改了 DTS " k3-j721e-common-proc-board.dts "

codec_test: codec_test {

    compatible = "linux,snd-soc-dummy";
    #sound-dai-cells = <0>;
    status="okay";

};

sound0: sound@0 {

    compatible = "simple-audio-card";
    simple-audio-card,name = "TEST-EVM";
    simple-audio-card,format = "i2s";
    simple-audio-card,bitclock-master = <&sound_master>;
    simple-audio-card,frame-master = <&sound_master>;

    status="okay";
                       
    sound_master: simple-audio-card,cpu {
        sound-dai = <&mcasp10>;
        system-clock-frequency = <24576000>;
    };
    simple-audio-card,codec {
        sound-dai = <&codec_test>;     
    };

};

mcasp10_pins_default: mcasp10-pins-default {
    pinctrl-single,pins = <
        J721E_IOPAD(0x158, PIN_OUTPUT_PULLDOWN, 12) /* (U23) RGMII5_TX_CTL.MCASP10_ACLKX */
        J721E_IOPAD(0x15c, PIN_OUTPUT_PULLDOWN, 12) /* (U26) RGMII5_RX_CTL.MCASP10_AFSX */
        J721E_IOPAD(0x160, PIN_OUTPUT_PULLDOWN, 12) /* (V28) RGMII5_TD3.MCASP10_AXR0 */
        J721E_IOPAD(0x164, PIN_OUTPUT_PULLDOWN, 12) /* (V29) RGMII5_TD2.MCASP10_AXR1 */
    >;
};

&mcasp10 {

    #sound-dai-cells = <0>;
    
    pinctrl-names = "default";
    pinctrl-0 = <&mcasp10_pins_default>;
    
    op-mode = <0>; // MCASP_IIS_MODE
    tdm-slots = <2>;
    auxclk-fs-ratio = <256>;

    serial-dir = < // 0: INACTIVE, 1: TX, 2: RX
        1 2 0 0
    >;
    tx-num-evt = <32>;
    rx-num-evt = <32>;
};

U-boot 引脚定义"board-support/u-boot-2021.01+gitAUTOINC+44a87e3ab8-g44a87e3ab8/arch/arm/dts/ k3-j721e-common-proc-board.dts "、  

MCASP 10引脚的定义与内核的 DTS

mcasp10_pins_default: mcasp10-pins-default {
    pinctrl-single,pins = <
        J721E_IOPAD(0x158, PIN_OUTPUT_PULLDOWN, 12) /* (U23) RGMII5_TX_CTL.MCASP10_ACLKX */
        J721E_IOPAD(0x15c, PIN_OUTPUT_PULLDOWN, 12) /* (U26) RGMII5_RX_CTL.MCASP10_AFSX */
        J721E_IOPAD(0x160, PIN_OUTPUT_PULLDOWN, 12) /* (V28) RGMII5_TD3.MCASP10_AXR0 */
        J721E_IOPAD(0x164, PIN_OUTPUT_PULLDOWN, 12) /* (V29) RGMII5_TD2.MCASP10_AXR1 */
    >;
};

 

我将一些调试消息添加到" 达芬奇- McASP.c "检查 McASP 驱动程序是否正在运行。

在系统启动时,我发现功能" McASP_reparent_fck ()" 返回"0"、因为它无法获取"fck_parent"

parent_name = of_get_property(node, "fck_parent", NULL);
if (!parent_name)
    return 0;

您是否对系统有任何建议、但未获得属性 parent_name?

它是否会导致 MCASP ACLKX/AXR 无信号输出?

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

    尊敬的专家:

    Shawn 是我的客户。

    我们检查了一些东西、

    1. Pinmux 正确。

    模式12 "C"是 McASP 10

    我想虚拟代码应该在软件中工作、但没有真正的硬件信号输出。

    它应该是器件树设置问题、因此我们需要相关的示例

    可以帮帮我们吗?

    非常感谢

    吉布斯

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

    您好、尊敬的 TI 专家:

    检查了几天之后、我觉得问题应该很清楚。

    我认为客户面临设备树设置问题,因为驱动程序探针工作,但获得 属性失败。

    引脚多路复用设置应该没问题。

    对于 J7器件树中的 McASP 虚拟模式、我们需要一些建议(或正确的器件树设置)。

    Shawn、您是否还可以为我们上传原始的引导日志和设计树文件?

    非常感谢

    吉布斯