目录
前言
最近因任务需求,需要将一款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:接耳机的左/右声道进行测试。
———————————————————————————————————————————
———————————————————————————————————————————
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,如下图
![](https://i-blog.csdnimg.cn/blog_migrate/c5f2656ae86519cb6b6fa4e5c896edfb.png)
———————————————————————————————————————————
回环测试
回环测试可以验证,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,可以使用耳机测试。