系统组成:
AM4379 <–> McAsp1 <–> IIS <–>Tas2552
AM4379 <–> i2c0 <–> Tas2552
Tas2552后端接一个喇叭
当前情况:
1、 驱动源码来自TI官网,源码链接:http://www.ti.com/tool/tas2552sw-linux
2、 操作系统为linux-3.12.10-ti2013.12.01
3、 TI的驱动应该是在比较高版本的linux系统上开发的,直接编译会不成功,将相关的接口修改移植到3.12.10版本上后,编译OK,运行正常。
4、 目前在调试声卡情况如下:
A、 I2C控制正常,读,写寄存口信息正确;
B、 GPIO使能管脚正确;
C、 向linux系统注册声卡成功,能看到声卡设备文件;
D、 通过aplay或者mplayer可以播放音乐,但外接的嗽叭没有声音。
问题现象描述如下:
1、 播放音频文件(mp3,wav)时,喇叭无声音。
2、 播放声音时,在喇叭连线上能看到779KHz的波型,高电平大致为:70ns,低电平:580ns,高电平幅值:5.6v。
3、 频率:FCLK:40.08KHz,MClk:11.9MHz,BClk:使用aplay时:48KHz,mplayer时2.8MHz。
4、 Tas2552芯片上各个管脚电平正常。
5、 音频文件播放结束后,嗽叭上的波型以及各个时钟均结束,不再有波型输出。
目前已经反复排查了codec,mcasp相关的驱动,以及向系统注册声卡的代码,均没有发现问题,麻烦各个专家帮忙看看,什么原因导致无法播放声音。能否提供一个支持linux-3.12的驱动版本?
附:tas2552寄存器信息如下:
驱动加载OK,初始probe结束时的寄存器信息:
===============Func:tas2552_codec_probe===========
All the register of tas2552:
Addr:0x00, –> 0xff
Addr:0x01, –> 0x26
Addr:0x02, –> 0x64
Addr:0x03, –> 0x58
Addr:0x04, –> 0x00
Addr:0x05, –> 0x00
Addr:0x06, –> 0x00
Addr:0x07, –> 0xc8
Addr:0x08, –> 0x10
Addr:0x09, –> 0x00
Addr:0x0a, –> 0x00
Addr:0x0b, –> 0x8f
Addr:0x0c, –> 0x80
Addr:0x0d, –> 0xbe
Addr:0x0e, –> 0x08
Addr:0x0f, –> 0x04
Addr:0x10, –> 0x00
Addr:0x11, –> 0x01
Addr:0x12, –> 0x00
Addr:0x13, –> 0x40
Addr:0x14, –> 0x0f
Addr:0x15, –> 0xff
Addr:0x16, –> 0xff
Addr:0x17, –> 0xff
Addr:0x18, –> 0xff
Addr:0x19, –> 0x00
播放音乐时的寄存器配置信息:
===============Func:tas2552_mute===========
All the register of tas2552:
Addr:0x00, –> 0x20
Addr:0x01, –> 0x10
Addr:0x02, –> 0xec
Addr:0x03, –> 0x58
Addr:0x04, –> 0x00
Addr:0x05, –> 0xc4
Addr:0x06, –> 0x00
Addr:0x07, –> 0xc8
Addr:0x08, –> 0x20
Addr:0x09, –> 0x00
Addr:0x0a, –> 0x00
Addr:0x0b, –> 0x8f
Addr:0x0c, –> 0x80
Addr:0x0d, –> 0xc0
Addr:0x0e, –> 0x28
Addr:0x0f, –> 0x04
Addr:0x10, –> 0x00
Addr:0x11, –> 0x01
Addr:0x12, –> 0x00
Addr:0x13, –> 0x40
Addr:0x14, –> 0x0f
Addr:0x15, –> 0x00
Addr:0x16, –> 0x08
Addr:0x17, –> 0x00
Addr:0x18, –> 0x00
Addr:0x19, –> 0xe6
音乐结束时的寄存器信息:
===============Func:tas2552_mute===========
All the register of tas2552:
Addr:0x00, –> 0x20
Addr:0x01, –> 0x14
Addr:0x02, –> 0xec
Addr:0x03, –> 0x58
Addr:0x04, –> 0x00
Addr:0x05, –> 0xc4
Addr:0x06, –> 0x00
Addr:0x07, –> 0xc8
Addr:0x08, –> 0x20
Addr:0x09, –> 0x00
Addr:0x0a, –> 0x00
Addr:0x0b, –> 0x8f
Addr:0x0c, –> 0x80
Addr:0x0d, –> 0xc0
Addr:0x0e, –> 0x28
Addr:0x0f, –> 0x04
Addr:0x10, –> 0x00
Addr:0x11, –> 0x01
Addr:0x12, –> 0x00
Addr:0x13, –> 0x40
Addr:0x14, –> 0x0f
Addr:0x15, –> 0x00
Addr:0x16, –> 0x08
Addr:0x17, –> 0x00
Addr:0x18, –> 0x00
Addr:0x19, –> 0xe6
Jian Zhou:
以前你的板子连接扬声器可以正常播放声音么?
sky lei:
回复 Jian Zhou:
原有的开发板上,能正常播放声音。
产品上的单板设计,是按开发板上一样的设计,连线参考原来的开发板。
目前正在调试阶段还没有放出声音,需要帮助就是为什么放不出声音。
Jian Zhou:
回复 sky lei:
如果ALSA层没有做任何改动,只是把扬声器换成功放,那么可能还是功放这颗芯片有些地方没有调试好,你再检查下功放的软硬件配置。
sky lei:
回复 Jian Zhou:
硬件已经反馈排查过,软件使用的寄存器配置及驱动代码是TI官网上的驱动,由于操作系统版本不一样导致的接口变化,也做了相应的处理。
sky lei:
回复 sky lei:
从打印出来的寄存器信息来看,也没有发现错误
Jian Zhou:
回复 sky lei:
操作系统变化?以前的能正常工作的板子和现在的板子用的操作系统不一样么?
sky lei:
回复 Jian Zhou:
开发板的操作系统与目前使用的操作系统是一样的。
我说的操作系统变化是指TI的官方驱动运行的操作系统版本,与我用的操作系统版本不一样。在问题反馈里面有这方面的描述。
sky lei:
回复 Jian Zhou:
下面这两条是在问题反馈里面提到的
2、 操作系统为linux-3.12.10-ti2013.12.01
3、 TI的驱动应该是在比较高版本的linux系统上开发的,直接编译会不成功,将相关的接口修改移植到3.12.10版本上后,编译OK,运行正常。
Jian Zhou:
回复 sky lei:
首先在TI的AM4379开发板上运行linux-3.12.10-ti2013.12.01,声音播放都是正常的,那么原有的开发板是哪一款开发板呢?
TAS2552这部分的调试可能还是要联合audio的FAE一起看一下。