mic gain logic
This commit is contained in:
@@ -38,7 +38,7 @@ endif()
|
||||
# Firmware version (maps to BCD_DEVICE_J.M.N in USB descriptor)
|
||||
set(FW_VER_J 1)
|
||||
set(FW_VER_M 1)
|
||||
set(FW_VER_N 4)
|
||||
set(FW_VER_N 5)
|
||||
set(FW_VERSION "v${FW_VER_J}.${FW_VER_M}.${FW_VER_N}")
|
||||
|
||||
set(SW_USB_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} -Os
|
||||
@@ -94,8 +94,8 @@ set(APP_COMPILER_FLAGS_f5_music_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC
|
||||
-DNUM_USB_CHAN_OUT=8
|
||||
-DNUM_USB_CHAN_OUT_FS=2
|
||||
-DNUM_USB_CHAN_IN=2
|
||||
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=24
|
||||
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=24
|
||||
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
|
||||
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
|
||||
-DINPUT_FORMAT_COUNT=1
|
||||
-DOUTPUT_FORMAT_COUNT=1
|
||||
#-DNUM_EX3D_CHAN_OUT=2
|
||||
@@ -204,6 +204,10 @@ set(APP_COMPILER_FLAGS_f6_f7_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
|
||||
-DMAX_FREQ=48000
|
||||
-DMCLK_441=512*44100
|
||||
-DMCLK_48=512*48000
|
||||
-DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=16
|
||||
-DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=16
|
||||
-DINPUT_FORMAT_COUNT=1
|
||||
-DOUTPUT_FORMAT_COUNT=1
|
||||
-DUAC1_MODE=1
|
||||
-DUSE_EX3D=1
|
||||
-DF6_F7_FPS_UAC1=1
|
||||
|
||||
@@ -169,7 +169,7 @@ void board_setup()
|
||||
|
||||
// tile 0
|
||||
// called on tile 0 - start
|
||||
#define NAU88L21_PGA_GAIN_REG_MIN_USED_VALUE 0x1 // 0x1=1, 0dB (0x0, -1dB which is not used in this design)
|
||||
#define NAU88L21_PGA_GAIN_REG_MIN_USED_VALUE 0x0 // 0x1=1, 0dB (0x0, -1dB which is not used in this design)
|
||||
#define NAU88L21_PGA_GAIN_REG_MAX_VALUE 0x25+1 // 0x25=37, 36dB. +1 is for extra 1.5dB digital gain
|
||||
#define NAU88L21_PGA_GAIN_REG_DEFAULT_VALUE (NAU88L21_PGA_GAIN_REG_MAX_VALUE)
|
||||
|
||||
@@ -219,7 +219,7 @@ void dac_volume(signed level)
|
||||
|
||||
void mic_volume(unsigned level)
|
||||
{
|
||||
if (level == 0 || level == 1)
|
||||
if (level == 0)
|
||||
{
|
||||
// mute: 关闭PGA和输出放大器
|
||||
unsafe {NAU88C22_REGWRITE(0x007E, 0, (client interface i2c_master_if)i_i2c_client);}
|
||||
@@ -601,7 +601,7 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
// 从 Flash 恢复 mic/dac 音量
|
||||
{
|
||||
unsigned char saved_mic = load_value(mic_vol_path);
|
||||
if(saved_mic <= NAU88L21_PGA_GAIN_REG_MAX_VALUE)
|
||||
if(saved_mic >= NAU88L21_PGA_GAIN_REG_MIN_USED_VALUE && saved_mic <= NAU88L21_PGA_GAIN_REG_MAX_VALUE)
|
||||
codec_adc_pga_gain_reg_value = saved_mic;
|
||||
else
|
||||
save_value(mic_vol_path, (unsigned char)codec_adc_pga_gain_reg_value); // 出厂默认22(21dB)
|
||||
@@ -1581,11 +1581,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
if((codec_adc_pga_gain_reg_value < NAU88L21_PGA_GAIN_REG_MAX_VALUE) && (flag_mic_mute == 0)) {
|
||||
uint8_t old_led_count = mic_gain_to_led[codec_adc_pga_gain_reg_value];
|
||||
|
||||
// 从mute(0)跳到首个LED档位(3),跳过无LED的1-2档
|
||||
if (codec_adc_pga_gain_reg_value == 0)
|
||||
codec_adc_pga_gain_reg_value = 3;
|
||||
else
|
||||
++codec_adc_pga_gain_reg_value;
|
||||
|
||||
if (!mic_det_muted)
|
||||
mic_volume(codec_adc_pga_gain_reg_value);
|
||||
g_mic_volume_level = (codec_adc_pga_gain_reg_value <= 37) ? codec_adc_pga_gain_reg_value : 37;
|
||||
@@ -1604,11 +1601,8 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
|
||||
if((codec_adc_pga_gain_reg_value > 0) && (flag_mic_mute == 0)) {
|
||||
uint8_t old_led_count = mic_gain_to_led[codec_adc_pga_gain_reg_value];
|
||||
|
||||
// 减小音量:在首个LED档位(<=3)直接跳到mute(0),跳过无LED的1-2档
|
||||
if (codec_adc_pga_gain_reg_value <= 3)
|
||||
codec_adc_pga_gain_reg_value = 0;
|
||||
else
|
||||
--codec_adc_pga_gain_reg_value;
|
||||
|
||||
if (!mic_det_muted) {
|
||||
if (codec_adc_pga_gain_reg_value == 0)
|
||||
mic_volume(0);
|
||||
|
||||
@@ -89,15 +89,15 @@ const uint8_t led_d_physical_map[15] = {
|
||||
|
||||
const uint8_t mic_gain_to_led[39] = {
|
||||
0, // [-1] 增益-1: 0个LED,这个设计未启用
|
||||
0, // [0] 增益0: 0个LED
|
||||
0, // [1] 增益1: 0个LED
|
||||
0, // [2] 增益2: 0个LED
|
||||
1, // [0] 增益0: 0个LED
|
||||
1, // [1] 增益1: 0个LED
|
||||
1, // [2] 增益2: 0个LED
|
||||
1, // [3] 增益3: 1个LED
|
||||
1, // [4] 增益4: 1个LED
|
||||
1, // [5] 增益5: 1个LED
|
||||
2, // [4] 增益4: 1个LED
|
||||
2, // [5] 增益5: 1个LED
|
||||
2, // [6] 增益6: 2个LED
|
||||
2, // [7] 增益7: 2个LED
|
||||
2, // [8] 增益8: 2个LED
|
||||
3, // [8] 增益8: 2个LED
|
||||
3, // [9] 增益9: 3个LED
|
||||
3, // [10] 增益10: 3个LED
|
||||
3, // [11] 增益11: 3个LED
|
||||
|
||||
Reference in New Issue
Block a user