本文档适合A2A或者IIS相关的降噪SDK标准固件中IIC配置相关
IIC配置功能是否开启,需要在A2A配置工具中选择,只有选择开启了IIC通信,才会启动IIC通讯。
默认使用GPIO14为IIC的时钟线(SCK),使用GPIO15为IIC的数据线(SDA)。设备地址为0x5A。
由于调试log打印也使用GPIO14/GPIO15,所以开启IIC配置功能后,将无法打印LOG。
寄存器0x01写图例:
功能 | 寄存器地址 |
---|---|
降噪开关 | 0x01 |
降噪等级 | 0x02 |
麦克风增益 | 0x03 |
mic0增益 | 0x30 |
mic1增益 | 0x31 |
麦克风选择 | 0x04 |
输出音量 | 0x05 |
左右声道是否差分 | 0x06 |
EQ类型 | 0x07 |
系统WFI(低功耗) | 0x08 |
系统进入HIBERNATE(低功耗) | 0x09 |
系统重启 | 0xF0 |
配置值(寄存器地址:0x01) | 功能 |
---|---|
0x00 | 关闭降噪 |
0x01 | 开启降噪 |
配置值(寄存器地址:0x02) | 功能 |
---|---|
0x00 | 0级降噪等级(最弱) |
0x01 | 1级降噪等级 |
0x02 | 2级降噪等级 |
0x03 | 3级降噪等级 |
0x04 | 4级降噪等级(最强) |
配置值(寄存器地址:0x03) | 功能 |
---|---|
0x00 | -12DB |
0x01 | -6DB |
0x02 | -0DB |
0x03 | 6DB |
0x04 | 12DB |
0x05 | 18DB |
0x06 | 24DB |
0x07 | 30DB |
MIC0增益
配置值(寄存器地址:0x30) | 功能 |
---|---|
0x00 | -12DB |
0x01 | -6DB |
0x02 | -0DB |
0x03 | 6DB |
0x04 | 12DB |
0x05 | 18DB |
0x06 | 24DB |
0x07 | 30DB |
MIC1增益
配置值(寄存器地址:0x31) | 功能 |
---|---|
0x00 | -12DB |
0x01 | -6DB |
0x02 | -0DB |
0x03 | 6DB |
0x04 | 12DB |
0x05 | 18DB |
0x06 | 24DB |
0x07 | 30DB |
配置值(寄存器地址:0x04) | 功能 |
---|---|
0x00 | MIC0 |
0x01 | MIC1 |
配置值(寄存器地址:0x05) | 功能 |
---|---|
0x00 | 静音(算法还在跑) |
0x01 | -40DB |
0X02 | -39DB |
... | ... |
0x3E | 21DB |
0x3F | 22DB |
配置值(寄存器地址:0x06) | 功能 |
---|---|
0x00 | 左右声道相位相同 |
0x01 | 左右声道相位180度 |
配置值(寄存器地址:0x07) | 功能 |
---|---|
0x00 | EQ关闭 |
0x01 | 预设场景1 |
0x02 | 预设场景2 |
0x03 | 预设场景3 |
0x04 | 预设场景4 |
0x05 | 预设场景5 |
0x06 | 预设场景6 |
0x07 | 自定义 |
配置值(寄存器地址:0x08) | 功能 |
---|---|
0x00 | 系统进入WFI低功耗 |
0x01 | 系统退出WFI低功耗 |
配置值(寄存器地址:0x08) | 功能 |
---|---|
0x00 | 系统进入HIBERNATE低功耗 |
配置值(寄存器地址:0XF0) | 功能 |
---|---|
0x01 | 系统复位,配置值生效。 |
使用上位机工具,开启UART通信,GPIO14为CODEC芯片TXD,GPIO15为CODEC芯片RXD。波特率为115200。
帧头 | 读写控制 | 寄存器地址 | 有效数据长度 | 有效数据 | 和校验 | 帧尾 |
---|---|---|---|---|---|---|
0xF0 | 1Byte | 1Byte | 1Byte | nByte | =寄存器地址+有效数据长度+有效数据,2Byte | 0xF1 |
帧头:表示一个数据包的起始,长度为1Byte,固定为0xF0;
读写控制:0x01表示写;0x02表示读;0x03表示对写的应答;0x04表示对读的应答;
寄存器地址:表示数据包的作用,长度为1Byte,详见IIC寄存器地址描述;
有效数据:表示具体的配置值,长度为有效数据值,详IIC配置值描述;
和校验:等于【寄存器地址】+【有效数据长度】+【有效数据】,低字节在前;
帧尾:表示一个数据包的起结束,长度为1Byte,固定为0xF1;
例如:主控需要通过uart关闭codec降噪功能,数据包应该如下:
主控发送: F0 01 01 01 00 03 00 F1
codec回复 :F0 03 01 01 00 05 00 F1
例如:主控需要通过uart配置codec芯片mic的增益为30DB,数据包应该如下:
主控发送: F0 01 03 01 07 0C 00 F1
codec回复 :F0 03 03 01 07 0E 00 F1
例如:主控需要通过uart读取codec芯片的mic增益,如果当前增益为30DB,数据包应该如下:
主控发送: F0 02 03 01 00 06 00 F1
codec回复 :F0 04 03 01 07 0F 00 F1