TI论坛
直播中

杨帆

7年用户 1409经验值
私信 关注
[问答]

TLVaic3104设备接的是I2C2,播放音乐的时候出现错误是怎么回事?


  • 就是我们的3104设备接的是I2C2,MACASP0这部分的代码已经修改完了,也能识别sound list设备了,现在播放音乐的时候出现错误,请帮忙看下额。
    启动log:+++++++++++++++zhouqun aic3x_i2c_probe
    [    1.800872] control_type = SND_SOC_I2C
    [    1.804962] ++++++snd_soc_register_codec:0
    [    1.809356] +++++++++++++++zhouqun aic3x_i2c_probe
    [    1.814483] control_type = SND_SOC_I2C
    [    1.818511] ++++++snd_soc_register_codec:0
    [    1.823242] ++++++++zhouqun:snd_davinci_pcm_init
    [    1.828308] +++++++zhouqun:davinci_soc_platform_probe
    [    1.834075] ++++++++++++++++zhouqun:davinci_mcasp_init
    [    1.834106]  ++++++++++++++==zhouqun : davinci_mcasp_probe
    [    1.846038] +++++++zhouqun :evm_init
    [    1.849884] ++++zhouqun am335x_evm?
    [    1.855346] ++++++++++soc_bind_dai_link
    [    1.859436] ++++++++zhouqun:binding TLV320AIC3X at idx 0
    [    1.865325] +++++++++++++++ aic3x_probe
    [    1.869445] ++++++++++++zhouqun <-aic3x_init
    [    1.874023] +++++++zhouqun:aic3x_init
    [    1.877929] +++++zhouqun:AIC3X_ASD_INTF_CTRLA (before)= 0
    [    1.883666] +++++zhouqun:AIC3X_ASD_INTF_CTRLA (after) = 10
    [    1.889495] +++++zhouqun:AIC3X_ASD_INTF_CTRLB (before) = 0
    [    1.895355] +++++zhouqun:AIC3X_ASD_INTF_CTRLB (after) = 20
    [    1.901184] +++++++zhouqun :LDAC_VOL = af
    [    1.905456] +++++++zhouqun:RDAC_VOL = af
    [    1.909667] ++++++++++++zhouqun aic3x_init->
    [    1.915863] ++++++++++++++aic3x_probe FINISHED
    [    1.925476] +++++zhouqun:evm_aic3x_init
    [    1.930114] ++++++++++zhouqun :davinci_pcm_new
    [    1.934906] ++++++++zhouqun:davinci_pcm_preallocate_dma_buffer
    [    1.941589] ++++++++zhouqun:davinci_pcm_preallocate_dma_buffer
    [    1.948272] asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok
    [    1.957702] ALSA device list:
    [    1.960876]   #0: AM335X EVM
    播放音乐的错误log:
    root@am335x-evm:/test# aplay 123.wav
    [   34.629730] +++++++++zhouqun:davinci_mcasp_startup
    [   34.635009] ++++++++zhouqun:davinci_pcm_open
    [   34.639556] +++++++zhouqun:allocate_sram
    [   34.643768] ++++++++zhouqun:davinci_pcm_dma_request
    Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100[   34.672454] ++++++++zhouqun :davinci_mcasp_set_dai_fmt
    Hz, Stereo
    [   34.678131] +++++++=zhouqun:daifmt :1000d++++++++++davinci_mcasp_hw_params
    [   34.687744] ++++++++++++zhouqun :davinci_hw_common_param
    [   34.693450] ++++++++zhouqun :davinci_hw_param
    [   34.698059] +++++zhouqun :davinci_config_channel_size
    [   34.703460] +++++++zhouqun:davinci_pcm_hw_params
    [   34.753753] +++++++++zhouqun:davinci_pcm_prepare
    [   34.758728] ++++++zhouqun:davinci_pcm_enqueue_dma
    [   34.763854] ++++++zhouqun:davinci_pcm_enqueue_dma
    [   34.769897] +++++++++zhouqun:aic3x_set_power
    [   34.810546] +++++++zhouqun:davinci_pcm_trigger
    [   34.815307] +++++++++zhouqun:pcm_cmd = 1
    [   34.819488] ++++++++++++zhouqun:davinci_mcasp_trigger
    [   34.824829] +++++++++zhouqun:mcasp_cmd = 1
    [   34.829193] +++++++++zhouuqn :davinci_mcasp_start
    [   34.834167] ++++++++++zhouqun:mcasp_start_tx
    [   34.838684] ++++++++zhouqun:mcasp_set_ctl_reg
    [   34.843322] +++++++++zhouqun:(mcasp_get_reg(regs) & val
    [   34.848846] ++++++++zhouqun:mcasp_set_ctl_reg
    [   34.853485] +++++++++zhouqun:(mcasp_get_reg(regs) & val
    [   34.859008] ++++++++zhouqun:mcasp_set_ctl_reg
    [   34.863616] +++++++++zhouqun:(mcasp_get_reg(regs) & val
    [   34.869171] ++++++++zhouqun:mcasp_set_ctl_reg
    [   34.873779] +++++++++zhouqun:(mcasp_get_reg(regs) & val
    [   34.879302] ++++++++zhouqun:mcasp_set_ctl_reg
    [   34.883911] +++++++++zhouqun:(mcasp_get_reg(regs) & val
    [   35.073608] +++++zhouqun:davinci_pcm_pointer
    aplay: pcm_write[   45.073883] +++++++zhouqun:davinci_pcm_trigger
    [   45.079589] +++++++++zhouqun:pcm_cmd = 0
    [   45.083740] ++++++++++++zhouqun:davinci_mcasp_trigger
    [   45.089111] +++++++++zhouqun:mcasp_cmd = 0
    [   45.093475] ++++++++++++====zhouqun :davinci_mcasp_stop
    [   45.099029] ++++++++++++zhouqun: mcasp_stop_tx
    :1710: write error: Input/output[   45.105255] +++++++zhouqun:davinci_pcm_hw_free
    error
    [   45.111419] +++++++zhouqun:davinci_pcm_hw_free
    [   45.118316] +++++++++++zhouqun:davinci_pcm_close
    root@am335x-evm:/test# [   50.125305] +++++++++zhouqun:aic3x_set_power

回帖(2)

洪茗苞

2024-10-31 10:08:19
  识别和初始化成功了, 但是可能配置和数据传输还有问题啊
举报

小小

2024-10-31 17:13:54
从您提供的启动日志来看,您的TLV320AIC3104设备已经成功识别并注册了I2C2接口。然而,在播放音乐时出现错误。为了解决这个问题,我们需要逐步排查可能的原因。以下是一些建议的步骤:

1. 检查I2C通信:
   - 确保I2C2接口的时钟和数据线连接正确。
   - 使用I2C扫描工具(如i2cdetect)检查设备地址是否正确识别。

2. 检查MACASP0配置:
   - 确保MACASP0的配置与TLV320AIC3104的硬件要求相匹配,包括时钟设置、数据格式等。
   - 检查MACASP0的中断处理代码,确保没有错误处理或丢失中断。

3. 检查音频驱动:
   - 确保您使用的音频驱动与TLV320AIC3104兼容。
   - 查看驱动代码,确保没有错误配置或遗漏的初始化步骤。

4. 检查音频播放代码:
   - 检查音频播放代码,确保数据流正确地从DAC发送到扬声器。
   - 使用调试工具(如gdb)逐步执行代码,检查是否有异常行为或错误。

5. 查看系统日志:
   - 查看dmesg日志,查找与音频播放相关的错误信息。
   - 如果有错误信息,请根据错误提示进行相应的排查和修复。

6. 测试其他音频文件:
   - 尝试播放不同的音频文件,以排除文件格式或编码问题。

通过以上步骤,您应该能够找到导致播放音乐时出现错误的原因,并进行相应的修复。如果问题仍然存在,请提供更多的错误信息和代码细节,以便进一步分析和解决问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分