S5PV210调试WM8960 总结

    转载文章 来自 http://blog.csdn.net/yimiyangguang1314/article/details/9024013

         最新由于项目需要,调试S5PV210开发板 Linux系统上面的音频功能,我们选择的音频编解码芯片是WM8960,连接到CPU的IIS接口,调试过程中遇到了一系列的问题,现总结如下:

         调试WM8960使之能播放音频,时钟的配置是很重要的一部分,首先我们需要确定时钟的配置是否正确。Linux启动以后,使用示波器测量 IIS的三个时钟CDClock(Codec Clock ),SClock(串行时钟),LRClock(左右声道选择时钟),发现这三个时钟未按着SPV210的Datasheet中音频子系统中描述的那样工作,正常工作后,三个时钟应该是(CDClock ~= 11.2MHZ,  SClock  ~= 1.41MHz, LRClock  ~= 44KHZ  ), 所以我用了一整天的时间来研究音频子系统中时钟的配置,下面的图片是SPV210 Datasheet中 音频子系统与IIS时钟配置重要说明:

S5PV210调试WM8960 总结_第1张图片

         首先我们要读懂上面图中时钟的路由,知道音频子系统部分的时钟源选择,我们选择的是EPLL,然后进行分频,分频后的时钟作为时钟源进入到IIS子系统,进入IIS子系统后,我们选择I2SCLK作为 IIS模块的时钟源,然后经过分频可以得到 Root时钟(RCLK),也就是Codec时钟(CodecClock),Root时钟再分频可以得到  BCLK,也就是位时钟也可以称为串行时钟(SClock).  IIS 接口root时钟与LRClock时钟之间的关系如下图:

   RFS( root 时钟)为256fs  =   256*44.1KHz=11.2896 Mhz

  

      S5PV210调试WM8960 总结_第2张图片

      

另外:

      S5PV210调试WM8960 总结_第3张图片

      

         模式寄存器中 BFS 和 RFS关键配置我们采用了默认值, Bit Clock=32 fs, Root  clock=256 fs,这里的fs=44.1 MHZ   也就是Codec的采用频率,可以根据WM8960的Datasheet查到,从上面的时钟计算关系图中我们知道fs就是 LRCLK,左右声道选择时钟.


      另外细心的同事对移植过程进行了更加详细的总结,我把他转换成了PDF文档,经同事同意,放到了CSDN上面供大家参考,下载地址:

     http://download.csdn.net/detail/yimiyangguang1314/5517537

你可能感兴趣的:(S5PV210调试WM8960 总结)