使用ti-processor-sdk-linux-am335x-evm-04.00.00.04 ,音频芯片使用tlv320aic3101
设备树文件在附件,进入系统后使用
root@am335x-evm:~/audio_test# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AM335xEVM [AM335x-EVM], device 0: davinci-mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
root@am335x-evm:~/audio_test#
播放一段40M的音频,没有输出,几秒后报错退出
root@am335x-evm:~/audio_test# aplay city_back.wavPlaying WAVE 'city_back.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: pcm_write:2004: write error: Input/output error
root@am335x-evm:~/audio_test#
边采边播,也是没有声音,几秒后报错退出
root@am335x-evm:~/audio_test# arecord -Dhw:0,0 -r48000 -f dat | aplay -Dhw:0,0 -r48000 -f dat
Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
arecord: pcm_read:2096: read error: Input/output error
root@am335x-evm:~/audio_test#
这两个错误有人遇到过吗,是怎么解决的呢
arecord: pcm_read:2096: read error: Input/output error
aplay: pcm_write:2004: write error: Input/output error
已经用其他版本内核确认,硬件没有问题,猜测是设备树配置出错,但不知道出在什么地方
Jian Zhou:
有没有可能是I2C配置音频芯片出的问题。
hongbin li1:
回复 Jian Zhou:
断电重启时,uboot下i2c0每次都会timeout,再按次复位就能正常启动,也怀疑是i2C有问题,但是这个I2C上还带着一个触摸屏,每次按复位重启,触摸屏都能正常工作,但是 音频就工作不正常,音频芯片初始化后打印寄存器,也能正常读写。后来量了下时钟,发现外部提供的MCLK在靠近音频那一端从27M到50M跳变,MCLK对于音频不应该是输入吗?,外部时钟27M输出是没有问题的,录音和放音时BCLK、WCLK都不正常,数据输入输出线上也没有数据,难道是音频芯片工作在主模式了?
user5161852:
回复 hongbin li1:
我也遇到类似问题,我这边的现象:音频Codec BCLK、WCLK配置为主模式,播放wav音频文件的时候BCLK与WCLK正常,但数据线上没有信号,打印root@am335x-adv:~# aplay /unit_tests/Advantech.wav Playing WAVE '/unit_tests/Advantech.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereoaplay: pcm_write:1710: write error: Input/output error
请问你这个问题解决了吗?