wait codec config is done

This commit is contained in:
Steven Dan
2026-03-26 18:25:22 +08:00
parent 93a74910bf
commit 17ad9324de
3 changed files with 38 additions and 23 deletions

View File

@@ -79,7 +79,7 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_LIST_DIR}/../../lib_dnr/lib_dnr)
set(APP_COMPILER_FLAGS_f5_music_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2
-DI2S_CHANS_ADC=2
-DAUDIO_CLASS=1
-DAUDIO_CLASS=1
-DMIN_FREQ=48000
-DMAX_FREQ=48000
-DUAC1_MODE=1
@@ -154,7 +154,7 @@ set(APP_COMPILER_FLAGS_f1_music_uac2 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC
-DMIN_VOLUME=0xE000
-DINPUT_VOLUME_CONTROL=1
-DOUTPUT_VOLUME_CONTROL=1
-DDEBUG_MEMORY_LOG_ENABLED=1
#-DDEBUG_MEMORY_LOG_ENABLED=1
-DXUA_DFU_EN=1
#-DIR_SWITCHING_MODE
-DHID_CONTROLS=1)

View File

@@ -113,7 +113,7 @@
#if defined(F1_MUSIC_UAC2)
#define MCLK_441 (1024*44100) /* 44.1, 88.2 etc */
#else
#define MCLK_441 (256*48000) /* 44.1, 88.2 etc */
#define MCLK_441 (256*44100) /* 44.1, 88.2 etc */
#endif
#endif

View File

@@ -743,27 +743,41 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol,
c_audiohw_rx :> new_dsd_mode;
debug_printf("SampRate->tile0: %uHz dsd=%u\n", new_samfreq, new_dsd_mode);
switch (new_samfreq) {
case 192000:
case 176400:
unsafe { NAU88C22_REGWRITE(0x0003, 0x00D0, (client interface i2c_master_if)i_i2c_client); }
unsafe { NAU88C22_REGWRITE(0x002B, 0x4000, (client interface i2c_master_if)i_i2c_client); }
unsafe { NAU88C22_REGWRITE(0x002C, 0x0082, (client interface i2c_master_if)i_i2c_client); }
break;
case 96000:
case 88200:
unsafe { NAU88C22_REGWRITE(0x0003, 0x0092, (client interface i2c_master_if)i_i2c_client); }
unsafe { NAU88C22_REGWRITE(0x002B, 0x4001, (client interface i2c_master_if)i_i2c_client); }
unsafe { NAU88C22_REGWRITE(0x002C, 0x0082, (client interface i2c_master_if)i_i2c_client); }
break;
case 44100:
case 48000:
default:
unsafe { NAU88C22_REGWRITE(0x0003, 0x0053, (client interface i2c_master_if)i_i2c_client); }
unsafe { NAU88C22_REGWRITE(0x002B, 0x4002, (client interface i2c_master_if)i_i2c_client); }
unsafe { NAU88C22_REGWRITE(0x002C, 0x0082, (client interface i2c_master_if)i_i2c_client); }
break;
unsafe {
switch (new_samfreq) {
case 192000:
case 176400:
NAU88C22_REGWRITE(0x0003, 0x00D0, (client interface i2c_master_if)i_i2c_client);
NAU88C22_REGWRITE(0x002B, 0x4000, (client interface i2c_master_if)i_i2c_client);
NAU88C22_REGWRITE(0x002C, 0x0082, (client interface i2c_master_if)i_i2c_client);
break;
case 96000:
case 88200:
NAU88C22_REGWRITE(0x0003, 0x0092, (client interface i2c_master_if)i_i2c_client);
NAU88C22_REGWRITE(0x002B, 0x4001, (client interface i2c_master_if)i_i2c_client);
NAU88C22_REGWRITE(0x002C, 0x0082, (client interface i2c_master_if)i_i2c_client);
break;
case 44100:
case 48000:
default:
NAU88C22_REGWRITE(0x0003, 0x0053, (client interface i2c_master_if)i_i2c_client);
NAU88C22_REGWRITE(0x002B, 0x4002, (client interface i2c_master_if)i_i2c_client);
NAU88C22_REGWRITE(0x002C, 0x0082, (client interface i2c_master_if)i_i2c_client);
break;
}
#if 0
unsigned val;
NAU88C22_REGREAD(0x0003, val, (client interface i2c_master_if)i_i2c_client);
debug_printf("NAU88C22_REGREAD(0x0003): 0x%08x\n", val);
NAU88C22_REGREAD(0x002B, val, (client interface i2c_master_if)i_i2c_client);
debug_printf("NAU88C22_REGREAD(0x002B): 0x%08x\n", val);
NAU88C22_REGREAD(0x002C, val, (client interface i2c_master_if)i_i2c_client);
debug_printf("NAU88C22_REGREAD(0x002C): 0x%08x\n", val);
#endif
}
c_audiohw_rx <: 0xff;
#if HID_CONTROLS > 0
g_hid_status_report_data[0] = 0x77;
@@ -1635,4 +1649,5 @@ void AudioHwConfig(unsigned samFreq, unsigned mClk, unsigned dsdMode, unsigned s
debug_printf("don't unmute at boot\n");
}
unsafe {uc_audiohw :> dsdMode; }
}