硬件连接:
Codec管脚 | CPU管脚
————————————— —————————————
MCLK | CPLD提供12MHz
DACLRC | MCASP0_FSX
BCLK | MCASP0_ACLKX
DIN | MCASP0_AXR0
DOUT | MCASP0_AXR1
AM335X_I2C0_SCL | I2C0_SCL
AM335X_I2C0_SDA | I2C0_SDA
——————————————————————————–
音频芯片:wm8731,目前音频芯片挂机成功,打印如下:
probe wm8731 dai link 0 late 1
probe wm8731 dai link 0 late 2
asoc: wm8731-hifi <-> davinci-mcasp.0 mapping ok
ALSA device list:
#0: wm8731
但是WM8731没有声音,通过示波器查看,MCLK有12M时钟,Bclk有1.33Mhz ,数据脚DOUT也有输出,但是MCASP0_FSX波形不对,它发送的是同步信号,不是时钟信号,如果把MCASP0_FSX设置成时钟信号,AFSX: McASP transmit frame sync or left/right clock (LRCLK).PDF上提示这个脚可以设置LRCLK,但不知道如何设置,没看到相关的寄存器。
yongqing wang:
audio可以参考一下这个:processors.wiki.ti.com/…/AM335x_Audio_Driver's_Guide
jin xin:
回复 yongqing wang:
这个文章我看过了,配置也是一样,不然不会挂接成功,I2C和wm8731通信没问题,可以读出所有的寄存器,就是FSX管脚输出不是我想要的,我要输出时钟,不是同步信号。
Shine:
回复 jin xin:
AFSX: McASP transmit frame sync or left/right clock (LRCLK)这里的LRCLK不是指bit clock, 是指I2S数据的左右声道word select,请看下面的网站说明。
Word clock line
Officially "word select (WS)".[1] Typically called "left-right clock (LRCLK)".[2]
0 = Left channel, 1 = Right channel[1]
Frame Sync (FS)[3]en.wikipedia.org/…/I²S
jin xin:
回复 Shine:
谢谢你的回复,今天又搞了一天,之前用三星S3C2416+WM8731调通过,正常工作中。现在选用AM3352就没有声音了,今天查了一下代码有部分错误已经修改了,但是还是没有声音,MCLK,BCLK,FSX,DOUT都有波形,但是还是没有声音,不知道哪里会影响。硬件排查过了,因为我们是模块化,WM8731模块查到之前的三星的板子有声音。
jin xin:
回复 jin xin:
还有就是我看到有些文章说MCLK和Bclk有一定的关系。
目前我的mclk是通过CPLD产生的12MH时钟,BCLK是AM3352产生的1.33Mhz,播放的音频文件:22050,16bit
还有就是fsx输出高低电平有没有要求,换句话说是不是一定要求先放右声道然后左声道。谢谢