您好、专家!
我需要使用 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
我尝试使用"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 无信号输出?

