西宁做网站制作的公司哪家好,大连企业网站模板建站,wordpress安装七牛云,淘宝分销平台接前一篇文章#xff1a;WM8978 —— 带扬声器驱动程序的立体声编解码器#xff08;4#xff09; 九、寄存器概览与详解
1. 整体概览
WM8978芯片共有58个寄存器#xff0c;整体总表如下#xff1a; 2. 详细说明
在此#xff0c;只介绍WM8978较为常用的那些寄存器。
WM8978 —— 带扬声器驱动程序的立体声编解码器4 九、寄存器概览与详解
1. 整体概览
WM8978芯片共有58个寄存器整体总表如下 2. 详细说明
在此只介绍WM8978较为常用的那些寄存器。
1寄存器0 —— Software Reset
2寄存器1 —— Power manage’t 1
3寄存器2 —— Power manage’t 2
4寄存器3 —— Power manage’t 3
5寄存器4 —— Audio Interface 6寄存器5 —— Companding ctrl 此寄存器默认无需设置。 示例代码
WM8978_Write_Reg(5, 0x00);
注
示例代码中由于设置的值为0x00与默认值相同因此可以不必写这一句代码。
7寄存器6 —— Clock Gen ctrl 此寄存器全部设置为0即设置MCLK和BCLK时钟源都来源于外部。本例时钟源来自于STM32F4 芯片。 示例代码
//MCLK由外部提供
WM8978_Write_Reg(6, 0x00);
8寄存器10 —— DAC Control 此寄存器需要设置SOFTMUTEBit6和DACOSR128Bit3这两个位其中SOFTMUTE位设置为0即关闭软件静音DACOSR128位设置为1即DAC得到最好的SNR。 示例代码
//SOFTMUTE关闭128x采样最佳SNR
WM8978_Write_Reg(10, 13);
9寄存器14 —— ADC Control 此寄存器需要设置ADCOSR128Bit3这个位ADCOSR128位设置为1即ADC得到最好的SNR。 示例代码
//128x采样最佳SNR
WM8978_Write_Reg(14, 13);
10寄存器43 —— Beep Control 此寄存器需要把INVROUT2位置1即反转ROUT2输出这样以使于更好地驱动喇叭。 示例代码
//INVROUT2反向驱动喇叭
WM8978_Write_Reg(43, 14);
11寄存器47 —— Left ADC Boost ctrl 此寄存器可以把PGABOOSTL位置1以使左通道MIC获得额外20dB增益。 示例代码
//设置PGABOOSTL左通道MIC获得20dB增益
WM8978_Write_Reg(47, 18);
注
由于PGABOOSTL默认值为1因此可以不用写这一句。如果要设置的值并非默认值则需要写此一句代码当然值就不是0x100了。
12寄存器48 —— Right ADC Boost ctrl 此寄存器可以把PGABOOSTR位置1以使右通道MIC获得额外20dB增益。 示例代码
//设置PGABOOSTR右通道MIC获得20倍增益
WM8978_Write_Reg(48, 18);
注
由于PGABOOSTR默认值为1因此可以不用写这一句。如果要设置的值并非默认值则需要写此一句代码当然值就不是0x100了。
13寄存器49 —— Output ctrl 此寄存器需要设置SPKBOOSTBit2和TSDENBit1这两个位。SPKBOOST位用于设置喇叭的增益可以设置为0 如果想获得更大的声音则设置为1TSDEN位用于设置过热保护 如果需要开启过热保护则设置为1不开启设置为0即可。 示例代码
//设置TSDEN开启过热保护SPEAKER BOOST1.5x
WM8978_Write_Reg(49, 0x031); 更多寄存器说明请看下回。