打印Log如下:
root@am335x-adv:~# aplay -N /unit_tests/Advantech.wav
Playing WAVE '/unit_tests/Advantech.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
^CAborted by signal Interrupt...
root@am335x-adv:~# aplay -v /unit_tests/Advantech.wav
Playing WAVE '/unit_tests/Advantech.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Plug PCM: Hardware PCM card 0 'AM335X EVM' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 32768
period_size : 2048
period_time : 46439
tstamp_mode : NONE
period_step : 1
avail_min : 2048
period_event : 0
start_threshold : 32768
stop_threshold : 32768
silence_threshold: 0
silence_size : 0
boundary : 1073741824
appl_ptr : 0
hw_ptr : 0
aplay: pcm_write:1710: write error: Input/output error
出现这个错误可能的原因是哪些?硬件问题?
TLV320AIC3101部分原理图如下,R247是断开的。
补充一下:AM3352与TLV320AIC3101 I2S接口:
配置:
16个串行器:AXR0为发送模式,对应I2S_DOUT;AXR1:禁止、AXR2:禁止;AXR3:接收模式,对应I2S_DIN;其余:禁止。
static u8 am335x_iis_serializer_direction0[] = {
TX_MODE, INACTIVE_MODE, INACTIVE_MODE, RX_MODE,
INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
};
这两天把 MCASP接口看了一下,寄存器查询结果:
[ 20.670737] mcasp_get_reg addr=fa0380bc val=0 (XINCTRL=0x00)
[ 20.670744] mcasp_get_reg addr=fa038044 val=1f00 (GBLCTL= 0x1f00)
[ 20.670750] mcasp_get_reg addr=fa0380c0 val=104 (XSTAT=0x104)
[ 20.670757] mcasp_get_reg addr=fa0380cc val=0 ( XEVTCTL=0x00)
[ 20.670764] mcasp_get_reg addr=fa0380b0 val=0 (ACLKXCTL=0x00)
XINCTRL=0x00,中断未使能,中断信号的产生是 XRBUF与XRSR之间有数据传输时才会产生,现在没有中断说明,XRBUF与XRSR之间无数据传输。
GBLCTL = 0x1f00,说明跟发送相关的串行器 复位已经释放、时钟也在运行。
复位与时钟都正常,还会有什么因素造成XRBUF与XRSR之间无数据传输?
有没有大佬帮忙再看下,卡了好久了,在线等。。。。。








