This commit is contained in:
Steven Dan
2026-05-07 10:17:07 +08:00
parent 3ebd834450
commit 85e8bf04f0
2 changed files with 11 additions and 3 deletions

View File

@@ -38,7 +38,7 @@ endif()
# Firmware version (maps to BCD_DEVICE_J.M.N in USB descriptor) # Firmware version (maps to BCD_DEVICE_J.M.N in USB descriptor)
set(FW_VER_J 1) set(FW_VER_J 1)
set(FW_VER_M 1) set(FW_VER_M 1)
set(FW_VER_N 14) set(FW_VER_N 15)
set(FW_VERSION "v${FW_VER_J}.${FW_VER_M}.${FW_VER_N}") set(FW_VERSION "v${FW_VER_J}.${FW_VER_M}.${FW_VER_N}")
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -Os set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -Os

View File

@@ -287,6 +287,7 @@ static inline i2c_regop_res_t NAU88C22_REGWRITE(unsigned reg, unsigned val, clie
} }
else else
{ {
debug_printf("I2C write success: reg=%08x, val=%08x\n", reg, val);
//debug_printf("I2C write success: reg="); //debug_printf("I2C write success: reg=");
//printhex(reg); //printhex(reg);
//debug_printf(", val="); //debug_printf(", val=");
@@ -1249,8 +1250,15 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
mic_det_muted = 0; mic_det_muted = 0;
// 恢复音量但如果用户手动mute了则不恢复 // 恢复音量但如果用户手动mute了则不恢复
if (!flag_mic_mute) { if (!flag_mic_mute) {
mic_volume(codec_adc_pga_gain_reg_value); // 改动原因(关键修复):
debug_printf("mic_det: unmute -> pga=%d\n", codec_adc_pga_gain_reg_value); // codec_adc_pga_gain_reg_value 在当前版本保存的是 49级HID音量等级(0~48)不是Codec寄存器原始值。
// 这里之前直接写 mic_volume(codec_adc_pga_gain_reg_value) 会绕过统一映射逻辑,
// 造成“插拔后恢复增益”与“旋钮/HID设置增益”不一致表现为录音音量异常偏小/不稳定)。
// 必须与其它路径保持一致,先做 HID->Codec PGA 映射再写寄存器。
unsigned codec_gain = mic_hid_level_to_codec_gain(codec_adc_pga_gain_reg_value);
mic_volume(codec_gain);
debug_printf("mic_det: unmute -> hid=%d codec_pga=%d\n",
codec_adc_pga_gain_reg_value, codec_gain);
} }
} else if (mic_det_cmd == MIC_DET_DAC_MUTE) { } else if (mic_det_cmd == MIC_DET_DAC_MUTE) {
dac_det_muted = 1; dac_det_muted = 1;