1、在调试中出现问题后,首先看I2C通信有没有问题,wm8960寄存器的设置是靠I2C来完成,另外I2C通信不成功在开发板中是没
有声卡相关的设备节点。
a、首先查看Machine代码中的I2C的序号、名字和地址与DSP代码中I2C的序号、名字和地址是否相对应。
b、用示波器测量I2C的两根数据线SCLK、SDIN的波形。
c、可以先测试一下wm8960的BYPASS通道,从L/RINPUT3输入一个模拟信号直接从SPK_L/R输出,如果成功也能说明I2C
通信正常。
2、测试BCLK、LRCK的波形频率是否正确。
3、测试SSI通信有没有问题,在《I2S音频通信》这一节中介绍了SSI作用和原理。
如果BYPASS成功后,说明SPK的输出功能是没有问题的,可以在测试LOOPBACK通道来看DAC功能有没有问题,
LOOPBACK可以从L/RINPUT3输入模拟信号经过ADC和DAC后从SPK_L/R输出,该通道如果不成功说明有关DAC的寄存器配
置有问题,如果成功说明SSI通信有问题。
4、Android系统一般自带两个命令可用于在底层中测试音频
a、tinyplay 播放 (例如:./tinyplay *.wav)
b、tinycap 录音 (例如:./tinycap *.wav)
5、附件中有Android下的wm8960驱动代码,该代码实现了录音和播放功能,没有做耳机检测,附件中带有飞思卡尔开放的wm8962
的驱动代码并带有耳机检测功能,完全可以参考来做耳机功能。
一般寄存器配置是按照:复位—PROWER—CLOCK—相关路径,复位后所有的寄存器都恢复到厂商的默认值,有些寄存器
需要供电后才能设置成功,在路径中的一些寄存器中有了时钟才能设置成功,该芯片还有个特性,如果你不设置寄存器的值,它
不会因为其它而自己改变寄存器的值。