• ES8311 - 音频编解码芯片调试


    目录

    前言

    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:接耳机的左/右声道进行测试。

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

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

    Codec 初始化配置

    1. {0x45, 0x00},
    2. {0x01, 0x30},
    3. {0x02, 0x10},
    4. {0x02, 0x00},
    5. {0x03, 0x10},
    6. {0x16, 0x24},
    7. {0x04, 0x10},
    8. {0x05, 0x00},
    9. {0x0B, 0x00},
    10. {0x0C, 0x00},
    11. {0x10, 0x1F},
    12. {0x11, 0x7F},
    13. {0x00, 0x80},
    14. {0x0D, 0x01},
    15. {0x01, 0x3F},
    16. {0x14, 0x10},
    17. {0x12, 0x00},
    18. {0x13, 0x00},
    19. {0x09, 0x0C},
    20. {0x0A, 0x0C},
    21. {0x0E, 0x02},
    22. {0x0F, 0x44},
    23. {0x15, 0x00},
    24. {0x1B, 0x0A},
    25. {0x1C, 0x6A},
    26. {0x37, 0x08},
    27. {0x44, 0x00}, //loopback test。on:0x88; off:0x00; mic-->speak
    28. {0x17, 0xBF}, //(0x17,ADC_Volume);
    29. {0x32, 0xBF}, //(0x32,DAC_Volume);

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

    读取ID验证

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

    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,可以使用耳机测试。

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

  • 相关阅读:
    海外代理IP如何找到靠谱的?
    人工智能在电力系统中的应用前景怎么样
    PHP 有趣的函数与功能
    java——类作为成员变量类型
    MySQL主从复制详细介绍
    LLaMA-Adapter源码解析
    ShaderLab实现序列帧动画
    【系统设计】邻近服务
    SpringAOP(面向切面编程)的使用和原理
    【微机原理与汇编语言】循环程序设计
  • 原文地址:https://blog.csdn.net/FANG_YISHAO/article/details/127772109