STM32F103的开发板上音频部分使用的解码芯片是WM8978,算是比较经典的一款芯片了。
芯片手册:
IIS音频数据接口,IIC或SPI控制信号接口。
WM8978的内部接口如下图:
如图中所示WM8978有
4组输入:LIP, LIN; RIP, RIN; L2, R2; AUXR, AUXL
3组输出:OUT3, OUT4; LOUT1, ROUT1; LOUT2 ,ROUT2
各通道之间可以通过寄存器的配置来选择音频输入源,带通参数,增益,输出源等参数。
要对芯片WM8978进行操作,首先就要阅读它的芯片手册,了解相关的操作过程。
当然总线格式,I2C芯片地址等信息是必须的了。然后就是控制命令的操作顺序了。
使能顺序参考内部结构图如下图,或参见手册page14。
下面的操作顺序是芯片中提供的:
条件:输出不使用1.5x
1. 打开外部电源开关,就是芯片上电了。等待电源电压就绪
2. 使所有输出静音。具体的控制位在R52~R53寄存器中。
3. 使能R3中的位LMIXEN和RMIXEN,使输出通道混合使能。
4. 使能R1中的BUFION,使所有输出可以随时打开。设置R1中的VMIDSEL[1:0]的相关参数,来配置pin27脚的参考电压。参考手册page79。
5. 设置R1中的基准电压BIASEN使能控制位。
6. 使能R2中的LOUT1EN和ROUT1EN。使能ROUT1和LOUT1。
7. 配置其他需要的信号混合控制寄存器。
8. 配置其他需要的输出控制寄存器。
9. 配置剩余的寄存器。
WM8978使用2线串口进行控制时,使用的数据格式是:7位地址+第一位数据,然后是8位剩下的数据。使用的时序是I2C时序。
进行了很多参数的配置,不过好像都不好使。最后就把ADC-DAC给跳了过去。直接从MIC取声音,然后送到音频的输出。
使用的配置路径如下图:
哈哈,没想到居然有声音输出了。感觉还是很不错的。
文章评论(0条评论)
登录后参与讨论