接前一篇文章:WM8978 —— 带扬声器驱动程序的立体声编解码器(5)
九、寄存器概览与详解
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
(7)寄存器6 —— Clock Gen ctrl
(8)寄存器10 —— DAC Control
(9)寄存器14 —— ADC Control
(10)寄存器43 —— Beep Control
(11)寄存器47 —— Left ADC Boost ctrl
(12)寄存器48 —— Right ADC Boost ctrl
(13)寄存器49 —— Output ctrl
(14)寄存器50 —— Left mixer ctrl
此寄存器只需要设置DACL2LMIX(Bit0),该位用于设置将左声道的DAC输出接入左声道混合器里面,才能在耳机或者喇叭听到音乐。
示例代码:
//设置DACL2LMIX,将左声道的DAC输出接入左声道混合器中
WM8978_Write_Reg(50, 0x001);
注:
由于DACL2LMIX默认值为1,因此可以不用写这一句。如果要设置的值并非默认值,则需要写此一句代码(当然值就不是0x001了)。
(15)寄存器51 —— Right mixer ctrl
此寄存器只需要设置DACR2RMIX(Bit0),该位用于设置将右声道的DAC输出接入右声道混合器里面,才能在耳机或者喇叭听到音乐。
示例代码:
//设置DACR2RMIX,将右声道的DAC输出接入右声道混合器中
WM8978_Write_Reg(51, 0x001);
注:
由于DACR2RMIX默认值为1,因此可以不用写这一句。如果要设置的值并非默认值,则需要写此一句代码(当然值就不是0x001了)。
(16)寄存器52 —— LOUT1 (HP) volume ctrl
此寄存器用于设置耳机左声道的音量,HPVU(Bit8)用于设置是否更新左声道的音量。LOUT1VOL(Bit5:0)位用于设置左声道的音量。
示例代码:
//设置HPVU,更新左声道音量;设置LOUT1VOL,将左声道的音量设置为0dB
WM8978_Write_Reg(52, 0x139);
(17)寄存器53 —— ROUT1 (HP) volume ctrl
此寄存器用于设置耳机右声道的音量,HPVU(Bit8)用于设置是否更新右声道的音量。ROUT1VOL(Bit5:0)位用于设置右声道的音量。
示例代码:
//设置HPVU,更新右声道音量;设置ROUT1VOL,将右声道的音量设置为0dB
WM8978_Write_Reg(52, 0x139);
(18)寄存器54 —— LOUT2 (SPK) volume ctrl
此寄存器用于设置喇叭左声道的音量,SPKVU(Bit8)用于设置是否更新左声道的音量。LOUT2VOL(Bit5:0)位用于设置左声道的音量。
示例代码:
//设置SPKVU,更新喇叭左声道的音量;设置LOUT2VOL,将左声道的音量设置为0dB
WM8978_Write_Reg(54, 0x139);
(19)寄存器55 —— ROUT2 (SPK) volume ctrl
此寄存器用于设置喇叭右声道的音量,SPKVU(Bit8)用于设置是否更新右声道的音量。ROUT2VOL(Bit5:0)位用于设置右声道的音量。
示例代码:
//设置SPKVU,更新喇叭右声道的音量;设置ROUT2VOL,将右声道的音量设置为0dB
WM8978_Write_Reg(55, 0x139);
至此,对于WM8978常用寄存器的详细说明就讲解完了。
更多内容请看下回。