主题中讨论的其他器件: TPS63031
工具/软件:Linux
您好!
我们有基于 AM437x 的定制板、我们使用音频编解码器 tlv320aic3101通过 i2c1与 McASP0搭配使用。 我们无法播放 wav 文件并收到错误"aplay:PCM_write:2011:write error:input/output error"。
1)声音节点 2) i2c1节点 3) McASP0节点的 DTS 配置 如下:
声音0:声音@0{
兼容="简单音频卡";
simple-audio-card、name ="AM437x-GP-EVM";
simple-audio-card、小工具=
"耳机"、"耳机插孔"、
"线路"、"线路输入";
简单音频卡,路由=
"耳机插孔"、 "HPL"、
"耳机插孔"、 "HPR"、
"LINE1L"、 "线路输入"、
"LINE1R"、 "线路输入";
simple-audio-card、format ="DSP_b";
simple-audio-card、bitclock-master =<&sound0_master>;
simple-audio-card、frame-master =<&sound0_master>;
简单音频卡、位时钟反转;
简单音频卡、CPU{
Sound-Dai =<&McASP0>;
系统时钟频率=<24000000>;
};
sound0_master:simple-audio-card、codec{
sound-dai =<&tlv320aic3101>;
系统时钟频率=<24000000>;
};
};
audio_mstrclk:MCLK_osc{
兼容="固定时钟";
#clock-cells =<0>;
时钟频率=<24000000>;
};
i2c1{(&I)
状态="正常";
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&i2c1_PINS_DEFAULT>;
pinctrl-1 =<&i2c1_PINS_SLEEP>;
时钟频率=<100000 >;
/* I2C1上的音频编解码器*/
tlv320aic3101:tlv320aic3101@18{
#sound-di-cells =<0>;
兼容="ti、tlv320aic310x";
reg =<0x18>;
状态="正常";
/*稳压器*/
IOVdd-supply =<&EVM_v3_3D>;/* V3_3D -> EN:V1_8D -> VBAT */
AVDD-SUPPLY =<&EVM_v3_3D>;/* v3_3AUD -> V3_3D ->... *
DRVDD-SUPPLY =<&EVM_v3_3D>;/* v3_3AUD -> V3_3D ->... *
DVDD 电源=<&EVM_v1_8d>;/* V1_8D -> LDO1 *
};
};
&McASP0{
#sound-di-cells =<0>;
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&McASP0_PINs>;
pinctrl-1 =<&McASP0_SLEEP_PINs>;
状态="正常";
OP-MODE =<0>;/* MCASP_IIS_MODE */
TDM-SLOTS =<2>;
/* 4个串行器*/
serial-dir =< /* 0:非活动、1:TX、2:Rx *
1 2 0 0
>;
tx-num-evt =<32>;
Rx-num-evt =<32>;
};
引导时,我将获得以下日志:
[1.809972] ASOC-simple card sound@0:tlv320aic31xx-hifi <->48038000.McASP 映射正常
[1.818076] ASOC-simple-card sound@0:ASOC:找不到 HPLOUT 的源小工具
[1.825275] ASOC-simple-card sound@0:ASOC:无法添加路由 HPLOUT -> Direct ->耳机插孔
[1.834342] ASOC-simple-card sound@0:ASOC:找不到 HPROUT 的源小工具
[1.841572(2004) ASOC-simple-card sound@0:ASOC:无法添加路由 HPROUT -> Direct ->耳机插孔
[1.850613] ASOC-simple-card sound@0:ASOC:找不到用于 LINE1L 的接收器小工具
[ 1.857641] ASOC-simple-card sound@0:ASOC:无法在-> Direct -> LINE1L 中添加路线行
[1.866049] ASOC-simple-card sound@0:ASOC:找不到适用于 LINE1R 的接收器小工具
[1.873079] ASOC-simple-card sound@0:ASOC:Failed to add route Line in -> Direct -> LINE1R
[1.886691] mmc2:排队未知 CIS tuple 0x91 (3字节)
[1.892894] mmc2:地址0001处的新高速 SDIO 卡
[1.901025] 未找到使用虚拟稳压器的背光电源
[1.908654] hctosys:无法打开 RTC 设备(rtc0)
[1.987185] ALSA 器件列表:
[1.990191] #0:AM437X-GP-EVM
ALSA:正在恢复混频器设置...
卡 AM437xGPEVM 不存在任何状态
已找到硬件:"AM437X-GP-EVM"""""""
使用通用方法初始化硬件
卡 AM437xGPEVM 不存在任何状态
使用 aplay 命令启动后,我已成功获取编解码器芯片:
根部@边架:~# aplay -l
****播放硬件设备列表****
卡0:AM437xGPEVM [AM437x-GP-EVM]、器件0:Davinci-McASP/0-tlv320aic31xx-hifi tlv320aic31xx-hife-0 []
子设备:1/1
子设备#0:子设备#0
但是当我使用 aplay 播放音频时:
root@edge-shelf:~# aplay Casio-CZ-5000-Human-Voice-C4.wav
播放波'Casio-CZ-5000-Human - Voice-C4.wav':有符号16位小端序,速率44100Hz,立体声
aplay:PCM_WRITE:2011:写入错误:输入/输出错误。
有人能不能在这方面帮助我、我的配置出了什么问题。 我从以下网站获得了一些帮助: https://e2e.ti.com/support/arm/sitara_arm/f/791/p/435079/1650921
谢谢、
Chintan