大家好!
am335x 用的是3104的芯片,i2c,i2s,都配置好了,但是不能播放,下面是启动信息。(音频板块人太少,所以就发在这个板块了,请谅解!)
ALSA: Restoring mixer settings…
No state is present for card EVM 请问这个是啥问题, Found hardware: "AM335X_EVM" "" "" "" ""
Hardware is initialized using a generic method
No state is present for card EVM
Configuring network interfaces… [ 10.216857] net eth0: CPSW phy found : id 1
udhcpc (v1.20.2) started
Jian Zhou:
我们的demo板上是TLV320AIC3106,应该和3104类似,Linux上有完整的驱动,不知道您有没有参考过
kun huang2:
回复 Jian Zhou:
你好!
参考过了,都配置好了但播放音乐出错
那个播放音乐崩溃的问题已经解决了,现在又遇到了新的问题,log在下面,请大家帮帮忙,看看额,新人一枚。 root@am335x-evm:/test# aplay -v 123.wav Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, StereoPlug PCM: Hardware PCM card 0 'AM335X EVM' device 0 subdevice 0Its 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[ 2454.069274] playback write error (DMA or IRQ trouble?)aplay: pcm_write:1710: write error: Input/output errorroot@am335x-evm:/test#
Jian Zhou:
回复 kun huang2:
请问你有修改过底层驱动么?感觉MCASP的驱动有问题啊
kun huang2:
回复 Jian Zhou:
你好!
就是这个的问题,数据传输不行,不知道那有问题。
qun zhou:
回复 Jian Zhou:
您好:我也遇到了一个问题,可是音频那边都没有人解答,log如下,请帮我看下阿
root@am335x-evm:/test# aplay 123.wav Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo[ 79.918731] playback write error (DMA or IRQ trouble?)aplay: pcm_write:1710: write error: Input/output error
qun zhou:
回复 Jian Zhou:
您好:
我感觉MCASP这边的驱动应该没有问题,我们现在芯片晶振不起振,会是这个原因造成的吗?
[ 1.628143] +++++++++++++++zhouqun aic3x_i2c_probe[ 1.633270] control_type = SND_SOC_I2C[ 1.637329] ++++++snd_soc_register_codec:0[ 1.641754] +++++++++++++++zhouqun aic3x_i2c_probe[ 1.646820] control_type = SND_SOC_I2C[ 1.650848] ++++++snd_soc_register_codec:0[ 1.656677] ++++zhouqun am335x_evm?[ 1.661071] ++++++++++soc_bind_dai_link[ 1.665130] ++++++++zhouqun:binding TLV320AIC3X at idx 0[ 1.671020] +++++++++++++++ aic3x_probe[ 1.676788] ++++++++++++++aic3x_probe FINISHED[ 1.684295] +++++zhouqun:evm_aic3x_init[ 1.689910] asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok[ 1.702545] ALSA device list:[ 1.705718] #0: AM335X EVM
AmonWu:
回复 Jian Zhou:
目前我们 复用为mcasp0_ahclkx ,不过我们实际测试 并没有 发现输出时钟。请问是不是还需要设置别的关键寄存器么?
NA
A14
MCASP0_AHCLKX
mcasp0_ahclkx
0
I/O
eQEP0_strobe
1
I/O
mcasp0_axr3
2
I/O
mcasp1_axr1
3
I/O
EMU4
4
I/O
pr1_pru0_pru_r30_7
5
O
pr1_pru0_pru_r31_7
6
I
gpio3_21
7
I/O
附件是我们目前的原理图。
Yaoming Qin:
回复 kun huang2:
请问您硬件部分是怎么设计的,也就是AM335x是怎么链接3104的,哪个做主,哪个做从。
qun zhou:
回复 Yaoming Qin:
您好:
硬件设计见附件,TLV3104做从设备,AM3358做主设备,这里哦们硬件设计的添加了一个M7037芯片,起echo cancellation作用,但是目前这片没有贴上去,不知道有没有影响。谢谢额。困扰我很久了。
qun zhou:
回复 Yaoming Qin:
您好:
我在调试3104的时候,dmesg的时候出现了好多终端是怎么回事,3104这里用的I2C2。log如下:帮忙看下阿,谢谢阿
root@am335x-evm:/test# dmesgdr: 0x0024, len: 1, flags: 0x1, stop: 1[ 86.080474] omap_i2c omap_i2c.1: IRQ (ISR = 0x3000)[ 86.080505] omap_i2c omap_i2c.1: IRQ (ISR = 0x0004)[ 86.080566] SR 1: curr=925000, delta_v=-19540, calc=905460, act=925000, gain=14[ 87.329101] i2c i2c-1: master_xfer[0] W, addr=0x24, len=1[ 87.329132] i2c i2c-1: master_xfer[1] R, addr=0x24, len=1[ 87.329223] omap_i2c omap_i2c.1: addr: 0x0024, len: 1, flags: 0x0, stop: 0[ 87.329284] omap_i2c omap_i2c.1: IRQ (ISR = 0x4000)[ 87.329467] omap_i2c omap_i2c.1: IRQ (ISR = 0x1004)[ 87.329528] omap_i2c omap_i2c.1: addr: 0x0024, len: 1, flags: 0x1, stop: 1[ 87.329742] omap_i2c omap_i2c.1: IRQ (ISR = 0x3000)[ 87.329772] omap_i2c omap_i2c.1: IRQ (ISR = 0x0004)[ 87.329833] i2c i2c-1: master_xfer[0] W, addr=0x24, len=1[ 87.329864] i2c i2c-1: master_xfer[1] R, addr=0x24, len=1[ 87.329895] omap_i2c omap_i2c.1: addr: 0x0024, len: 1, flags: 0x0, stop: 0[ 87.329956] omap_i2c omap_i2c.1: IRQ (ISR = 0x4000)[ 87.330139] omap_i2c omap_i2c.1: IRQ (ISR = 0x1004)[ 87.330169] omap_i2c omap_i2c.1: addr: 0x0024, len: 1, flags: 0x1, stop: 1[ 87.330413] omap_i2c omap_i2c.1: IRQ (ISR = 0x3000)[ 87.330444] omap_i2c omap_i2c.1: IRQ (ISR = 0x0004)