codec-wm8960

来源:互联网 发布:淘宝客服中心组织架构 编辑:程序博客网 时间:2024/06/05 20:06

Codec:音频芯片的控制,比如静音、打开(关闭)ADC(DAC)、设置ADC(DAC)的增益、耳机模式的检测等操作。

I2S:数字音频接口,用于CPU和Codec之间的数字音频流raw data的传输。每当有playback或record操作时,snd_soc_dai_ops.prepare()会被调用,启动I2S总线。

PCM:我不知道为什么会取这个模块名,它其实是定义DMA操作的,用于将音频数据通过DMA传到I2S控制器的FIFO中。

音频数据流向:RAM--(dma)-->I2S Controller FIFO--(i2s)-->Codec-->Speaker/Headset


以下是本人调试wm8960的一些总结,是为以后调试类似的东西做参考:
1、首先请检查硬件问题,确保连接良好,有供电。
2、确定I2C能正常通信,设置正常的通信速率。
3、配置slave模式或master模式,注意配置0x7寄存器bit6(MS)
4、注意配置寄存器0x19寄存器bit6(VREF),此位必须置1,否者其他所有功能都不能正常工作
5、其他寄存器的配置参考adc和dac的通道图来配置

6、注意用作slave模式时ADCLRC和DACLRC必须用同一路,采样率设置为一样;并且ADCLRC必须配置为GPIO,否则ADC通道不能正常工作


7、建议首先调试dac通道,再调试adc通道,因为一旦dac通道调通,调adc通道时可以把模拟输入(mic、line-in)直接旁路到输出通道,以测试此通路是否打通
0 0