ES8388 音量小,求助音量优化经验
Posted: Mon Dec 19, 2022 9:37 am
场景1:
用两个ESP32 WROVER 模块配合MAX98357 和INMP441 利用I2S 搭了一对对讲机, 4欧3W的喇叭,
I2S 8K+32位采样 ,编码为8位数据通过ESMP NOW传递,每个包248 字节, 互相通话声音很清晰, 而且音量挺大
.sample_rate = 8000,
.bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT,
.channel_format = I2S_CHANNEL_FMT_ONLY_RIGHT,
.communication_format = I2S_COMM_FORMAT_STAND_I2S,
.dma_buf_count = 2,
.dma_buf_len = 256,
.use_apll = false,
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1};
=========================================================================
场景2
用ESP32 WROVER 模块配合ES8388 又做了一套系统,板子可以正常接收场景1模块发出的ESP NOW音频数据, 但是接收到的说话的语音音量很小,但是这套系统用ADF里的蓝牙播放例程播放音乐声音却很大很清晰,可以用手机正常控制音量,
于是尝试把代码写入官方的LyraT Mini 板子, 同样的4欧3W的喇叭, 音量也是跟ES8388播放的一样非常小
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL24, 0x0x21); // Set L1 R1 L2 R2 volume. 0x00: -30dB, 0x1E: 0dB, 0x21: 3dB
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL25, 0x0x21);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL26, 0x0x21);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL27, 0x0x21);
res |= es8388_set_adc_dac_volume(ES_MODULE_DAC, 0, 0);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL5, reg);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL4, reg);
问题:
(1)1S8388的音量控制除了以上的寄存器是否还存在其他参数?
(2)尝试了用custom board的形式自定义开发板,理论上寄存器配置应该和蓝牙例程用的一致,为什么蓝牙播放音量这么大,ESPNOW接收的音量却小了(发射源应该没有问题, 因为另一套板子ESPNOW +I2S MAX98357接收到解析出来的声音也很大)
用两个ESP32 WROVER 模块配合MAX98357 和INMP441 利用I2S 搭了一对对讲机, 4欧3W的喇叭,
I2S 8K+32位采样 ,编码为8位数据通过ESMP NOW传递,每个包248 字节, 互相通话声音很清晰, 而且音量挺大
.sample_rate = 8000,
.bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT,
.channel_format = I2S_CHANNEL_FMT_ONLY_RIGHT,
.communication_format = I2S_COMM_FORMAT_STAND_I2S,
.dma_buf_count = 2,
.dma_buf_len = 256,
.use_apll = false,
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1};
=========================================================================
场景2
用ESP32 WROVER 模块配合ES8388 又做了一套系统,板子可以正常接收场景1模块发出的ESP NOW音频数据, 但是接收到的说话的语音音量很小,但是这套系统用ADF里的蓝牙播放例程播放音乐声音却很大很清晰,可以用手机正常控制音量,
于是尝试把代码写入官方的LyraT Mini 板子, 同样的4欧3W的喇叭, 音量也是跟ES8388播放的一样非常小
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL24, 0x0x21); // Set L1 R1 L2 R2 volume. 0x00: -30dB, 0x1E: 0dB, 0x21: 3dB
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL25, 0x0x21);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL26, 0x0x21);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL27, 0x0x21);
res |= es8388_set_adc_dac_volume(ES_MODULE_DAC, 0, 0);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL5, reg);
res |= es_write_reg(ES8388_ADDR, ES8388_DACCONTROL4, reg);
问题:
(1)1S8388的音量控制除了以上的寄存器是否还存在其他参数?
(2)尝试了用custom board的形式自定义开发板,理论上寄存器配置应该和蓝牙例程用的一致,为什么蓝牙播放音量这么大,ESPNOW接收的音量却小了(发射源应该没有问题, 因为另一套板子ESPNOW +I2S MAX98357接收到解析出来的声音也很大)