目录

前言

ES8311 codec芯片介绍

调通的配置

软件配置

ID 验证

回环测试

注意事项:


前言

最近因任务需求,需要将一款codec 芯片配合TTS调通,做某款云喇叭播放设备。

这款codec的驱动已经适配过多次,但在此系统上却是第一次调试,谨做记录。

ES8311 codec芯片介绍

System
High performance and low power multi-bit delta-sigma audio ADC and DAC
• I2S/PCM master or slave serial data port
• 256/384Fs, USB 12/24 MHz and other non standard audio system clocks
• I2C interface

ADC
• 24-bit, 8 to 96 kHz sampling frequency
• 100 dB signal to noise ratio, -93 dB THD+N
• One pair of analog input with differential input option
• Low noise pre-amplifier
• Noise reduction filters
• Auto level control (ALC) and noise gate
• Support analog and digital microphone

DAC
• 24-bit, 8 to 96 kHz sampling frequency
• 110 dB signal to noise ratio, -80 dB THD+N
• One pair of analog output with headphone driver and differential output option
• Dynamic range compression
• Pop and click noise suppression
Low Power
• 1.8V to 3.3V operation
• 14 mW playback and record
• Low standby current

以上摘自ES8311的芯片手册。这里重点关注几个地方:

1. 播放和录音的最大功率为14mW。这意味着直接接喇叭可能带不动,笔者也是在这里遇到了问题,最后将喇叭的P接到耳机的 [左/右] 声道进行测试的。

2. 供电电平1.8-3.3v。注意这里是一个宽容性较大的电压范围,要保持供数字电电压等级、I2C的上拉电压、保持一致,否侧影响通信。

调通的配置

目前使用这款codec调通了播放,录音没有测试。

当前配置:

8K 采样率、16bit采样深度、单通道输出、1.8v通信逻辑电平、mclk为256fs(默认256倍,可调)。

从机地址:0x18(7bit)

pin2,MCLK:2.048MHz

pin3,PVDD、pin4,DVDD:1.8V

pin6,SCLK:位时钟,256KHz

pin8,LRCLK:左右声道指示信号,等于采样率。8KHz

pin12,OUTP:接耳机的左/右声道进行测试。

———————————————————————————————————————————

ES8311可以用来做声卡吗 es8316_采样率

———————————————————————————————————————————

Codec 初始化配置

{0x45, 0x00},
    {0x01, 0x30},
    {0x02, 0x10},
    {0x02, 0x00},
    {0x03, 0x10},
    {0x16, 0x24},
    {0x04, 0x10},
    {0x05, 0x00},
    {0x0B, 0x00},
    {0x0C, 0x00},
    {0x10, 0x1F},
    {0x11, 0x7F},
    {0x00, 0x80},
    {0x0D, 0x01},
    {0x01, 0x3F},
    {0x14, 0x10},
    {0x12, 0x00},
    {0x13, 0x00},
    {0x09, 0x0C},
    {0x0A, 0x0C},
    {0x0E, 0x02},
    {0x0F, 0x44},
    {0x15, 0x00},
    {0x1B, 0x0A},
    {0x1C, 0x6A},
    {0x37, 0x08},
    {0x44, 0x00}, //loopback test。on:0x88; off:0x00; mic-->speak
    {0x17, 0xBF}, //(0x17,ADC_Volume);
    {0x32, 0xBF}, //(0x32,DAC_Volume);

———————————————————————————————————————————

读取ID验证

一般判断从机是否启动,可以读取一些出厂的ID,如下图


ES8311可以用来做声卡吗 es8316_寄存器_02

ES8311 ID 寄存器

———————————————————————————————————————————

回环测试

回环测试可以验证,codec 是否能正常工作。

原理:将mic捕捉到的声音,直接通过spk输出出来。

这里通过写 0x44,0x88,打开回环测试的开关。

———————————————————————————————————————————

注意事项:

1. 检查数字供电、I2C的逻辑电平已经寄存器配置的逻辑电平(0x10和0x11寄存器),这几个需要保持一致。

2. 读取ID, 确保codec 芯片启动正常。

3. 工作模式【I2S或PCM】选择(0x09)、采样位深配置(0x09和0x0A),需要配置正确。

4. 主从模式,codec一般作为SOC的从机,需要将codec配置为从机slave模式(0x80)。

0x80寄存器:bit7,1: master(default); 0: slave

5. 最大功率输出较小,一般需要配合PA使用。如果没有PA,可以使用耳机测试。

满树玉瓣多傲然,江南烟雨却痴缠