使LP模拟直通测试底噪

This commit is contained in:
FlyM 2026-04-24 21:09:33 +08:00
parent 3c03a1bdc7
commit f0ee23854e
12 changed files with 53879 additions and 54191 deletions

View File

@ -394,7 +394,7 @@ DAC硬件上的连接方式,可选的配置:
#define AUDIO_OUTPUT_WAY_DAC_IIS 6
#define AUDIO_OUTPUT_WAY_DONGLE 7
#define AUDIO_OUTPUT_WAY AUDIO_OUTPUT_WAY_DAC
#define LINEIN_INPUT_WAY LINEIN_INPUT_WAY_ADC //LINEIN_INPUT_WAY_ANALOG
#define LINEIN_INPUT_WAY LINEIN_INPUT_WAY_ANALOG //LINEIN_INPUT_WAY_ADC //LINEIN_INPUT_WAY_ANALOG
#define AUDIO_OUTPUT_AUTOMUTE 1//ENABLE
#define DAC_AUTO_HIGH_Z_EN 0 //DISABLE //处理直推串音问题, 隔直不要开
@ -751,6 +751,8 @@ DAC硬件上的连接方式,可选的配置:
#define TCFG_LINEIN_AD_CHANNEL NO_CONFIG_PORT // 检测IO是否使用AD检测
#define TCFG_LINEIN_VOLTAGE 0 // AD检测时的阀值
#define TCFG_LINEIN_INPUT_WAY LINEIN_INPUT_WAY
/* ADC linein/LP 采样前端 PGA: 0(-8dB)~15(+7dB), 8≈0dB, 步进约 1dB见 audio_adc.h可运行时 audio_linein_set_gain() */
#define TCFG_LINEIN_ADC_PGA_GAIN 1 //3
#define TCFG_LINEIN_MULTIPLEX_WITH_SD DISABLE // linein 检测与 SD cmd 复用
#define TCFG_LINEIN_SD_PORT 0// 0sd0 1sd1 //选择复用的sd口
#define TCFG_LINEIN_DETECT_ENABLE 1

View File

@ -99,31 +99,31 @@ static inline void __lp_way_analog_start()
app_audio_set_volume(__this->audio_state, __this->volume, 1);
if (!app_audio_get_volume(__this->audio_state))
{
audio_lp_mute(1); // 模拟输出时候dac为0也有数据
audio_linein_mute(1); // 模拟输出时候dac为0也有数据
}
if (TCFG_LP_LR_CH & (BIT(0) | BIT(1)))
{
audio_lp0_open(TCFG_LP_LR_CH, 1);
audio_linein0_open(TCFG_LP_LR_CH, 1);
}
else if (TCFG_LP_LR_CH & (BIT(2) | BIT(3)))
{
audio_lp1_open(TCFG_LP_LR_CH, 1);
audio_linein1_open(TCFG_LP_LR_CH, 1);
}
else if (TCFG_LP_LR_CH & (BIT(4) | BIT(5)))
{
audio_lp2_open(TCFG_LP_LR_CH, 1);
audio_linein2_open(TCFG_LP_LR_CH, 1);
}
if (TCFG_LP_LR_CH != AUDIO_LIN0_LR && TCFG_LP_LR_CH != AUDIO_LIN1_LR && TCFG_LP_LR_CH != AUDIO_LIN2_LR)
{
audio_lp_ch_combine(1, 1);
audio_linein_ch_combine(1, 1);
}
audio_lp_gain(1); // high gain
audio_linein_gain(1); // high gain
if (app_audio_get_volume(__this->audio_state))
{
audio_lp_mute(0);
audio_linein_mute(0);
app_audio_set_volume(__this->audio_state, app_audio_get_volume(__this->audio_state), 1); // 防止无法调整
}
// 模拟输出时候dac为0也有数据
@ -144,7 +144,7 @@ static inline void __lp_way_dac_analog_start()
if ((TCFG_LP_LR_CH == AUDIO_LIN_DACL_CH) || (TCFG_LP_LR_CH == AUDIO_LIN_DACR_CH))
{
audio_lp_via_dac_open(TCFG_LP_LR_CH, 1);
audio_linein_via_dac_open(TCFG_LP_LR_CH, 1);
}
else
{
@ -157,7 +157,7 @@ static inline void __lp_way_dac_analog_start()
/**@brief lp 使用采集adc输入方式
@param
@return
@note
@note PGA TCFG_LINEIN_ADC_PGA_GAIN #include "audio_enc.h" audio_linein_set_gain(0~15)
*/
/*----------------------------------------------------------------------------*/
static inline void __lp_way_adc_start()
@ -196,7 +196,7 @@ int lp_start(void)
#elif (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_ANALOG)
__this->volume = app_audio_get_volume(__this->audio_state);
log_info("current sys vol:%d\n", __this->volume);
__this->audio_state = APP_AUDIO_STATE_LP;
__this->audio_state = APP_AUDIO_STATE_LINEIN;
__lp_way_analog_start();
audio_dac_vol_mute_lock(1);
#ifndef CONFIG_MEDIA_NEW_ENABLE
@ -209,7 +209,7 @@ int lp_start(void)
#elif (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_DAC)
__this->volume = app_audio_get_volume(__this->audio_state);
log_info("current sys vol:%d\n", __this->volume);
__this->audio_state = APP_AUDIO_STATE_LP;
__this->audio_state = APP_AUDIO_STATE_LINEIN;
__lp_way_dac_analog_start();
audio_dac_vol_mute_lock(1);
@ -249,15 +249,15 @@ void lp_stop(void)
if (TCFG_LP_LR_CH & (BIT(0) | BIT(1)))
{
audio_lp0_close(TCFG_LP_LR_CH, 0);
audio_linein0_close(TCFG_LP_LR_CH, 0);
}
else if (TCFG_LP_LR_CH & (BIT(2) | BIT(3)))
{
audio_lp1_close(TCFG_LP_LR_CH, 0);
audio_linein1_close(TCFG_LP_LR_CH, 0);
}
else if (TCFG_LP_LR_CH & (BIT(4) | BIT(5)))
{
audio_lp2_close(TCFG_LP_LR_CH, 0);
audio_linein2_close(TCFG_LP_LR_CH, 0);
}
audio_dac_vol_mute_lock(0);
#ifndef CONFIG_MEDIA_NEW_ENABLE
@ -268,7 +268,7 @@ void lp_stop(void)
#endif
#elif (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_DAC)
audio_lp_via_dac_close(TCFG_LP_LR_CH, 0);
audio_linein_via_dac_close(TCFG_LP_LR_CH, 0);
audio_dac_vol_mute_lock(0);
#ifndef CONFIG_MEDIA_NEW_ENABLE
#if AUDIO_OUTPUT_AUTOMUTE

View File

@ -11,6 +11,10 @@
#include "dev_manager.h"
#include "audio_track.h"
#ifndef TCFG_LINEIN_ADC_PGA_GAIN
#define TCFG_LINEIN_ADC_PGA_GAIN 3
#endif
#define LADC_MIC_BUF_NUM 2
#define LADC_MIC_CH_NUM 1
#define LADC_MIC_IRQ_POINTS 256
@ -638,7 +642,7 @@ void *linein_sample_open(u8 source, u16 sample_rate)
#else
/* [修改] LP用AUDIO_LIN2_LR无声音: 传入source让audio_linein_open使用正确通道老代码不传source */
/* if (audio_linein_open(&linein->linein_ch, sample_rate, 3) == 0) { // 老: 未传通道内部用TCFG_LINEIN_LR_CH */
if (audio_linein_open(&linein->linein_ch, sample_rate, 3, source) == 0) {
if (audio_linein_open(&linein->linein_ch, sample_rate, TCFG_LINEIN_ADC_PGA_GAIN, source) == 0) {
linein->sample_output.handler = linein_sample_output_handler;
linein->sample_output.priv = linein;
linein->channel_num = get_audio_linein_ch_num();

Binary file not shown.

Binary file not shown.

View File

@ -3614,10 +3614,13 @@ objs/apps/soundbox/task_manager/linein/linein_api.c.o
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_volume_set,pl
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,app_audio_set_volume,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,log_print,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,audio_linein_mute,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_start,pl
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,app_audio_get_volume,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,audio_dac_vol_mute_lock,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,mix_out_automute_skip,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_stop,pl
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_dec_close,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,audio_linein0_close,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_volume_pp,pl
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_get_status,pl
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_tone_play_callback,pl
@ -3628,7 +3631,9 @@ objs/apps/soundbox/task_manager/linein/linein_api.c.o
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,tone_get_status,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,tone_play_by_path,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_key_vol_down,pl
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,linein_dec_open,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,app_audio_state_switch,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,audio_linein0_open,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,audio_linein_gain,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,log_tag_const_i_APP_LINEIN,l
-r=objs/apps/soundbox/task_manager/linein/linein_api.c.o,tone_table,l
objs/apps/soundbox/task_manager/linein/linein_dev.c.o
@ -3703,11 +3708,14 @@ objs/apps/soundbox/task_manager/lp/lp_api.c.o
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_volume_set,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,app_audio_set_volume,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,log_print,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,audio_linein_mute,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_start,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,printf,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,app_audio_get_volume,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,audio_dac_vol_mute_lock,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,mix_out_automute_skip,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,printf,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_stop,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,linein_dec_close,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,audio_linein2_close,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_volume_pp,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_get_status,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_tone_play_callback,pl
@ -3718,8 +3726,9 @@ objs/apps/soundbox/task_manager/lp/lp_api.c.o
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,tone_get_status,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,tone_play_by_path,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_key_vol_down,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,linein_dec_open,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,puts,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,app_audio_state_switch,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,audio_linein2_open,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,audio_linein_gain,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,log_tag_const_i_APP_LP,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,tone_table,l
objs/apps/soundbox/task_manager/music/music.c.o
@ -8781,6 +8790,20 @@ include_lib/liba/br23/media.a.llvm.1890752.audio_wireless_sync.c
-r=include_lib/liba/br23/media.a.llvm.1890752.audio_wireless_sync.c,CONFIG_BTCTLER_TWS_ENABLE,l
-r=include_lib/liba/br23/media.a.llvm.1890752.audio_wireless_sync.c,jiffies,l
-r=include_lib/liba/br23/media.a.llvm.1890752.audio_wireless_sync.c,jiffies_unit,l
include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein0_open,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein0_close,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein1_open,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein1_close,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein2_open,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein2_close,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein_via_dac_open,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein_via_dac_close,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein_mute,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein_gain,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein_bias,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein_amux_bias,pl
-r=include_lib/liba/br23/media.a.llvm.1969040.audio_linein.c,audio_linein_ch_combine,pl
include_lib/liba/br23/media.a.llvm.1981000.audio_src.c
-r=include_lib/liba/br23/media.a.llvm.1981000.audio_src.c,audio_hw_src_open,pl
-r=include_lib/liba/br23/media.a.llvm.1981000.audio_src.c,audio_src_base_open,l

File diff suppressed because it is too large Load Diff