你好我现在调试am6234 的音频功能,板子上使用的音频芯片是es8388 ,连接在am6234的main_i2c2上,音频接口连接的是am6234的mcasp0,硬件上外接了一个11.2896MHZ的晶振连接到es8388的MCLK和am6234的
AUDIO_EXT_REFCLK1上,原理图如下所示:
设备树配置如下所示:

设备树配置如下所示:
/{
sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,name = "AM62x-SKEVM";
simple-audio-card,widgets =
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"Headphone Jack", "LOUT1",
"Headphone Jack", "ROUT1";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sound_master>;
simple-audio-card,frame-master = <&sound_master>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
system-clock-frequency = <11289600>;
sound-dai = <&mcasp0>;
};
sound_master:simple-audio-card,codec {
sound-dai = <&es8388>;
};
};
clk_es8388_fixed: clk_es8388_fixed {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <11289600>;
};
};
&main_pmx0 {
main_mcasp0_pins_default: main-mcasp0-pins-default {
pinctrl-single,pins = <
// AM62X_IOPAD(0x01d4, PIN_INPUT, 5) /* (B15) UART0_RTSn.AUDIO_EXT_REFCLK1 */
AM62X_IOPAD(0x01a4, PIN_OUTPUT, 0) /* (B20) MCASP0_ACLKX */
AM62X_IOPAD(0x01a8, PIN_OUTPUT, 0) /* (D20) MCASP0_AFSX */
AM62X_IOPAD(0x0198, PIN_OUTPUT, 0) /* (A19) MCASP0_AXR2 */
AM62X_IOPAD(0x0194, PIN_INPUT, 0) /* (B19) MCASP0_AXR3 */
>;
};
audio_ext_refclk1_pins_default: audio-ext-refclk1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01d4, PIN_INPUT, 5) /* (B15) UART0_RTSn.AUDIO_EXT_REFCLK1 */
>;
};
};
&main_i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c2_pins_default>;
clock-frequency = <400000>;
es8388: es8388@10 {
pinctrl-names = "default";
pinctrl-0 = <&audio_ext_refclk1_pins_default>;
compatible = "everest,es8388";
reg = <0x10>;
#sound-dai-cells = <0>;
clocks = <&clk_es8388_fixed>;
};
};
&mcasp0 {
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp0_pins_default>;
status = "okay";
#sound-dai-cells = <0>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
clocks = <&k3_clks 190 9>;
clock-names = "fck";
assigned-clocks = <&k3_clks 190 9>;
assigned-clock-parents = <&k3_clks 190 13>;
assigned-clock-rates = <11289600>;
/* 16 serializers */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
0 0 1 2
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};
sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,name = "AM62x-SKEVM";
simple-audio-card,widgets =
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"Headphone Jack", "LOUT1",
"Headphone Jack", "ROUT1";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&sound_master>;
simple-audio-card,frame-master = <&sound_master>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,cpu {
system-clock-frequency = <11289600>;
sound-dai = <&mcasp0>;
};
sound_master:simple-audio-card,codec {
sound-dai = <&es8388>;
};
};
clk_es8388_fixed: clk_es8388_fixed {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <11289600>;
};
};
&main_pmx0 {
main_mcasp0_pins_default: main-mcasp0-pins-default {
pinctrl-single,pins = <
// AM62X_IOPAD(0x01d4, PIN_INPUT, 5) /* (B15) UART0_RTSn.AUDIO_EXT_REFCLK1 */
AM62X_IOPAD(0x01a4, PIN_OUTPUT, 0) /* (B20) MCASP0_ACLKX */
AM62X_IOPAD(0x01a8, PIN_OUTPUT, 0) /* (D20) MCASP0_AFSX */
AM62X_IOPAD(0x0198, PIN_OUTPUT, 0) /* (A19) MCASP0_AXR2 */
AM62X_IOPAD(0x0194, PIN_INPUT, 0) /* (B19) MCASP0_AXR3 */
>;
};
audio_ext_refclk1_pins_default: audio-ext-refclk1-pins-default {
pinctrl-single,pins = <
AM62X_IOPAD(0x01d4, PIN_INPUT, 5) /* (B15) UART0_RTSn.AUDIO_EXT_REFCLK1 */
>;
};
};
&main_i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&main_i2c2_pins_default>;
clock-frequency = <400000>;
es8388: es8388@10 {
pinctrl-names = "default";
pinctrl-0 = <&audio_ext_refclk1_pins_default>;
compatible = "everest,es8388";
reg = <0x10>;
#sound-dai-cells = <0>;
clocks = <&clk_es8388_fixed>;
};
};
&mcasp0 {
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp0_pins_default>;
status = "okay";
#sound-dai-cells = <0>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
clocks = <&k3_clks 190 9>;
clock-names = "fck";
assigned-clocks = <&k3_clks 190 9>;
assigned-clock-parents = <&k3_clks 190 13>;
assigned-clock-rates = <11289600>;
/* 16 serializers */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
0 0 1 2
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};
现在系统启动后无法进行录音和播放音频,使用arecord 录音时报如下错误:

使用aplay 播放音频时没有声音,而且程序会一直卡住,只能ctrl+c结束程序:

帮忙看下设备树那块配置有问题,现在使用的是11.00.09.04版本的Linux SDK。