📄 triton_audio.c
字号:
{
UWORD8 auto_charge = 0x00;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
if (carkit_charge == AUDIO_CARKIT_CHARGE_AUTO)
auto_charge += 0x08;
if (auxo_charge == AUDIO_AUXO_CHARGE_AUTO)
auto_charge += 0x04;
if (ear_charge == AUDIO_EAR_CHARGE_AUTO)
auto_charge += 0x02;
if (hso_charge == AUDIO_HSO_CHARGE_AUTO)
auto_charge += 0x01;
if (auto_charge != 0x00)
MSI2C_MasterPollingSendAbb(AUDIO_POPAUTO, auto_charge );
if (auto_charge != 0x0F)
MSI2C_MasterPollingSendAbb(AUDIO_POPMAN, (carkit_charge | auxo_charge | ear_charge | hso_charge));
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Stereo_Sampling_Rate_Freq
//
// DESCRIPTION : this function sets stereo sampling rate frequency
//
// PARAMETERS : stereo_sample_rate_freq
// AUDIO_STEREO_SAMPLE_RATE_FREQ_48KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_44_1KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_32KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_24KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_22_05KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_16KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_12KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_11_025KHz
// AUDIO_STEREO_SAMPLE_RATE_FREQ_8KHz
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Stereo_Sampling_Rate_Freq(UWORD8 stereo_sample_rate_freq)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL5);
reg_val = ( ( reg_val & 0xF0 ) | ( stereo_sample_rate_freq & 0x0F) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL5, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_PLL_settings
//
// DESCRIPTION : this function sets all PLL's
//
// PARAMETERS : audio_stereo_pll_power
// AUDIO_STEREO_PLL_POWER_ON
// AUDIO_STEREO_PLL_POWER_OFF
// audio_stereo_pll_speedup
// AUDIO_STEREO_PLL_SPEEDUP_ACTIVE
// AUDIO_STEREO_PLL_SPEEDUP_INACTIVE
// voice_pll_power
// AUDIO_VOICE_PLL_POWER_ON
// AUDIO_VOICE_PLL_POWER_OFF
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_PLL_Settings(UWORD8 audio_stereo_pll_power, UWORD8 audio_stereo_pll_speedup, UWORD8 voice_pll_power)
{
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
MSI2C_MasterPollingSendAbb( AUDIO_CTRL6, ( ( audio_stereo_pll_power | audio_stereo_pll_speedup | voice_pll_power ) & 0x1F ) );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Inputs_Selection
//
// DESCRIPTION : this function selects triton audio inputs
//
// PARAMETERS : audio_input_select
// AUDIO_INPUT_NONE
// AUDIO_INPUT_MIC
// AUDIO_INPUT_HSMIC_FMR_GAIN_4_9dB
// AUDIO_INPUT_HSMIC_FMR_GAIN_25_6dB
// AUDIO_INPUT_FM_STEREO
// AUDIO_INPUT_HSMIC
// AUDIO_INPUT_FMR_GAIN_4_9dB
// AUDIO_INPUT_FMR_GAIN_28_2dB
// AUDIO_INPUT_FML
// AUDIO_INPUT_CARKIT_MONO
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Inputs_Selection(UWORD8 audio_input_select)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL3);
reg_val = ( ( reg_val & 0xF0 ) | ( audio_input_select & 0x0F) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL3, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Speaker_Amp_Gain_Settings
//
// DESCRIPTION : this function sets speaker amplifier gain
//
// PARAMETERS : spkamp_gain
// AUDIO_SPKAMP_GAIN__22_5dB
// AUDIO_SPKAMP_GAIN__3_5dB
// AUDIO_SPKAMP_GAIN_2_5dB
// AUDIO_SPKAMP_GAIN_8_5dB
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Speaker_Amp_Gain_Settings(UWORD8 spkamp_gain)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL3);
reg_val = ( ( reg_val & 0x8F ) | ( spkamp_gain & 0x70 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL3, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Ear_Amp_Gain_Settings
//
// DESCRIPTION : this function sets ear amplifier gain
//
// PARAMETERS : earamp_gain
// AUDIO_EAR_AMP__11dB
// AUDIO_EAR_AMP_1dB
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Ear_Amp_Gain_Settings(UWORD8 earamp_gain)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL5);
reg_val = ( ( reg_val & 0xDF ) | ( earamp_gain & 0x20 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL5, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Hook_Enable
//
// DESCRIPTION : this function sets ear amplifier gain
//
// PARAMETERS : hook_sel
// AUDIO_HOOK_ENABLE
// AUDIO_HOOK_DISABLE
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Hook_Enable(UWORD8 hook_sel)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL5);
reg_val = ( ( reg_val & 0xEF ) | ( hook_sel & 0x10 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL5, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Hand_Free_Activation
//
// DESCRIPTION : this function
//
// PARAMETERS : hand_free_activation
// AUDIO_HAND_FREE_DIG_PART_ACTIVE
// AUDIO_HAND_FREE_DIG_PART_INACTIVE
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Hand_Free_Activation(UWORD8 hand_free_activation)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL3);
reg_val = ( ( reg_val & 0x7F ) | ( hand_free_activation & 0x80 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL3, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Voice_Memo_Activation
//
// DESCRIPTION : this function activates voice memo application
//
// PARAMETERS : voice_memo_activation
// AUDIO_VOICE_MEMO_ACTIVE
// AUDIO_VOICE_MEMO_INACTIVE
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Voice_Memo_Activation(UWORD8 voice_memo_activation)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL4);
reg_val = ( ( reg_val & 0x7F ) | ( voice_memo_activation & 0x80 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL4, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_I2S_Power
//
// DESCRIPTION : this function sets I2S power on/off
//
// PARAMETERS : i2s_power
// AUDIO_I2S_ON
// AUDIO_I2S_OFF
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_I2S_Power(UWORD8 i2s_power)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL4);
reg_val = ( ( reg_val & 0xBF ) | ( i2s_power & 0x40 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL4, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Stereo_Settings
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -