接前一篇文章:WM8978 —— 带扬声器驱动程序的立体声编解码器(3)
1. 整体概览
WM8978芯片共有58个寄存器,整体总表如下:
注意:
WM8978的寄存器是9位的!而且是只写的,只可以写,不可以读!
2. 详细说明
在此,只介绍WM8978较为常用的那些寄存器。
(1)寄存器0 —— Software Reset
此寄存器功能用于控制WM8978的软件复位,写任意值到该寄存器地址,即可实现WM8978 的软件复位。
ADDR
B[15:9]
REGISTER
NEME
B8 B7 B6 B5 B4 B3 B2 B1 B0DEF'T
VAL
DEC HEX (HEX) 0 00 Software Reset Software Reset示例代码:
(2)寄存器1 —— Power manage’t 1
此寄存器需要使能BIASEN(Bit3)位,该位置 1,模拟部分的放大器才会工作,只有使能了该位才可以听到声音。
示例代码:
(3)寄存器2 —— Power manage’t 2
此寄存器需要设置ROUT1EN(Bit8)位、LOUT1EN(Bit7)和 SLEEP(Bit6)这三个位, ROUT1EN和LOUT1EN位设置为1,使能耳机输出。SLEEP设置为 0,进入正常工作模式。
示例代码:
(4)寄存器3 —— Power manage’t 3
此存器需要要设置LOUT2EN(Bit6)、ROUT2EN (Bit5)、RMIXER(Bit3)、LMIXER(Bit2)、DACENR(Bit1)和 DACENL(Bit0)这6个位。其中,LOUT2EN和ROUT2EN位设置为1,使能喇叭输出;LMIXER和RMIXER位设置为1,使能左右声道混合器;DACENL和DACENR 位设置为1,使能左右声道的DAC。
示例代码:
(5)寄存器4 —— Audio Interface
此寄存器需要要设置WL(Bit6:5)和FMT(Bit4:3)这4个位。WL(Bit6:5)用于设置字长,即音频数据有效位数。00表示16位音频,10表示24位音频;FMT(Bit4:3)位用于设置IIS音频数据模式,这里设置为10,表示使用飞利浦模式(IIS)。
示例代码:
注:
- 此(Audio Interface)寄存器的默认值为0x050,也即默认的WL(Bit6:5)为10,表示字长为24位;默认的FMT(Bit4:3)为10,表示使用I2S(飞利浦)模式。
- 示例代码中由于设置的值为0x50,与默认值相同,因此可以不必写这一句代码。如果要设置的值并非默认值,则需要写此一句代码(当然值就不是0x50了)。
更多寄存器说明请看下回。
到此这篇16位解码(16位解码器)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/19747.html