⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 triton_audio.c

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 C
📖 第 1 页 / 共 3 页
字号:
// 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 + -