1. 首先要注意启动时,先复位一下,通过拉低复位引脚再拉高。
2. 先选择寄存器页面0,写R0,数据0x00。
3. 设置软件复位,写R1,数据0x80。
4. 设置编解码器时钟,这里外接了一个24.576MHz晶振,输出给MCLK。设置参考时钟为48000,通过计算,pll_q为4,设置采样率为8000。寄存器配置如下:
a. R3,数据为(0x04<<3)
b. R101,数据为1
c. R7,数据为0x0a
d. R2, 数据为0xaa
5. 设置各种路径:
a. 设置MIC3R到LEFT_LOPM及RIGHT_LOPM
R25,0xC0
R13, 0x80
R14, 0x80
R86, 0x99
R93, 0x99
R81, 0x80
R91, 0x80
R19, 0x7c
R15, 0x7f
R22, 0x7c
R16, 0x7f
R17, 0xf0
R18, 0xf0
b. 设置LINE1到LEFT_LOPM及RIGHT_LOPM
R86, 0x99
R93, 0x99
R81, 0x80
R91, 0x80
R19, 0x04
R15, 0x7f
R22, 0x04
R16, 0x7f
c. 设置LINE1无源旁路到LEFT_LOPM及RIGHT_LOPM
R108 0x11
d. 设置MIC3录入音频通过I2S输出到主控然后再通过I2S输入到LEFT_LOPM及RIGHT_LOPM播放,即实现边录边播放
R25,0xC0
R13, 0x80
R14, 0x80
R8, 0x20
R19, 0x7c
R15, 0x7f
R22, 0x7c
R16, 0x7f
R17, 0xf0
R18, 0xf0
R86, 0x99
R93, 0x99
R82, 0x80
R92, 0x80
R41, 0x00
R37, 0xc0
R43, 0x00
R44, 0x00
注意事项:有时候R19上电,但是R15不能设置为非静默,注意排除电路问题,可能是静电导致所有寄存器复位了,遇到过aic3106的i2s输出引脚接上主控板的i2s输入引脚就导致寄存器复位了。
另外麦克风附近的电容太小,也可能导致收集不到人的声音。