📄 triton_audio.c
字号:
// DESCRIPTION : this function sets stereo dig/soft volume and configures stereo to mono options
//
// PARAMETERS : fm_stereo_to_mono
// AUDIO_STEREO_TO_MONO_ON_LEFT
// AUDIO_STEREO_TO_MONO_ON_RIGHT
// AUDIO_DEFAULT_VALUE
// stereo_dig_vol
// AUDIO_STEREO_DIG_VOL_0dB
// AUDIO_STEREO_DIG_VOL_6dB
// stereo_soft_vol
// AUDIO_STEREO_SOFT_VOL_BYPASS
// AUDIO_STEREO_SOFT_VOL_FS_512
// AUDIO_STEREO_SOFT_VOL_FS_128
// AUDIO_STEREO_SOFT_VOL_FS_8
// AUDIO_STEREO_SOFT_VOL_FS_0_5
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Stereo_Settings(UWORD8 fm_stereo_to_mono, UWORD8 stereo_dig_vol, UWORD8 stereo_soft_vol)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL4);
reg_val = ( ( reg_val & 0xC0 ) | ( ( fm_stereo_to_mono | stereo_dig_vol | stereo_soft_vol) & 0x3F ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL4, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_FM_Radio_Gain
//
// DESCRIPTION : this function sets FM radio gain
//
// PARAMETERS : fm_radio_gain
// AUDIO_FM_RADIO_GAIN__2dB
// AUDIO_FM_RADIO_GAIN_0dB
// AUDIO_FM_RADIO_GAIN_2dB
// AUDIO_FM_RADIO_GAIN_4dB
// AUDIO_FM_RADIO_GAIN_6dB
// AUDIO_FM_RADIO_GAIN_8dB
// AUDIO_FM_RADIO_GAIN_10dB
// AUDIO_FM_RADIO_GAIN_12dB
// AUDIO_FM_RADIO_GAIN_14dB
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_FM_Radio_Gain(UWORD8 fm_radio_gain)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL2);
reg_val = ( ( reg_val & 0xF0 ) | ( fm_radio_gain & 0x0F ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL2, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Analog_Settings
//
// DESCRIPTION : this function sets triton analog audio part characteristics
//
// PARAMETERS : vmid_level
// AUDIO_VMID_1_5V
// AUDIO_VMID_1_35V
// vmid_res
// AUDIO_VMID_LOW_PASS_RC_FILTER_RESISTANCE_BYPASSED
// AUDIO_VMID_LOW_PASS_RC_FILTER_RESISTANCE_NOT_BYPASSED
// mic_bias_lvl
// AUDIO_MIC_BIAS_2_5V
// AUDIO_MIC_BIAS_2V
// mic_bias_sel
// AUDIO_HSMIC_BIAS_ACTIVE
// AUDIO_MIC_BIAS_ACTIVE
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Analog_Settings(UWORD8 vmid_level, UWORD8 vmid_res, UWORD8 mic_bias_lvl, UWORD8 mic_bias_sel)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL2);
reg_val = ( ( reg_val & 0x0F ) | ( ( vmid_level | vmid_res | mic_bias_lvl | mic_bias_sel) & 0xF0 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL2, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Analog_Loop_Active
//
// DESCRIPTION : this function disactivates/activates the analog loop
//
// PARAMETERS : analog_loop
// AUDIO_INTERNAL_ANALOG_LOOP_ACTIVE
// AUDIO_INTERNAL_ANALOG_LOOP_NOT_ACTIVE
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Analog_Loop_Active(UWORD8 analog_loop)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL1);
reg_val = ( ( reg_val & 0x7F ) | ( analog_loop & 0x80 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL1, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Voice_Filter_Bypass_Settings
//
// DESCRIPTION : this function sets voice filter bypass
//
// PARAMETERS : bypass_settings
// AUDIO_VOICE_FILTER_NO_BYPASSED
// AUDIO_WHOLE_VOICE_DOWNLINK_FILTER_BYPASSED
// AUDIO_VOICE_HIGH_PASS_FILTER_BYPASSED
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Voice_Filter_Bypass_Settings(UWORD8 bypass_settings)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL1);
reg_val = ( ( reg_val & 0x9F ) | ( bypass_settings & 0x60 ) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL1, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Voice_Speech_Path_Settings
//
// DESCRIPTION : this function sets vclk mode and frequency
//
// PARAMETERS : vclk_mode
// AUDIO_VCK_CONTINUOUS_MODE
// AUDIO_VCK_BURST_MODE
// vclk_freq
// AUDIO_VCK_FREQ_500KHz_WIDE_BAND
// AUDIO_VCK_FREQ_500KHz_NARROW_BAND
// AUDIO_VCK_FREQ_1MHz_NARROW_BAND
// AUDIO_VCK_FREQ_2MHz_WIDE_BAND
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Voice_Speech_Path_Settings(UWORD8 vclk_mode, UWORD8 vclk_freq)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL1);
reg_val = ( ( reg_val & 0xEA ) | ( ( vclk_mode | vclk_freq ) & 0x15) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL1, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Reset
//
// DESCRIPTION : this function reset audio digital part
//
// PARAMETERS : digital_part_reset
// AUDIO_DIGITAL_PART_RESET
// AUDIO_DIGITAL_PART_NOT_RESET
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Reset(UWORD8 digital_part_reset)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL1);
reg_val = ( ( reg_val & 0xF7 ) | ( digital_part_reset & 0x08) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL1, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Boost
//
// DESCRIPTION : this function activates/desactivates voice uplink input amplifier boost
//
// PARAMETERS : voice_uplink_input_amplifier
// AUDIO_VOICE_UPLINK_INPUT_AMPLIFIER_BOOST
// AUDIO_VOICE_UPLINK_INPUT_AMPLIFIER_NOT_BOOST
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Boost(UWORD8 voice_uplink_input_amplifier)
{
UWORD8 reg_val;
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
reg_val = MSI2C_MasterPollingReceiveAbb(AUDIO_CTRL1);
reg_val = ( ( reg_val & 0xFD ) | ( voice_uplink_input_amplifier & 0x02) );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL1, reg_val );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Part_Registers_Init
//
// DESCRIPTION : this function initializes all registers to their initial value (0x00)
//
// PARAMETERS : none
//
// RETURN VALUE: none
//
//
// LIMITATIONS : none
//---------------------------------------------------------------------
void Triton_Audio_Part_Registers_Init(void)
{
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
MSI2C_MasterPollingSendAbb( AUDIO_CTRL1, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL2, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL3, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL4, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL5, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_CTRL6, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_TOGB, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_AUDLGAIN, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_AUDRGAIN, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_OUTEN1, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_OUTEN2, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_OUTEN3, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_VULGAIN, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_VDLGAIN, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_SIDETONE, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_POPAUTO, 0x00 );
MSI2C_MasterPollingSendAbb( AUDIO_POPMAN, 0x00 );
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -