降噪IIC参数配置指南

一.系统说明

本文档适合A2A或者IIS相关的降噪SDK标准固件中IIC配置相关

 

嵌入式音频系统组成

IIC配置功能是否开启,需要根据SDK确认,只有开启了IIC通信的固件,IIC才能正常通信。

#define BSP_USING_I2C0_SLAVE
#define I2C0_SLAVE_MSG_LEN 10
#define I2C0_SLAVE_ADDRESS 0x5A
#define HAL_I2C0_SLAVE_SCL_PIN    GPIO0
#define HAL_I2C0_SLAVE_SDA_PIN    GPIO1

二.IIC参数配置说明

默认使用GPIO0为IIC的时钟线(SCK),使用GPIO1为IIC的数据线(SDA)。设备地址为0x5A。

如果使用了IIS功能,因为IIS功能需要固定占用GPIO0~GPIO3,此时IIC会选择GPIO14/GPIO15。因为调试log打印也使用GPIO14/GPIO15,所以这种情况下,开启IIC配置功能后,将无法打印LOG。

 

嵌入式音频系统组成

 

 

寄存器0x01写图例:

嵌入式音频系统组成

 

嵌入式音频系统组成

1.CODEC通用参数寄存器地址

功能寄存器地址
mic0_pga增益0x10
mic1_pga增益0x11
mic0_mix增益0x12
mic1_mix增益0x13
HPL输出音量0x14
HPR输出音量0x15
左右声道是否差分0x16
IIS_RX_VOLUME0x17
IIS_TX_VOLUME0x18

1.MIC0_PGA_增益

配置值(寄存器地址:0x10)功能
0x00-12DB
0x01-6DB
0x02-0DB
0x036DB
0x0412DB
0x0518DB
0x0624DB
0x030DB

2.MIC1_PGA_增益

配置值(寄存器地址:0x11)功能
0x00-12DB
0x01-6DB
0x02-0DB
0x036DB
0x0412DB
0x0518DB
0x0624DB
0x0730DB

3.MIC0_MIX增益

配置值(寄存器地址:0x12)功能
0x00-4.5DB
0x01-3DB
0x02-1.5DB
0x030DB
0x041.5DB
0x053.0DB
0x064.5DB
0x076DB
0x087.5DB
0x099.0DB
0x0A10.5DB
0x0B12.0DB
0x0C13.5DB
0x0D16.5DB
0x0E18.0DB

4.MIC1_MIX增益

配置值(寄存器地址:0x13)功能
0x00-4.5DB
0x01-3DB
0x02-1.5DB
0x030DB
0x041.5DB
0x053.0DB
0x064.5DB
0x076DB
0x087.5DB
0x099.0DB
0x0A10.5DB
0x0B12.0DB
0x0C13.5DB
0x0D16.5DB
0x0E18.0DB

5.左声道音量

配置值(寄存器地址:0x14)功能
0x00静音(算法还在跑)
0x01-40DB
0X02-39DB
......
0x3E21DB
0x3F22DB

6.右声道音量

配置值(寄存器地址:0x15)功能
0x00静音(算法还在跑)
0x01-40DB
0X02-39DB
......
0x3E21DB
0x3F22DB

7.左右声道是否差分

配置值(寄存器地址:0x16)功能
0x00左右声道相位相同
0x01左右声道相位180度

8.IIS_RX数字音量

配置值(寄存器地址:0x17)功能
00~41-20DB~20DB

9.IIS_TX数量音量

配置值(寄存器地址:0x18)功能
00~41-20DB~20DB

2.降噪算法参数寄存器地址

功能寄存器地址
降噪开关0x21
MIC选择0X22
降噪等级0x23
降噪副麦权重0X24
MIC数量0x25
输出声道设置0x26

1.降噪开关

配置值(寄存器地址:0x21)功能
0x00关闭降噪
0x01开启降噪

2.MIC选择

配置值(寄存器地址:0x22)功能
0x00MIC0
0x01MIC1

3.降噪等级

配置值(寄存器地址:0x23)功能
0x000级降噪等级(最弱)
0x011级降噪等级
......
0xFE254级降噪等级
0xFF255级降噪等级(最强)

4.降噪副麦权重

LE配置值(寄存器地址:0x24)功能
0x00~0x64副麦权重

5.MIC数量

MIC数量配置值(寄存器地址:0x25)功能
0x00单麦
0x01双麦

6.输出声道设置

MIC数量配置值(寄存器地址:0x26)功能
0x00左右声道均输出降噪后声音
0x01左右声道均输出降噪前原始声音
0x02左声道降噪后,右声道 降噪前
0x03左声道降噪后,右声道关闭
0x04左声道关闭,右声道处理后

 

3.啸叫抑制算法参数寄存器地址

功能寄存器地址
啸叫抑制开关0x0E
啸叫MIC选择0x0F
啸叫抑制LE等级0x0A
啸叫抑制LH等级0x0B
啸叫抑制LN等级0x0C
啸叫抑制FC等级0x0D
输出声道设置0x1A

1.啸叫抑制开关

配置值(寄存器地址:0x0E)功能
0x00关闭啸叫抑制
0x01开启啸叫抑制

2.麦克风选择

配置值(寄存器地址:0x0F)功能
0x00MIC0
0x01MIC1

3.啸叫抑制LE等级

LE配置值(寄存器地址:0x0A)功能
0~255LE等级

4.啸叫抑制LH等级

LH配置值(寄存器地址:0x0B)功能
0~255LH等级

5.啸叫抑制LN等级

LN配置值(寄存器地址:0x0C)功能
0~255LN等级

6.啸叫抑制FC等级

FC配置值(寄存器地址:0x0D)功能
0~255FC等级

7.输出声道设置

MIC数量配置值(寄存器地址:0x07)功能
0x00左右声道均输出降噪后声音
0x01左右声道均输出降噪前原始声音
0x02左声道降噪后,右声道 降噪前
0x03左声道降噪后,右声道关闭
0x04左声道关闭,右声道处理后

3.其他配置

功能寄存器地址
预设EQ类型0x31
系统进入WFI0X32
系统进入HIBERNATE0x33
系统重启0XF0

1.预设EQ类型

配置值(寄存器地址:0x31)功能
0x00EQ关闭
0x01预设场景1(代码实现)
0x02预设场景2(代码实现)
0x03预设场景3(代码实现)
0x04预设场景4(代码实现)
0x05预设场景5(代码实现)
0x06预设场景6(代码实现)
0x07自定义(EQ工具配置,免代码)
0x08EQ参数动态配置,寄存器写1,动态参数配置才开启

2.EQ参数动态配置

寄存器地址数据长度(8字节)应用举例功能
0x40FC(2字节,short) + Q(2字节,short) + GAIN(2字节,short) + TYPE(2字节,short)FC:频点,Q:滤波器Q值(Q8),GAIN:增益(Q8),TYPE:滤波器类型:0:Disable 1:Lowshelf 2:Peak 3:Highshelf 4:Lowpass 5:Highpass配置第0段EQ参数
0x41FC(2字节) + Q(2字节) + GAIN(2字节) + TYPE(2字节)同上配置第1段EQ参数
0x42FC(2字节) + Q(2字节) + GAIN(2字节) + TYPE(2字节)同上配置第2段EQ参数
0x43FC(2字节) + Q(2字节) + GAIN(2字节) + TYPE(2字节)同上配置第3段EQ参数
0x44FC(2字节) + Q(2字节) + GAIN(2字节) + TYPE(2字节)同上配置第4段EQ参数
0x45FC(2字节) + Q(2字节) + GAIN(2字节) + TYPE(2字节)同上配置第5段EQ参数
0x46FC(2字节) + Q(2字节) + GAIN(2字节) + TYPE(2字节)同上配置第6段EQ参数
0x47FC(2字节) + Q(2字节) + GAIN(2字节) + TYPE(2字节)同上配置第7段EQ参数
    

应用举例:

需要配置EQ第3段为:f0: 2878 Hz, Q: 0.750, Gain: 9.1 dB, Type: Peak

则寄存器地址为:0x43

写寄存器值为:2878 192 2329 2

对应十六进制为:0C 0B C0 00 19 09 02 00

所以IIC主机需要向0x43寄存器写:0C 0B C0 00 19 09 02 00

2.系统进入WFI(低功耗)

配置值(寄存器地址:0x33)功能
0x00系统进入WFI低功耗
0x01系统退出WFI低功耗

3.系统进入HIBERNATE(低功耗)

配置值(寄存器地址:0x4)功能
0x00系统进入HIBERNATE低功耗
  

4.系统重启

配置值(寄存器地址:0XF0)功能
0x01系统复位,配置值生效。

UART参数配置说明

需在SDK的board.h中开启,默认GPIO14为CODEC芯片TXD,GPIO15为CODEC芯片RXD。波特率为115200。

1.通信数据包格式

帧头读写控制寄存器地址有效数据长度有效数据和校验帧尾
0xF01Byte1Byte1BytenByte=寄存器地址+有效数据长度+有效数据,2Byte0xF1
       

帧头:表示一个数据包的起始,长度为1Byte,固定为0xF0;

读写控制:0x01表示写;0x02表示读;0x03表示对写的应答;0x04表示对读的应答;

寄存器地址:表示数据包的作用,长度为1Byte,详见IIC寄存器地址描述;

有效数据:表示具体的配置值,长度为有效数据值,详IIC配置值描述;

和校验:等于【读写控制】+【寄存器地址】+【有效数据长度】+【有效数据】,低字节在前;

帧尾:表示一个数据包的起结束,长度为1Byte,固定为0xF1;

2.寄存器地址说明(与IIC通信寄存器地址相同)

参考上面的IIC通信寄存器地址

2.应用举例

例如:主控需要通过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

 

例如:主控需要通过uart写codec的DAC音量,则写寄存器地址为0x05,如果需要配置DAC的音量为静音,则需要配置音量为0

主控发送:F0 01 05 01 00 07 00 F1

codec回复:F0 03 05 01 00 09 00 F1

 

例如:主控需要通过uart读codec的DAC音量,则写寄存器地址为0x05,如果DAC的音量为21DB,则通信数据包如下:

主控发送:F0 02 05 01 00 06 00 F1

codec回复:F0 04 05 01 3E 48 00 F1