文章目录
- 标准模式下ES8311寄存器初始化
- 初始化第一阶段(因为是通用组件,实际上很多设置对立创S3的开发板来说没用)
- 初始化第二阶段
- 为内部MCLK设置时钟源 Select clock source for internal mclk
- 设置输出的功率和滤波
- 设置内部参考信号set internal reference signal (ADCL + DACR)
- 打开ES8311硬件开关
- 二阶段分析汇总
- 标准模式下ES8311寄存器应用
-
- 上文用到的寄存器说明(来自顺芯官网下载的手册)
- 寄存器 0X00 – 复位,默认值 0001 1111
- 寄存器 0X01 – 时钟管理,默认值 0000 0000
- 寄存器 0X02 – 时钟管理,默认值 0000 0000
- 寄存器 0X03 – 时钟管理,默认值 0001 0000
- 寄存器 0X04 – 时钟管理,默认值 0001 0000
- 寄存器 0X05 – 时钟管理,默认值 0000 0000
- 寄存器 0X06 – 时钟管理,默认值 0000 0011
- 寄存器 0X07 – 时钟管理,默认值 0000 0000
- 寄存器 0X08 – 时钟管理,默认值 1111 1111
- 寄存器 0X09 – SDP,默认值 0000 0000
- 寄存器 0X0A – SDP,默认值 0000 0000
- 寄存器 0X0B – 系统,默认值 0000 0000
- 寄存器 0X0C – 系统,默认值 0010 0000
- 寄存器 0X10 – 系统,默认值 0001 0011
- 寄存器 0X11 – 系统,默认值 0111 1100
- 寄存器 0X13 – 系统,默认值 0100 0000
- 寄存器 0X16 – ADC,默认值 0000 0100
- 寄存器 0X1B – ADC,默认值 0000 1100
- 寄存器 0X1C – ADC,默认值 0100 1100
- 寄存器 0X31 – DAC,默认值 0000 0000
- 寄存器 0X32 – DAC,默认值 0000 0000
- 寄存器 0X33 – DAC,默认值 0000 0000
- 寄存器 0X34 – DAC,默认值 0000 0000
- 寄存器 0X35 – DAC,默认值 0000 0000
- 寄存器 0X36 – DAC,默认值 0000 0000
- 寄存器 0X37 – DAC,默认值 0000 1000
- 寄存器 0X38 – DAC 等效器,默认值 0000 0000
- 寄存器 0X39 – DAC 等效器,默认值 0000 0000
- 寄存器 0X44 – GPIO,默认值 0000 0000
es311这个芯片有带寄存器说明的数据手册,但设置也有很多搞不懂,只是通过程序的分析,得到些对官方新组件esp_codec_dev修改的经验,为重新编写自用组件打好基础。
标准模式下ES8311寄存器初始化
初始化第一阶段(因为是通用组件,实际上很多设置对立创S3的开发板来说没用)
0x44,0x08 //按理说这个地方不用设,但官方就是设了个I2C_WL位,具体也没找到解释。
delay
0x44,0x08 //延时一段时间后又设了一次
0x01,0x30 //开MCLK和BCLK时钟控制
0x02,0x00 //与分频相关的设置
0x03,0x10 //ADC电路中设置,和采样有关的设置,ADC_OSR=16,看起来是A/D转换的,按理说用不上
0x16,0x24 //还是ADC的设置,设置成标准音频时钟,24dB
0x04,0x10 //和0x03寄存器类似,DAC_OSR=16,这个对输出有用,官方用的16,代表16 x 采样率
0x05,0x00 //和采样时钟分频有关的设置,这块通过查表解决,不用单独计算
0x0b,0x00 //三个上电阶段的时长,根据数值,参考LRCK频率得到值
0x0c,0x1f //和0x0b一起控制三个上电阶段,1f表示C上电时段值是31
0x10,0x1f //模拟电路上的一些电压值设置
0x11,0x7f //同部设置用,不知道干什么的
0x00,0x80 //打开电源,这个电源打开和音响电路中时序电源类似
然后读取0x00寄存器,根据配置变量中的工作模式,配置第6位的值,重新写回寄存器0x00,同时向串口输出ES8311工作在主机模式还是从机模式的提信息
初始化第二阶段
为内部MCLK设置时钟源 Select clock source for internal mclk
0x01,0x3f //选择硬件的MCLK引脚并设置是否反相
0x06,原值 //设置硬件的BLCK引脚是否反相
设置输出的功率和滤波
0x13,0x10 //位4设置 1-驱动耳机 0-线路输出
0x1b,0x0a //和滤波有关的设置
0x1c,0x6a //和滤波有关的设置
设置内部参考信号set internal reference signal (ADCL + DACR)
0x44,0x58 //没搞懂
打开ES8311硬件开关
这个根据硬件来,立创实战派S3上用了IO扩展口进行控制,单独用了个函数,没用主控的引脚
二阶段分析汇总
0x01寄存器的位7根据配置文件的use_mclk成员值决定,
和硬件有关,0-从MCLk引脚接入,1-从BCLK引脚接入;
位6根据配置文件的invert_mclk成员值决定,0-不反相,1-反相;
位0-位7全部写入1,打开各个时钟。
0x06寄存器的位5根据配置文件的invert_sclk成员值决定,为了不影响其他配置,先读寄存器值,再赋值,0-不反相,1-反相;
这里要注意,如果外部MCLK信号是从BCLK引脚引入,根据手册中的备注,此处反相应该是针对硬件引脚进行反相,也就是从BCLK引脚进来的信号进行反相。
立创实战派S3上开发板上,0x01高两位都是0,所以0x00寄存器写入0x3f,相比较初始化第一阶段,增加了打开低4位的时钟。因为ES8311没用MIC,ADC电路没有,个人觉得0x15就可以了,待验证。0x06寄存器不需改变,这步觉得也可以优化掉。
寄存器0x1b,0x1c起滤波作用,具体设置用官方的,自己也没内部电路来参考,但看起来是ADC电路的,和我要调试的输出没什么关系,应该可以优化掉。
寄存器0x44这时又进行赋值,这是根据no_dac_ref成员值设置。官方手册定义是当记录双通道数据时:0-右通道填充DAC输出 1-右通道保持空白。跟进程序和寄存器说明时,为0时,官方使用了0x50,对应ADCDAT_SEL 6:4的值5(adc+dacr),再加上I2C_WL值0x08后写入寄存器,具体作用不详,感觉是做回声消除的,待进一步测试时理解。为1时,官方使用了0x00,对应的ADCDAT_SEL 6:4的值0,应该是两个通道全用ADC输入,与结构体中的定义左声道adc输入加右声道dac输出并不相符。
问了下DEEPSEEK
但关于寄存器的位功能,得到的答案是这样的 :
位域 | 名称 | 功能描述 | 0X58 (01011000) | 0X08 (00001000) |
---|
7 | GPIO1_SEL | GPIO1功能选择 | 0 (GPIO) | 0 (GPIO) |
6 | GPIO0_SEL | GPIO0功能选择 | 1 (IRQ) | 0 (GPIO) |
5:4 | REF_SEL[1:0] | 参考电压源选择 | 01 | (DACR+ADCL) |
3 | MICBIAS_EN | 麦克风偏置电压使能 | 1 (开启) | 0 (关闭) |
2:0 | Reserved | 保留位 | 000 | 000 |
这段寄存器解释与官网下载的手册表述的不一样,很奇怪,看起来DEEPSEEK提供的位3功能更符合程序,如果哪位能解惑在此先谢谢!
最后,ES8311上有个总允许开关引脚,控制后一级功放芯片,官方组件中从主控芯片上定义一个引脚控制,因此有个初始化引脚过程,这里就不分析了。实际应用时,这段我根据立创的io扩展电路换了程序。由于这段内容是组件中初始化设备较为核心的内容,修改代表着组件通用性也没那么好,还是得自己研究透来改。
标准模式下ES8311寄存器应用
设置音量
和寄存器0x32有关
具体回调函数指向了es8311_set_vol(),这其中涉及一些数值转化
另外还有寄存器0x31,可以设置静音,0x33-0x39也和DAC输出有关,具体没再研究,先把找到的注释留存参考
音频增益概述:
最终的扬声器音量同时受到软件增益和硬件增益的影响。
软件增益(可调节):
音频处理增益:由音频后处理器提供的增益,例如自动电平控制(ALC)、自动增益控制(AGC)、动态范围压缩(DRC)目标最大增益。
编解码器数模转换器音量:音频编解码器数模转换器的音量控制,例如 ES8311 数模转换器音量控制寄存器。
硬件增益(固定):
功率放大器增益:扬声器功率放大器的增益,由硬件电路决定。
扬声器播放路径增益(音频处理增益 + 编解码器数模转换器音量 + 功率放大器增益)需要确保扬声器功率放大器的输出不饱和且不超过扬声器的额定功率。我们将最大路径增益定义为 MAX_GAIN。为确保扬声器功率放大器的输出不饱和,MAX_GAIN 可以通过以下公式简单计算得出:
MAX_GAIN = 20 * log(Vpa/Vdac)
Vpa:功率放大器电源电压
Vdac:编解码器数模转换器电源电压
例如,Vpa = 5V,Vdac = 3.3V,那么 MAX_GAIN = 20 * log (5/3.3) = 3.6 分贝。
如果扬声器的额定功率低于扬声器功率放大器的最大功率,MAX_GAIN 应根据扬声器的额定功率来定义。
设置音频采样率
具体回调函数指向es8311_set_fs(),里面还有几个回调函数,涉及一些计算
先给寄存器0x09,0x0a赋值
再依次根据参数给寄存器0x02、0x05、0x03、0x04、0x07、0x08、0x06赋值
向ES8311写入音频数据
这里和ES8311本身没有关系,是通过控制主控的I2S进行数据发送,涉及I2S的回调函数
具体看I2S的初始化及配置参数,与ES8311的寄存器没什么关系。
官方的ES8311还有挂起,关闭,设置MIC,ADC输入的一些函数,可以参考调用。
上文用到的寄存器说明(来自顺芯官网下载的手册)
寄存器 0X00 – 复位,默认值 0001 1111
位名称 | 位描述 |
---|
CSM_ON 7 | 芯片当前状态机控制 |
| 0 – 状态机关闭(默认) |
| 1 – 状态机开启 |
MSC 6 | 0 – 从机、串行端口模式(默认) |
| 1 – 主机、串行端口模式 |
SEQ_DIS 5 | 上电顺序控制 |
| 0 – 上电顺序使能(默认) |
| 1 – 禁用上电顺序 |
RST_DIG 4 | 数字复位 |
| 0 – 不复位 |
| 1 – 复位数字部分,但保留控制端口模块(默认) |
RST_CMG 3 | 时钟管理模块复位 |
| 0 – 不复位 |
| 1 – 复位时钟管理模块(默认) |
RST_MST 2 | 主模块复位 |
| 0 – 不复位 |
| 1 – 复位主模块(默认) |
RST_ADC_DIG 1 | ADC 数字模块复位 |
| 0 – 不复位 |
| 1 – 复位 ADC 数字模块(默认) |
RST_DAC_DIG 0 | DAC 数字模块复位 |
| 0 – 不复位 |
| 1 – 复位 DAC 数字模块(默认) |
寄存器 0X01 – 时钟管理,默认值 0000 0000
位名称 | 位描述 |
---|
MCLK_SEL 7 | MCLK 输入选择 |
| 0 – 来自 MCLK(默认) |
| 1 – 来自 BCLK |
MCLK_INV 6 | MCLK 反相控制 |
| 0 – 正常 MCLK(默认) |
| 1 – MCLK 反相 |
MCLK_ON 5 | MCLK 输入控制 |
| 0 – MCLK 关闭(默认) |
| 1 – MCLK 打开 |
BCLK_ON 4 | SDP 位时钟控制 |
| 0 – BCLK 关闭(默认) |
| 1 – BCLK 打开 |
CLKADC_ON 3 | ADC 数字时钟控制 |
| 0 – clk_adc 关闭(默认) |
| 1 – clk_adc 打开 |
CLKDAC_ON 2 | DAC 数字时钟控制 |
| 0 – clk_dac 关闭(默认) |
| 1 – clk_dac 打开 |
ANACLKADC_ON 1 | ADC 模拟时钟控制 |
| 0 – anaclk_adc 关闭 |
| 1 – anaclk_adc 打开(默认) |
ANACLKDAC_ON 0 | DAC 模拟时钟控制 |
| 0 – anaclk_dac 关闭 |
| 1 – anaclk_dac 打开(默认) |
寄存器 0X02 – 时钟管理,默认值 0000 0000
位名称 | 位描述 |
---|
DIV_PRE 7:5 | 预分频 MCLK 控制 |
| Mclk_prediv = mclk / (DIV_PRE + 1) |
| MULT_PRE 4:3 |
| 0 – dig_mclk = mclk_prediv * 1(默认) |
| 1 – dig_mclk = mclk_prediv * 2 |
| 2 – dig_mclk = mclk_prediv * 4 |
| 3 – dig_mclk = mclk_prediv * 8 |
PATHSEL 2 | 时钟倍频器路径选择 |
| 0 – 无 DFF 路径(默认) |
| 1 – DFF 路径 |
DELYSEL 1:0 | 时钟倍频器延迟单元选择 |
| 0 – 5ns(默认) |
| 1 – 10ns |
| 2 – 15ns |
| 3 – 15ns |
寄存器 0X03 – 时钟管理,默认值 0001 0000
位名称 | 位描述 |
---|
ADC_FSMODE 6 | ADC 采样率模式 |
| 0 – 单速(默认) |
| 1 – 双速 |
ADC_OSR 5:0 | ADC Δ-Σ过采样率 注:ΣΔ是高精度、低噪声 ADC/DAC 的主流技术 |
| 0~14 – 不使用 |
| 15 – 60 * fs (ss) / (ds 不支持) |
| 16 – 64 * fs (ss) / 32 * fs (ds)(默认) |
| … |
| 31 – 124 * fs (ss) / 62 * fs (ds) |
| 32 – 128 * fs (ss) / 64 * fs (ds) |
| … |
| 63 – 252 * fs (ss) / 126 * fs (ds) |
寄存器 0X04 – 时钟管理,默认值 0001 0000
位名称 | 位描述 |
---|
DAC_OSR 6:0 | DAC 过采样率 |
| 0~15 – 不使用 |
| 16 – 64 * fs(默认) |
| 17 – 68 * fs |
| … |
| 32 – 128 * fs |
| 64 – 256 * fs |
| … |
| 127 – 508 * fs |
寄存器 0X05 – 时钟管理,默认值 0000 0000
位名称 | 位描述 |
---|
DIV_CLKADC 7:4 | ADC_MCLK 时钟分频器 |
| adc_mclk = dig_mclk / (DIV_CLKADC + 1) |
DIV_CLKDAC 3:0 | DAC_MCLK 时钟分频器 |
| dac_mclk = dig_mclk / (DIV_CLKDAC + 1) |
寄存器 0X06 – 时钟管理,默认值 0000 0011
位名称 | 位描述 |
---|
BCLK_CON 6 | 主模式下 BCLK 输出控制 |
| 0 – 正常持续的 BCLK 输出(默认) |
| 1 – 数据传输完成后停止 BCLK 输出 |
BCLK_INV 5 | BCLK 反相 |
| 0 – 正常(默认) |
| 1 – BCLK 反相 |
DIV_BCLK 4:0 | 主模式下 BCLK 分频器 |
| 0~19 – MCLK / (DIV_BCLK + 1)(默认值为 3) |
| 20 – MCLK / 22 |
| 21 – MCLK / 24 |
| 22 – MCLK / 25 |
| 23 – MCLK / 30 |
| 24 – MCLK / 32 |
| 25 – MCLK / 33 |
| 26 – MCLK / 34 |
| 27 – MCLK / 36 |
| 28 – MCLK / 44 |
| 29 – MCLK / 48 |
| 30 – MCLK / 66 |
| 31 – MCLK / 72 |
| 注:“MCLK”在此处指“MCLK 引脚”,当 MCLK_SEL = 0 时;指“BCLK 引脚”,当 MCLK_SEL = 1 时(参考寄存器 0x01[7]) |
寄存器 0X07 – 时钟管理,默认值 0000 0000
位名称 | 位描述 |
---|
TRI_BLRCK 5 BCLK/LRCK 三态控制 | 0 – 正常(默认) |
| 1 – BCLK 和 LRCK 三态输出 |
TRI_ADCDAT 4 | ADCDAT 三态控制 |
| 0 – 正常(默认) |
| 1 – ADCDAT 三态输出 |
DIV_LRCK[11:8] 3:0 | 主 LRCK 分频器高位 |
| LRCK(主)= MCLK / (LRCK_DIV + 1) |
| 注:“MCLK”在此处指“MCLK 引脚”,当 MCLK_SEL = 0 时;指“BCLK 引脚”,当 MCLK_SEL = 1 时(参考寄存器 0x01[7]) |
寄存器 0X08 – 时钟管理,默认值 1111 1111
位名称 | 位描述 |
---|
DIV_LRCK[7:0] 7:0 | 主 LRCK 分频器低位 |
| LRCK(主)= MCLK / (LRCK_DIV + 1) |
| DIV_LRCK = 0 时,LRCK 逻辑电平为高 |
| 注:“MCLK”在此处指“MCLK 引脚”,当 MCLK_SEL = 0 时;指“BCLK 引脚”,当 MCLK_SEL = 1 时(参考寄存器 0x01[7]) |
寄存器 0X09 – SDP,默认值 0000 0000
位名称 | 位描述 |
---|
SDP_IN_SEL 7 | SDP 输入数据选择 |
| 0 – 左声道数据到 DAC(默认) |
| 1 – 右声道数据到 DAC |
SDP_IN_MUTE 6 | SDP 输入静音 |
| 0 – 不静音(默认) |
| 1 – 静音 |
SDP_IN_LRP 5 | I2S,左对齐或右对齐模式: |
| 0 – 左右声道正常极性(默认) |
| 1 – 左右声道极性反转 |
DSP/PCM 模式: | 0 – MSB 在 LRCK 上升沿后的第二个 BCLK 上升沿可用(默认) |
| 1 – MSB 在 LRCK 上升沿后的第一个 BCLK 上升沿可用 |
SDP_IN_WL 4:2 | 0 – 24 位串行音频数据字长(默认) |
| 1 – 20 位串行音频数据字长 |
| 2 – 18 位串行音频数据字长 |
| 3 – 16 位串行音频数据字长 |
| 4 – 32 位串行音频数据字长 |
SDP_IN_FMT 1:0 | 0 – I2S 串行音频数据格式(默认) |
| 1 – 左对齐串行音频数据格式 |
| 2 – 保留 |
| 3 – DSP/PCM 模式串行音频数据格式 |
寄存器 0X0A – SDP,默认值 0000 0000
位名称 | 位描述 |
---|
SDP_OUT_MUTE 6 | SDP 输出静音 |
| 0 – 不静音(默认) |
| 1 – 静音 |
SDP_OUT_LRP 5 | I2S,左对齐或右对齐模式: |
| 0 – 左右声道正常极性(默认) |
| 1 – 左右声道极性反转 |
DSP/PCM 模式: | 0 – MSB 在 LRCK 上升沿后的第二个 BCLK 上升沿可用(默认) |
| 1 – MSB 在 LRCK 上升沿后的第一个 BCLK 上升沿可用 |
SDP_OUT_WL 4:2 | 0 – 24 位串行音频数据字长(默认) |
| 1 – 20 位串行音频数据字长 |
| 2 – 18 位串行音频数据字长 |
| 3 – 16 位串行音频数据字长 |
| 4 – 32 位串行音频数据字长 |
SDP_OUT_FMT 1:0 | 0 – I2S 串行音频数据格式(默认) |
| 1 – 左对齐串行音频数据格式 |
| 2 – 保留 |
| 3 – DSP/PCM 模式串行音频数据格式 |
寄存器 0X0B – 系统,默认值 0000 0000
位名称 | 位描述 |
---|
PWRUP_A 7:3 | 上电阶段 A |
| 031:21us232ms(LRCK=48kHz) |
| 031:23us253ms(LRCK=44.1kHz) |
| 031:120us1392ms(LRCK=8kHz) |
PWRUP_B[3:1] 2:0 | 上电阶段 B |
| 031:21us104ms (LRCK=48KHz) |
| 031:23us113ms (LRCK=44.1KHz) |
| 031:120us624ms (LRCK=8KHz) |
寄存器 0X0C – 系统,默认值 0010 0000
位名称 | 位描述 |
---|
PWRUP_B[0] 7 | 上电阶段 B |
| 031:21us104ms(LRCK=48kHz) |
| 031:23us113ms(LRCK=44.1kHz) |
| 031:120us624ms(LRCK=8kHz) |
PWRUP_C 6:0 | 上电阶段 C |
| 031:21us234ms(LRCK=48kHz) |
| 031:23us254ms(LRCK=44.1kHz) |
| 031:120us1401ms(LRCK=8kHz) |
寄存器 0X10 – 系统,默认值 0001 0011
位名称 | 位描述 |
---|
SYNCMODE 7 | 0 – 正常(默认) |
| 1 – 同步模式 |
VMIDLOW 6:5 | 0 – vmid = vdda/2(默认) |
| 1 – vmid = vdda/2 - 75mV |
| 2 – vmid = vdda/2 - 145mV |
| 3 – vmid = vdda/2 - 175mV |
DAC_IBIAS_SW 4 | 0 – 正常 DAC 偏置设置 |
| 1 – 较高的 DAC 偏置设置(默认) |
IBIAS_SW 3:2 | 0 – 偏置设置级别 0(默认) |
| 1 – 偏置设置级别 1 |
| 2 – 偏置设置级别 2 |
| 3 – 偏置设置级别 3(最高偏置) |
VX2OFF 1 | 0 – 启用内部参考电压倍增器 |
| 1 – 关闭(默认) |
VX1SEL 0 | 0 – vx1 = 1.45V |
| 1 – vx1 = 1.65V(默认) |
寄存器 0X11 – 系统,默认值 0111 1100
寄存器 0X13 – 系统,默认值 0100 0000
位名称 | 位描述 |
---|
HPSW 4 | 0 – 默认为线路输出驱动(默认) |
| 1 – 启用输出到耳机驱动 |
寄存器 0X16 – ADC,默认值 0000 0100
位名称 | 位描述 |
---|
ADC_SYNC 5 | 与 LRCK 同步滤波器计数器 |
| 0 – 非标准音频时钟 |
| 1 – 标准音频时钟 |
ADC_INV 4 | ADC 极性反转 |
| 0 – 正常 |
| 1 – 反转 |
ADC_RAMCLR 3 | 当 LRCK/ADC_MCLK 激活时清除 ADC RAM |
ADC_SCALE 2:0 | ADC 增益提升 |
| 0 – 0dB |
| 1 – 6dB |
| 2 – 12dB |
| 3 – 18dB |
| 4 – 24dB(默认) |
| 5 – 30dB |
| 6 – 36dB |
| 7 – 42dB |
寄存器 0X1B – ADC,默认值 0000 1100
位名称 | 位描述 |
---|
ADC_AUTOMUTE_VOL 7:5 | ADC 自动静音输出增益选择 |
| 输出增益 = ADC_AUTOMUTE_VOL * -4dB |
| 0 – 静音到 0dB |
| …… |
| -4dB/步 |
| 7 – 静音到 -28dB |
ADC_HPFS1 4:0 | ADC 高通滤波器第一级系数 |
寄存器 0X1C – ADC,默认值 0100 1100
位名称 | 位描述 |
---|
ADC_EQBYPASS 6 | ADC 等效器旁路 |
| 0 – 正常 |
| 1 – 旁路(默认) |
ADC_HPF 5 | ADC 偏移冻结 |
| 0 – 冻结偏移 |
| 1 – 动态高通滤波器 |
ADC_HPFS2 4:0 | ADC 高通滤波器第二级系数 |
寄存器 0X31 – DAC,默认值 0000 0000
位名称 | 位描述 |
---|
DAC_DSMMUTE_TO 7 | DAC DSM 静音目标 |
| 0 – 静音到 8(默认) |
| 1 – 静音到 7/9 |
DAC_DSMMUTE 6 | DAC DSM 静音控制 |
| 0 – 不静音(默认) |
| 1 – 静音 |
DAC_DEMMUTE 5 | DAC DEM 静音控制 |
| 0 – 不静音(默认) |
| 1 – 静音 |
DAC_INV 4 | DAC 数据反相控制 |
| 0 – 数据不反相(默认) |
| 1 – 数据 180 度反相 |
DAC_RAMCLR 3 | 当 LRCK/DAC_MCLK 激活时清除 DAC RAM |
| 0 – 正常(默认) |
| 1 – 清除 RAM |
| DAC_DSMDITH_OFF 2 |
| 0 – 抖动开启(默认) |
| 1 – 抖动关闭 |
寄存器 0X32 – DAC,默认值 0000 0000
位名称 | 位描述 |
---|
DAC_VOLUME 7:0 | DAC 音量 |
| 0x00 – -95.5dB(默认) |
| 0x01 – -95.0dB |
| …… |
| 0.5dB/步 |
| 0xBE – -0.5dB |
| 0xBF – 0dB |
| 0xC0 – +0.5dB |
| …… |
| 0xFF – +32dB |
| 当 DRC 打开时,DAC_VOLUME = MAXGAIN |
寄存器 0X33 – DAC,默认值 0000 0000
位名称 | 位描述 |
---|
DAC_OFFSET 7:0 | DAC 偏移量 |
寄存器 0X34 – DAC,默认值 0000 0000
位名称 | 位描述 |
---|
DRC_EN 7 | DAC 数据范围控制使能 |
| 0 – 禁用 DRC(默认) |
| 1 – 启用 DRC |
DRC_WINSIZE 3:0 | DRC 计数器窗口大小 |
| DRC_WINSIZE = [DRC_WINSIZE] |
| 0 – 0.25dB/2LRCK(默认) |
| 1 – 0.25dB/4LRCK |
| …… |
| 15 – 0.25dB/65536LRCK |
寄存器 0X35 – DAC,默认值 0000 0000
位名称 | 位描述 |
---|
DRC_MAXLEVEL 7:4 | DRC 目标最大电平 |
| 0 – -30.1dB(默认) |
| 1 – -24.1dB |
| 2 – -20.6dB |
| 3 – -18.1dB |
| 4 – -16.1dB |
| 5 – -14.5dB |
| 6 – -13.2dB |
| 7 – -12.0dB |
| 8 – -11.0dB |
| 9 – -10.1dB |
| 10 – -9.3dB |
| 11 – -8.5dB |
| 12 – -7.8dB |
| 13 – -7.2dB |
| 14 – -6.6dB |
| 15 – -6.0dB |
DRC_MINLEVEL 3:0 | DRC 目标最小电平 |
| 0 – -30.1dB(默认) |
| 1 – -24.1dB |
| 2 – -20.6dB |
| 3 – -18.1dB |
| 4 – -16.1dB |
| 5 – -14.5dB |
| 6 – -13.2dB |
| 7 – -12.0dB |
| 8 – -11.0dB |
| 9 – -10.1dB |
| 10 – -9.3dB |
| 11 – -8.5dB |
| 12 – -7.8dB |
| 13 – -7.2dB |
| 14 – -6.6dB |
| 15 – -6.0dB |
寄存器 0X36 – DAC,默认值 0000 0000
(注:文档中未提供具体描述内容)
寄存器 0X37 – DAC,默认值 0000 1000
位名称 | 位描述 |
---|
DAC_RAMPRATE 7:4 | DAC VC/DRC 斜率 |
| 0 – 禁用软斜率(默认) |
| 1 – 0.25dB/4LRCK |
| 2 – 0.25dB/8LRCK |
| 3 – 0.25dB/16LRCK |
| 4 – 0.25dB/32LRCK |
| 5 – 0.25dB/64LRCK |
| 6 – 0.25dB/128LRCK |
| 7 – 0.25dB/256LRCK |
| 8 – 0.25dB/512LRCK |
| 9 – 0.25dB/1024LRCK |
| 10 – 0.25dB/2048LRCK |
| 11 – 0.25dB/4096LRCK |
| 12 – 0.25dB/8192LRCK |
| 13 – 0.25dB/16384LRCK |
| 14 – 0.25dB/32768LRCK |
| 15 – 0.25dB/65536LRCK |
DAC_EQBYPASS 3 | DAC 等效器旁路 |
| 0 – 启用(默认) |
| 1 – 旁路 |
寄存器 0X38 – DAC 等效器,默认值 0000 0000
位名称 | 位描述 |
---|
DACEQ_B0[29:24] | DAC 等效器 30 位 B0 系数 |
寄存器 0X39 – DAC 等效器,默认值 0000 0000
位名称 | 位描述 |
---|
DACEQ_B0[23:16] | DAC 等效器 30 位 B0 系数 |
寄存器 0X44 – GPIO,默认值 0000 0000
位名称 | 位描述 |
---|
ADC2DAC_SEL 7 | 将 ADC 数据发送到 DAC |
| 0 – 禁用(默认) |
| 1 – ADC 数据到 DAC |
ADCDAT_SEL 6:4 | ADCDAT 输出选择 |
| 0 – ADC + ADC(默认) |
| 1 – ADC + 0 |
| 2 – 0 + ADC |
| 3 – 0 + 0 |
| 4 – DACL + ADC |
| 5 – ADC + DACR |
| 6 – DACL + DACR |
| 7 – 无效 |
I2C_WL 3 | 内部使用 |
GPIO_SEL 2:0 | 内部使用 |