From 17ad9324de3326c66f74d70d9f5d6ab6b6bdde12 Mon Sep 17 00:00:00 2001 From: Steven Dan Date: Thu, 26 Mar 2026 18:25:22 +0800 Subject: [PATCH] wait codec config is done --- .../CMakeLists.txt | 4 +- .../src/core/xua_conf.h | 2 +- .../src/extensions/audiohw.xc | 55 ++++++++++++------- 3 files changed, 38 insertions(+), 23 deletions(-) diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt index d222bcf..c625303 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt @@ -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) diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/core/xua_conf.h b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/core/xua_conf.h index 3ac8d8a..6106473 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/core/xua_conf.h +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/core/xua_conf.h @@ -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 diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc index 4b87771..40ca12e 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc @@ -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; } }