adc.h File Reference

Go to the source code of this file.

Data Structures

struct  adc_vref_ctr_t
 

Macros

#define areg_adc_sampling_clk_div   0xf4
 
#define areg_adc_vref   0xe7
 
#define areg_adc_vref_vbat_div   0xf9
 
#define areg_adc_ain_chn_misc   0xe8
 
#define areg_adc_ain_chn_left   0xe9
 
#define areg_adc_ain_chn_right   0xea
 
#define areg_adc_res_l_r   0xeb
 
#define anareg_adc_res_m   0xec
 
#define areg_adc_tsmaple_m   0xee
 
#define areg_adc_tsmaple_l_r   0xed
 
#define areg_r_max_mc   0xef
 
#define areg_r_max_c   0xf0
 
#define areg_r_max_s   0xf1
 
#define areg_adc_chn_en   0xf2
 
#define areg_ain_scale   0xfa
 
#define areg_adc_pga_boost   0xfb
 
#define areg_adc_pga_ctrl   0xfc
 
#define areg_fe   0xfe
 
#define areg_adc_rng_l   0xf5
 
#define areg_adc_rng_h   0xf6
 
#define areg_adc_misc_l   0xf7
 
#define areg_adc_misc_h   0xf8
 

Enumerations

enum  ADC_RefVolTypeDef { ADC_VREF_0P6V, ADC_VREF_0P9V, ADC_VREF_1P2V, ADC_VREF_VBAT_N }
 
enum  ADC_VbatDivTypeDef { ADC_VBAT_DIVIDER_OFF = 0, ADC_VBAT_DIVIDER_1F4, ADC_VBAT_DIVIDER_1F3, ADC_VBAT_DIVIDER_1F2 }
 
enum  ADC_InputNchTypeDef {
  NOINPUTN, B0N, B1N, B2N,
  B3N, B4N, B5N, B6N,
  B7N, C4N, C5N, PGA0N,
  PGA1N, TEMSENSORN, RSVD_N, GND
}
 
enum  ADC_InputPchTypeDef {
  NOINPUTP, B0P, B1P, B2P,
  B3P, B4P, B5P, B6P,
  B7P, C4P, C5P, PGA0P,
  PGA1P, TEMSENSORP, RSVD_P, VBAT
}
 
enum  ADC_ResTypeDef { RES8, RES10, RES12, RES14 }
 
enum  ADC_InputModeTypeDef { SINGLE_ENDED_MODE = 0, DIFFERENTIAL_MODE = 1 }
 
enum  ADC_SampCycTypeDef {
  SAMPLING_CYCLES_3, SAMPLING_CYCLES_6, SAMPLING_CYCLES_9, SAMPLING_CYCLES_12,
  SAMPLING_CYCLES_15, SAMPLING_CYCLES_18, SAMPLING_CYCLES_21, SAMPLING_CYCLES_24,
  SAMPLING_CYCLES_27, SAMPLING_CYCLES_30, SAMPLING_CYCLES_33, SAMPLING_CYCLES_36,
  SAMPLING_CYCLES_39, SAMPLING_CYCLES_42, SAMPLING_CYCLES_45, SAMPLING_CYCLES_48
}
 
enum  ADC_ChTypeDef { ADC_LEFT_CHN = BIT(0), ADC_RIGHT_CHN = BIT(1), ADC_MISC_CHN = BIT(2), ADC_RNS_CHN = BIT(3) }
 
enum  ADC_PreScalingTypeDef { ADC_PRESCALER_1, ADC_PRESCALER_1F2, ADC_PRESCALER_1F4, ADC_PRESCALER_1F8 }
 
enum  ADC_Cur_TrimTypeDef { ADC_CUR_TRIM_PER75, ADC_CUR_TRIM_PER100, ADC_CUR_TRIM_PER125, ADC_CUR_TRIM_PER150 }
 
enum  ADC_Gain_BiasTypeDef { GAIN_STAGE_BIAS_PER75 = 0, GAIN_STAGE_BIAS_PER100, GAIN_STAGE_BIAS_PER125, GAIN_STAGE_BIAS_PER150 }
 
enum  ADC_ModeTypeDef { ADC_NORMAL_MODE = 0, ADC_RNS_MODE = BIT(4) }
 
enum  RNG_SrcTypeDef {
  SAR_ADC_RNG_MODE = 0, R_RNG_MODE_0 = 2, R_RNG_MODE_1 = 3, ADC_DAT12_RNG_MODE = 4,
  ADC_DAT5_RNG_MODE = 6
}
 
enum  RNG_UpdataTypeDef { READ_UPDATA = BIT(3), CLOCLK_UPDATA = BIT(4) }
 
enum  { FLD_ADC_SAMPLE_CLK_DIV = BIT_RNG(0,2) }
 
enum  { FLD_ADC_VREF_CHN_L = BIT_RNG(0,1), FLD_ADC_VREF_CHN_R = BIT_RNG(2,3), FLD_ADC_VREF_CHN_M = BIT_RNG(4,5) }
 
enum  { FLD_ADC_VREF_VBAT_DIV = BIT_RNG(2,3) }
 
enum  { FLD_ADC_AIN_NEGATIVE = BIT_RNG(0,3), FLD_ADC_AIN_POSITIVE = BIT_RNG(4,7) }
 
enum  { FLD_ADC_RES_L = BIT_RNG(0,1), FLD_ADC_RES_R = BIT_RNG(4,5) }
 
enum  { FLD_ADC_RES_M = BIT_RNG(0,1), FLD_ADC_EN_DIFF_CHN_L = BIT(4), FLD_ADC_EN_DIFF_CHN_R = BIT(5), FLD_ADC_EN_DIFF_CHN_M = BIT(6) }
 
enum  { FLD_ADC_TSAMPLE_CYCLE_CHN_M = BIT_RNG(0,3) }
 
enum  { FLD_ADC_TSAMPLE_CYCLE_CHN_L = BIT_RNG(0,3), FLD_ADC_TSAMPLE_CYCLE_CHN_R = BIT_RNG(4,7) }
 
enum  { FLD_R_MAX_MC0 = BIT_RNG(0,7) }
 
enum  { FLD_R_MAX_C0 = BIT_RNG(0,7) }
 
enum  { FLD_R_MAX_S = BIT_RNG(0,3), FLD_R_MAX_C1 = BIT_RNG(4,5), FLD_R_MAX_MC1 = BIT_RNG(6,7) }
 
enum  {
  FLD_ADC_CHN_EN_L = BIT(0), FLD_ADC_CHN_EN_R = BIT(1), FLD_ADC_CHN_EN_M = BIT(2), FLD_ADC_CHN_EN_RNS = BIT(3),
  FLD_ADC_MAX_SCNT = BIT_RNG(4,6)
}
 
enum  { FLD_ADC_ITRIM_PREAMP = BIT_RNG(0,1), FLD_ADC_ITRIM_VREFBUF = BIT_RNG(2,3), FLD_ADC_ITRIM_VCMBUF = BIT_RNG(4,5), FLD_SEL_AIN_SCALE = BIT_RNG(6,7) }
 
enum  { FLD_PGA_CAP_TRIM_EN_L = BIT(0), FLD_PGA_CAP_TRIM_EN_R = BIT(1), FLD_PGA_ITRIM_BOOST_L = BIT_RNG(4,5), FLD_PGA_ITRIM_BOOST_R = BIT_RNG(6,7) }
 
enum  {
  FLD_PGA_ITRIM_GAIN_L = BIT_RNG(0,1), FLD_PGA_ITRIM_GAIN_R = BIT_RNG(2,3), FLD_ADC_MODE = BIT(4), FLD_SAR_ADC_POWER_DOWN = BIT(5),
  FLD_POWER_DOWN_PGA_CHN_L = BIT(6), FLD_POWER_DOWN_PGA_CHN_R = BIT(7)
}
 
enum  { FLD_ADC_MISC_DATA = BIT_RNG(0,6), FLD_ADC_MISC_VLD = BIT(7) }
 

Functions

static void adc_calib_vref_enable (unsigned char en)
 This function enable adc reference voltage calibration. More...
 
static void adc_reset_adc_module (void)
 This function reset adc module. More...
 
static void adc_enable_clk_24m_to_sar_adc (unsigned int en)
 This function enable adc source clock: external 24M. More...
 
static void adc_set_sample_clk (unsigned char div)
 This function sets adc sample clk. adc sample clk = 24M/(1+div) div: 0~7. More...
 
static void adc_set_vref (ADC_RefVolTypeDef vRef_L, ADC_RefVolTypeDef vRef_R, ADC_RefVolTypeDef vRef_M)
 This function sets ADC reference voltage for L,R and Mic channel. More...
 
static void adc_set_vref_chn_left (ADC_RefVolTypeDef v_ref)
 This function sets ADC reference voltage for the L channel. More...
 
static void adc_set_vref_chn_right (ADC_RefVolTypeDef v_ref)
 This function sets ADC reference voltage for the R channel. More...
 
static void adc_set_vref_chn_misc (ADC_RefVolTypeDef v_ref)
 This function sets ADC reference voltage for the MISC channel. More...
 
void adc_set_ref_voltage (ADC_ChTypeDef ch_n, ADC_RefVolTypeDef v_ref)
 This function serves to set the channel reference voltage. More...
 
static void adc_set_vref_vbat_divider (ADC_VbatDivTypeDef vbat_div)
 This function select Vbat voltage divider. More...
 
static void adc_set_ain_chn_misc (ADC_InputPchTypeDef p_ain, ADC_InputNchTypeDef n_ain)
 This function serves to set input channel for the MISC channel. More...
 
static void adc_set_ain_chn_left (ADC_InputPchTypeDef p_ain, ADC_InputNchTypeDef n_ain)
 This function serves to set input channel for the left channel. More...
 
static void adc_set_ain_chn_right (ADC_InputPchTypeDef p_ain, ADC_InputNchTypeDef n_ain)
 This function serves to set input channel for the right channel. More...
 
static void adc_set_ain_negative_chn_misc (ADC_InputNchTypeDef v_ain)
 This function sets ADC analog negative input channel for the MISC channel. More...
 
static void adc_set_ain_positive_chn_misc (ADC_InputPchTypeDef v_ain)
 This function sets ADC analog positive input channel for the MISC channel. More...
 
static void adc_set_ain_negative_chn_left (ADC_InputNchTypeDef v_ain)
 This function sets ADC analog negative input channel for the L channel. More...
 
static void adc_set_ain_positive_chn_left (ADC_InputPchTypeDef v_ain)
 This function sets ADC analog positive input channel for the L channel. More...
 
static void adc_set_ain_negative_chn_right (ADC_InputNchTypeDef v_ain)
 This function sets ADC analog negative input channel for the R channel. More...
 
static void adc_set_ain_positive_chn_right (ADC_InputPchTypeDef v_ain)
 This function sets ADC analog positive input channel for the R channel. More...
 
static void adc_set_resolution_chn_left (ADC_ResTypeDef v_res)
 This function sets ADC resolution for the L channel. More...
 
static void adc_set_resolution_chn_right (ADC_ResTypeDef v_res)
 This function sets ADC resolution for the R channel. More...
 
void adc_set_resolution (ADC_ChTypeDef ch_n, ADC_ResTypeDef v_res)
 This function serves to set resolution. More...
 
static void adc_set_resolution_chn_misc (ADC_ResTypeDef v_res)
 This function sets ADC resolution for the MISC channel. More...
 
static void adc_set_input_mode_chn_left (ADC_InputModeTypeDef m_input)
 This function sets ADC input mode for the L channel. More...
 
static void adc_set_input_mode_chn_right (ADC_InputModeTypeDef m_input)
 This function sets ADC input mode for the R channel. More...
 
static void adc_set_input_mode_chn_misc (ADC_InputModeTypeDef m_input)
 This function sets ADC input mode for the MISC channel. More...
 
void adc_set_input_mode (ADC_ChTypeDef ch_n, ADC_InputModeTypeDef m_input)
 This function serves to set input_mode. More...
 
static void adc_set_tsample_cycle_chn_misc (ADC_SampCycTypeDef adcST)
 This function sets ADC sample time(the number of adc clocks for sample cycles) for the MISC channel. More...
 
static void adc_set_tsample_cycle_chn_left (ADC_SampCycTypeDef adcST)
 This function sets ADC sample time(the number of adc clocks for sample cycles) for the L channel. More...
 
static void adc_set_tsample_cycle_chn_right (ADC_SampCycTypeDef adcST)
 This function sets ADC sample time(the number of adc clocks for sample cycles) for the R channel. More...
 
void adc_set_tsample_cycle (ADC_ChTypeDef ch_n, ADC_SampCycTypeDef adcST)
 This function serves to set sample_cycle. More...
 
static void adc_set_length_set_state (unsigned char r_max_s)
 This function sets length of each ¡°set¡± state. More...
 
static void adc_set_length_capture_state_for_chn_misc_rns (unsigned short r_max_mc)
 This function sets length of each "capture" state for MISC channel. More...
 
static void adc_set_length_capture_state_for_chn_left_right (unsigned short r_max_c)
 This function sets length of each "capture" state for R and L channel. More...
 
static void adc_set_state_length (unsigned short R_max_mc, unsigned short R_max_c, unsigned char R_max_s)
 This function serves to set state and capture_state length. More...
 
static void adc_set_chn_enable (ADC_ChTypeDef ad_ch)
 This function sets ADC input channel. More...
 
static void adc_set_chn_enable_and_max_state_cnt (ADC_ChTypeDef ad_ch, unsigned char s_cnt)
 This function sets total state index for the channel. More...
 
static void adc_set_max_state_cnt (unsigned char s_cnt)
 This function sets total state index for sampling state. More...
 
static void adc_set_itrim_preamp (ADC_Cur_TrimTypeDef bias)
 This function sets pre-scaling for comparator preamp bias current trimming. More...
 
static void adc_set_itrim_vrefbuf (ADC_Cur_TrimTypeDef bias)
 This function sets pre-scaling for Vref buffer bias current trimming. More...
 
static void adc_set_itrim_vcmbuf (ADC_Cur_TrimTypeDef bias)
 This function sets pre-scaling for Vref(Vcmbuf) buffer bias current trimming. More...
 
static void adc_set_left_boost_bias (ADC_Gain_BiasTypeDef bias)
 This function sets left boost bias with PGA enable. More...
 
static void adc_set_right_boost_bias (ADC_Gain_BiasTypeDef bias)
 This function sets right boost bias with PGA enable. More...
 
static void adc_set_left_right_gain_bias (ADC_Gain_BiasTypeDef bias_L, ADC_Gain_BiasTypeDef bias_R)
 This function gets left gain bias with PGA enable. More...
 
static void adc_set_left_gain_bias (ADC_Gain_BiasTypeDef bias)
 This function gets left gain bias with PGA enable. More...
 
static void adc_set_right_gain_bias (ADC_Gain_BiasTypeDef bias)
 This function gets right_gain_bias with PGA enable. More...
 
static void adc_set_mode (ADC_ModeTypeDef adc_m)
 This function serves to set mode for ADC. More...
 
static void adc_power_on_sar_adc (unsigned char on_off)
 This function sets sar_adc power. More...
 
static void pga_left_chn_power_on (unsigned char on_off)
 This function sets PGA-Left-channel power. More...
 
static void pga_right_chn_power_on (unsigned char on_off)
 This function sets PGA Right channel power. More...
 
static void RNG_Set (RNG_SrcTypeDef src, RNG_UpdataTypeDef update_type)
 This function sets ADC RNS channel source and random updata type. More...
 
static unsigned short RNG_Read (void)
 This function serves to read random number. More...
 
void adc_set_ain_channel_single_ended_input_mode (ADC_ChTypeDef ch_n, ADC_InputPchTypeDef InPCH)
 This function serves to set input channel in single_ended_input_mode. More...
 
void adc_set_ain_channel_differential_mode (ADC_ChTypeDef ch_n, ADC_InputPchTypeDef InPCH, ADC_InputNchTypeDef InNCH)
 This function serves to set input channel in differential_mode. More...
 
void adc_set_ain_pre_scaler (ADC_PreScalingTypeDef v_scl)
 This function serves to set pre_scaling. More...
 
void adc_init (void)
 This function serves to ADC init. More...
 
void adc_base_pin_init (GPIO_PinTypeDef pin)
 This function is used for IO port configuration of ADC IO port voltage sampling. More...
 
void adc_vbat_pin_init (GPIO_PinTypeDef pin)
 This function is used for IO port configuration of ADC supply voltage sampling. More...
 
void adc_base_init (GPIO_PinTypeDef pin)
 This function is used for ADC configuration of ADC IO voltage sampling. More...
 
void adc_vbat_init (GPIO_PinTypeDef pin)
 This function is used for ADC configuration of ADC supply voltage sampling. More...
 
unsigned int adc_sample_and_get_result (void)
 This function serves to set adc sampling and get results. More...
 

Variables

adc_vref_ctr_t adc_vref_cfg
 
GPIO_PinTypeDef ADC_GPIO_tab [10]
 

Macro Definition Documentation

◆ areg_adc_sampling_clk_div

#define areg_adc_sampling_clk_div   0xf4

◆ areg_adc_vref

#define areg_adc_vref   0xe7

◆ areg_adc_vref_vbat_div

#define areg_adc_vref_vbat_div   0xf9

◆ areg_adc_ain_chn_misc

#define areg_adc_ain_chn_misc   0xe8

◆ areg_adc_ain_chn_left

#define areg_adc_ain_chn_left   0xe9

◆ areg_adc_ain_chn_right

#define areg_adc_ain_chn_right   0xea

◆ areg_adc_res_l_r

#define areg_adc_res_l_r   0xeb

◆ anareg_adc_res_m

#define anareg_adc_res_m   0xec

◆ areg_adc_tsmaple_m

#define areg_adc_tsmaple_m   0xee

◆ areg_adc_tsmaple_l_r

#define areg_adc_tsmaple_l_r   0xed

◆ areg_r_max_mc

#define areg_r_max_mc   0xef

◆ areg_r_max_c

#define areg_r_max_c   0xf0

◆ areg_r_max_s

#define areg_r_max_s   0xf1

◆ areg_adc_chn_en

#define areg_adc_chn_en   0xf2

◆ areg_ain_scale

#define areg_ain_scale   0xfa

◆ areg_adc_pga_boost

#define areg_adc_pga_boost   0xfb

◆ areg_adc_pga_ctrl

#define areg_adc_pga_ctrl   0xfc

◆ areg_fe

#define areg_fe   0xfe

◆ areg_adc_rng_l

#define areg_adc_rng_l   0xf5

◆ areg_adc_rng_h

#define areg_adc_rng_h   0xf6

◆ areg_adc_misc_l

#define areg_adc_misc_l   0xf7

◆ areg_adc_misc_h

#define areg_adc_misc_h   0xf8

Enumeration Type Documentation

◆ ADC_RefVolTypeDef

ADC reference voltage

Enumerator
ADC_VREF_0P6V 
ADC_VREF_0P9V 
ADC_VREF_1P2V 
ADC_VREF_VBAT_N 

◆ ADC_VbatDivTypeDef

ADC Vbat divider

Enumerator
ADC_VBAT_DIVIDER_OFF 
ADC_VBAT_DIVIDER_1F4 
ADC_VBAT_DIVIDER_1F3 
ADC_VBAT_DIVIDER_1F2 

◆ ADC_InputNchTypeDef

ADC analog input negative channel

Enumerator
NOINPUTN 
B0N 
B1N 
B2N 
B3N 
B4N 
B5N 
B6N 
B7N 
C4N 
C5N 
PGA0N 
PGA1N 
TEMSENSORN 
RSVD_N 
GND 

◆ ADC_InputPchTypeDef

ADC analog input positive channel

Enumerator
NOINPUTP 
B0P 
B1P 
B2P 
B3P 
B4P 
B5P 
B6P 
B7P 
C4P 
C5P 
PGA0P 
PGA1P 
TEMSENSORP 
RSVD_P 
VBAT 

◆ ADC_ResTypeDef

ADC resolution

Enumerator
RES8 
RES10 
RES12 
RES14 

◆ ADC_InputModeTypeDef

ADC channel input mode

Enumerator
SINGLE_ENDED_MODE 
DIFFERENTIAL_MODE 

◆ ADC_SampCycTypeDef

ADC Sampling cycles

Enumerator
SAMPLING_CYCLES_3 
SAMPLING_CYCLES_6 
SAMPLING_CYCLES_9 
SAMPLING_CYCLES_12 
SAMPLING_CYCLES_15 
SAMPLING_CYCLES_18 
SAMPLING_CYCLES_21 
SAMPLING_CYCLES_24 
SAMPLING_CYCLES_27 
SAMPLING_CYCLES_30 
SAMPLING_CYCLES_33 
SAMPLING_CYCLES_36 
SAMPLING_CYCLES_39 
SAMPLING_CYCLES_42 
SAMPLING_CYCLES_45 
SAMPLING_CYCLES_48 

◆ ADC_ChTypeDef

ADC input channel: Left/Right/MISC/RNS

Enumerator
ADC_LEFT_CHN 
ADC_RIGHT_CHN 
ADC_MISC_CHN 
ADC_RNS_CHN 

◆ ADC_PreScalingTypeDef

ADC Prescaler

Enumerator
ADC_PRESCALER_1 
ADC_PRESCALER_1F2 
ADC_PRESCALER_1F4 
ADC_PRESCALER_1F8 

◆ ADC_Cur_TrimTypeDef

ADC current trim

Enumerator
ADC_CUR_TRIM_PER75 
ADC_CUR_TRIM_PER100 
ADC_CUR_TRIM_PER125 
ADC_CUR_TRIM_PER150 

◆ ADC_Gain_BiasTypeDef

Enumerator
GAIN_STAGE_BIAS_PER75 
GAIN_STAGE_BIAS_PER100 
GAIN_STAGE_BIAS_PER125 
GAIN_STAGE_BIAS_PER150 

◆ ADC_ModeTypeDef

ADC mode: Normal mode/RNS mode

Enumerator
ADC_NORMAL_MODE 
ADC_RNS_MODE 

◆ RNG_SrcTypeDef

ADC RNS channel source

Enumerator
SAR_ADC_RNG_MODE 
R_RNG_MODE_0 
R_RNG_MODE_1 
ADC_DAT12_RNG_MODE 
ADC_DAT5_RNG_MODE 

◆ RNG_UpdataTypeDef

Enumerator
READ_UPDATA 
CLOCLK_UPDATA 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_SAMPLE_CLK_DIV 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_VREF_CHN_L 
FLD_ADC_VREF_CHN_R 
FLD_ADC_VREF_CHN_M 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_VREF_VBAT_DIV 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_AIN_NEGATIVE 
FLD_ADC_AIN_POSITIVE 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_RES_L 
FLD_ADC_RES_R 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_RES_M 
FLD_ADC_EN_DIFF_CHN_L 
FLD_ADC_EN_DIFF_CHN_R 
FLD_ADC_EN_DIFF_CHN_M 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_TSAMPLE_CYCLE_CHN_M 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_TSAMPLE_CYCLE_CHN_L 
FLD_ADC_TSAMPLE_CYCLE_CHN_R 

◆ anonymous enum

anonymous enum
Enumerator
FLD_R_MAX_MC0 

◆ anonymous enum

anonymous enum
Enumerator
FLD_R_MAX_C0 

◆ anonymous enum

anonymous enum
Enumerator
FLD_R_MAX_S 
FLD_R_MAX_C1 
FLD_R_MAX_MC1 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_CHN_EN_L 
FLD_ADC_CHN_EN_R 
FLD_ADC_CHN_EN_M 
FLD_ADC_CHN_EN_RNS 
FLD_ADC_MAX_SCNT 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_ITRIM_PREAMP 
FLD_ADC_ITRIM_VREFBUF 
FLD_ADC_ITRIM_VCMBUF 
FLD_SEL_AIN_SCALE 

◆ anonymous enum

anonymous enum
Enumerator
FLD_PGA_CAP_TRIM_EN_L 
FLD_PGA_CAP_TRIM_EN_R 
FLD_PGA_ITRIM_BOOST_L 
FLD_PGA_ITRIM_BOOST_R 

◆ anonymous enum

anonymous enum
Enumerator
FLD_PGA_ITRIM_GAIN_L 
FLD_PGA_ITRIM_GAIN_R 
FLD_ADC_MODE 
FLD_SAR_ADC_POWER_DOWN 
FLD_POWER_DOWN_PGA_CHN_L 
FLD_POWER_DOWN_PGA_CHN_R 

◆ anonymous enum

anonymous enum
Enumerator
FLD_ADC_MISC_DATA 
FLD_ADC_MISC_VLD 

Function Documentation

◆ adc_calib_vref_enable()

static void adc_calib_vref_enable ( unsigned char  en)
inlinestatic

This function enable adc reference voltage calibration.

Parameters
[in]en- 1 enable 0 disable
Returns
none.

◆ adc_reset_adc_module()

static void adc_reset_adc_module ( void  )
inlinestatic

This function reset adc module.

Parameters
[in]none.
Returns
none.

◆ adc_enable_clk_24m_to_sar_adc()

static void adc_enable_clk_24m_to_sar_adc ( unsigned int  en)
inlinestatic

This function enable adc source clock: external 24M.

Parameters
[in]en- variable of source clock state 1: enable; 0: disable.
Returns
none.

◆ adc_set_sample_clk()

static void adc_set_sample_clk ( unsigned char  div)
inlinestatic

This function sets adc sample clk. adc sample clk = 24M/(1+div) div: 0~7.

Parameters
[in]div- the divider of adc sample clock.
Returns
none

◆ adc_set_vref()

static void adc_set_vref ( ADC_RefVolTypeDef  vRef_L,
ADC_RefVolTypeDef  vRef_R,
ADC_RefVolTypeDef  vRef_M 
)
inlinestatic

This function sets ADC reference voltage for L,R and Mic channel.

Parameters
[in]v_ref_L- enum variable of adc reference voltage for L channel.
[in]v_ref_R- enum variable of adc reference voltage for R channel.
[in]v_ref_M- enum variable of adc reference voltage for Mic channel.
Returns
none

◆ adc_set_vref_chn_left()

static void adc_set_vref_chn_left ( ADC_RefVolTypeDef  v_ref)
inlinestatic

This function sets ADC reference voltage for the L channel.

Parameters
[in]v_ref- enum variable of adc reference voltage.
Returns
none

◆ adc_set_vref_chn_right()

static void adc_set_vref_chn_right ( ADC_RefVolTypeDef  v_ref)
inlinestatic

This function sets ADC reference voltage for the R channel.

Parameters
[in]v_ref- enum variable of adc reference voltage.
Returns
none

◆ adc_set_vref_chn_misc()

static void adc_set_vref_chn_misc ( ADC_RefVolTypeDef  v_ref)
inlinestatic

This function sets ADC reference voltage for the MISC channel.

Parameters
[in]v_ref- enum variable of adc reference voltage.
Returns
none

◆ adc_set_ref_voltage()

void adc_set_ref_voltage ( ADC_ChTypeDef  ch_n,
ADC_RefVolTypeDef  v_ref 
)

This function serves to set the channel reference voltage.

Parameters
[in]ch_n- enum variable of ADC input channel.
[in]v_ref- enum variable of ADC reference voltage.
Returns
none

◆ adc_set_vref_vbat_divider()

static void adc_set_vref_vbat_divider ( ADC_VbatDivTypeDef  vbat_div)
inlinestatic

This function select Vbat voltage divider.

Parameters
[in]vbat_div- enum variable of Vbat voltage divider.
Returns
none

◆ adc_set_ain_chn_misc()

static void adc_set_ain_chn_misc ( ADC_InputPchTypeDef  p_ain,
ADC_InputNchTypeDef  n_ain 
)
inlinestatic

This function serves to set input channel for the MISC channel.

Parameters
[in]p_ain- enum variable of ADC analog positive input channel.
[in]n_ain- enum variable of ADC analog negative input channel.
Returns
none

◆ adc_set_ain_chn_left()

static void adc_set_ain_chn_left ( ADC_InputPchTypeDef  p_ain,
ADC_InputNchTypeDef  n_ain 
)
inlinestatic

This function serves to set input channel for the left channel.

Parameters
[in]p_ain- enum variable of ADC analog positive input channel.
[in]n_ain- enum variable of ADC analog negative input channel.
Returns
none

◆ adc_set_ain_chn_right()

static void adc_set_ain_chn_right ( ADC_InputPchTypeDef  p_ain,
ADC_InputNchTypeDef  n_ain 
)
inlinestatic

This function serves to set input channel for the right channel.

Parameters
[in]p_ain- enum variable of ADC analog positive input channel.
[in]n_ain- enum variable of ADC analog negative input channel.
Returns
none

◆ adc_set_ain_negative_chn_misc()

static void adc_set_ain_negative_chn_misc ( ADC_InputNchTypeDef  v_ain)
inlinestatic

This function sets ADC analog negative input channel for the MISC channel.

Parameters
[in]v_ain- enum variable of ADC analog negative input.
Returns
none

◆ adc_set_ain_positive_chn_misc()

static void adc_set_ain_positive_chn_misc ( ADC_InputPchTypeDef  v_ain)
inlinestatic

This function sets ADC analog positive input channel for the MISC channel.

Parameters
[in]v_ain- enum variable of ADC analog positive input.
Returns
none

◆ adc_set_ain_negative_chn_left()

static void adc_set_ain_negative_chn_left ( ADC_InputNchTypeDef  v_ain)
inlinestatic

This function sets ADC analog negative input channel for the L channel.

Parameters
[in]v_ain- enum variable of ADC analog negative input.
Returns
none

◆ adc_set_ain_positive_chn_left()

static void adc_set_ain_positive_chn_left ( ADC_InputPchTypeDef  v_ain)
inlinestatic

This function sets ADC analog positive input channel for the L channel.

Parameters
[in]v_ain- enum variable of ADC analog positive input.
Returns
none

◆ adc_set_ain_negative_chn_right()

static void adc_set_ain_negative_chn_right ( ADC_InputNchTypeDef  v_ain)
inlinestatic

This function sets ADC analog negative input channel for the R channel.

Parameters
[in]v_ain- enum variable of ADC analog negative input.
Returns
none

◆ adc_set_ain_positive_chn_right()

static void adc_set_ain_positive_chn_right ( ADC_InputPchTypeDef  v_ain)
inlinestatic

This function sets ADC analog positive input channel for the R channel.

Parameters
[in]v_ain- enum variable of ADC analog positive input.
Returns
none

◆ adc_set_resolution_chn_left()

static void adc_set_resolution_chn_left ( ADC_ResTypeDef  v_res)
inlinestatic

This function sets ADC resolution for the L channel.

Parameters
[in]v_res- enum variable of ADC resolution.
Returns
none

◆ adc_set_resolution_chn_right()

static void adc_set_resolution_chn_right ( ADC_ResTypeDef  v_res)
inlinestatic

This function sets ADC resolution for the R channel.

Parameters
[in]v_res- enum variable of ADC resolution.
Returns
none

◆ adc_set_resolution()

void adc_set_resolution ( ADC_ChTypeDef  ch_n,
ADC_ResTypeDef  v_res 
)

This function serves to set resolution.

Parameters
[in]ch_n- enum variable of ADC input channel.
[in]v_res- enum variable of ADC resolution.
Returns
none

◆ adc_set_resolution_chn_misc()

static void adc_set_resolution_chn_misc ( ADC_ResTypeDef  v_res)
inlinestatic

This function sets ADC resolution for the MISC channel.

Parameters
[in]v_res- enum variable of ADC resolution.
Returns
none

◆ adc_set_input_mode_chn_left()

static void adc_set_input_mode_chn_left ( ADC_InputModeTypeDef  m_input)
inlinestatic

This function sets ADC input mode for the L channel.

Parameters
[in]m_input- enum variable of ADC channel input mode.
Returns
none

◆ adc_set_input_mode_chn_right()

static void adc_set_input_mode_chn_right ( ADC_InputModeTypeDef  m_input)
inlinestatic

This function sets ADC input mode for the R channel.

Parameters
[in]m_input- enum variable of ADC channel input mode.
Returns
none

◆ adc_set_input_mode_chn_misc()

static void adc_set_input_mode_chn_misc ( ADC_InputModeTypeDef  m_input)
inlinestatic

This function sets ADC input mode for the MISC channel.

Parameters
[in]m_input- enum variable of ADC channel input mode.
Returns
none

◆ adc_set_input_mode()

void adc_set_input_mode ( ADC_ChTypeDef  ch_n,
ADC_InputModeTypeDef  m_input 
)

This function serves to set input_mode.

Parameters
[in]ch_n- enum variable of ADC input channel.
[in]m_input- enum variable of ADC channel input mode.
Returns
none

◆ adc_set_tsample_cycle_chn_misc()

static void adc_set_tsample_cycle_chn_misc ( ADC_SampCycTypeDef  adcST)
inlinestatic

This function sets ADC sample time(the number of adc clocks for sample cycles) for the MISC channel.

Parameters
[in]adcST- enum variable of adc sample cycles.
Returns
none

◆ adc_set_tsample_cycle_chn_left()

static void adc_set_tsample_cycle_chn_left ( ADC_SampCycTypeDef  adcST)
inlinestatic

This function sets ADC sample time(the number of adc clocks for sample cycles) for the L channel.

Parameters
[in]adcST- enum variable of adc sample cycles.
Returns
none

◆ adc_set_tsample_cycle_chn_right()

static void adc_set_tsample_cycle_chn_right ( ADC_SampCycTypeDef  adcST)
inlinestatic

This function sets ADC sample time(the number of adc clocks for sample cycles) for the R channel.

Parameters
[in]adcST- enum variable of adc sample cycles.
Returns
none

◆ adc_set_tsample_cycle()

void adc_set_tsample_cycle ( ADC_ChTypeDef  ch_n,
ADC_SampCycTypeDef  adcST 
)

This function serves to set sample_cycle.

Parameters
[in]ch_n- enum variable of ADC input channel.
[in]adcST- enum variable of ADC Sampling cycles.
Returns
none

◆ adc_set_length_set_state()

static void adc_set_length_set_state ( unsigned char  r_max_s)
inlinestatic

This function sets length of each ¡°set¡± state.

Parameters
[in]r_max_s- variable of length of "set" state
Returns
none

◆ adc_set_length_capture_state_for_chn_misc_rns()

static void adc_set_length_capture_state_for_chn_misc_rns ( unsigned short  r_max_mc)
inlinestatic

This function sets length of each "capture" state for MISC channel.

Parameters
[in]r_max_mc[9:0]- variable of length of "capture" state for MISC channel.
Returns
none note : 0xef<7:0> r_max_mc[7:0] 0xf1<7:6> r_max_mc[9:8]

◆ adc_set_length_capture_state_for_chn_left_right()

static void adc_set_length_capture_state_for_chn_left_right ( unsigned short  r_max_c)
inlinestatic

This function sets length of each "capture" state for R and L channel.

Parameters
[in]r_max_c[9:0]- variable of length of "capture" state for R and L channel.
Returns
none note : 0xf0<7:0> r_max_c[7:0] 0xf1<5:4> r_max_c[9:8]

◆ adc_set_state_length()

static void adc_set_state_length ( unsigned short  R_max_mc,
unsigned short  R_max_c,
unsigned char  R_max_s 
)
inlinestatic

This function serves to set state and capture_state length.

Parameters
[in]r_max_mc- Value of length of "capture" state for RNS & MISC channel.
[in]r_max_c- Value of length of "capture" state for L & R channel.
[in]r_max_s- Value of length of "set" state for L & R & MISC channel.
Returns
none

◆ adc_set_chn_enable()

static void adc_set_chn_enable ( ADC_ChTypeDef  ad_ch)
inlinestatic

This function sets ADC input channel.

Parameters
[in]ad_ch- enum variable of ADC input channel.
Returns
none

◆ adc_set_chn_enable_and_max_state_cnt()

static void adc_set_chn_enable_and_max_state_cnt ( ADC_ChTypeDef  ad_ch,
unsigned char  s_cnt 
)
inlinestatic

This function sets total state index for the channel.

Parameters
[in]ad_ch- enum variable of ADC input channel.
[in]s_cnt- sum of the channel state index start with 0x0.
Returns
none

◆ adc_set_max_state_cnt()

static void adc_set_max_state_cnt ( unsigned char  s_cnt)
inlinestatic

This function sets total state index for sampling state.

Parameters
[in]s_cnt- sum of state index start with 0x0.
Returns
none

◆ adc_set_itrim_preamp()

static void adc_set_itrim_preamp ( ADC_Cur_TrimTypeDef  bias)
inlinestatic

This function sets pre-scaling for comparator preamp bias current trimming.

Parameters
[in]bias- enum variable of current trimming.
Returns
none

◆ adc_set_itrim_vrefbuf()

static void adc_set_itrim_vrefbuf ( ADC_Cur_TrimTypeDef  bias)
inlinestatic

This function sets pre-scaling for Vref buffer bias current trimming.

Parameters
[in]bias- enum variable of current trimming.
Returns
none

◆ adc_set_itrim_vcmbuf()

static void adc_set_itrim_vcmbuf ( ADC_Cur_TrimTypeDef  bias)
inlinestatic

This function sets pre-scaling for Vref(Vcmbuf) buffer bias current trimming.

Parameters
[in]bias- enum variable of current trimming.
Returns
none

◆ adc_set_left_boost_bias()

static void adc_set_left_boost_bias ( ADC_Gain_BiasTypeDef  bias)
inlinestatic

This function sets left boost bias with PGA enable.

Parameters
[in]bias- Value of gain_stage.
Returns
none

◆ adc_set_right_boost_bias()

static void adc_set_right_boost_bias ( ADC_Gain_BiasTypeDef  bias)
inlinestatic

This function sets right boost bias with PGA enable.

Parameters
[in]bias- Value of gain_stage.
Returns
none

◆ adc_set_left_right_gain_bias()

static void adc_set_left_right_gain_bias ( ADC_Gain_BiasTypeDef  bias_L,
ADC_Gain_BiasTypeDef  bias_R 
)
inlinestatic

This function gets left gain bias with PGA enable.

Parameters
[in]bias_L- gain bais of left channel.
[in]bias_R- gain bais of right channel.
Returns
none

◆ adc_set_left_gain_bias()

static void adc_set_left_gain_bias ( ADC_Gain_BiasTypeDef  bias)
inlinestatic

This function gets left gain bias with PGA enable.

Parameters
[in]bias- Value of gain_stage.
Returns
none

◆ adc_set_right_gain_bias()

static void adc_set_right_gain_bias ( ADC_Gain_BiasTypeDef  bias)
inlinestatic

This function gets right_gain_bias with PGA enable.

Parameters
[in]bias- Value of gain_stage.
Returns
none

◆ adc_set_mode()

static void adc_set_mode ( ADC_ModeTypeDef  adc_m)
inlinestatic

This function serves to set mode for ADC.

Parameters
[in]adc_m- 0: normal mode; 1: RNS mode.
Returns
none

◆ adc_power_on_sar_adc()

static void adc_power_on_sar_adc ( unsigned char  on_off)
inlinestatic

This function sets sar_adc power.

Parameters
[in]on- 1 : power on; off-0 : power off.
Returns
none caution power on cause audio creepage

◆ pga_left_chn_power_on()

static void pga_left_chn_power_on ( unsigned char  on_off)
inlinestatic

This function sets PGA-Left-channel power.

Parameters
[in]on- 1 : power on; off-0 : power off.
Returns
none

◆ pga_right_chn_power_on()

static void pga_right_chn_power_on ( unsigned char  on_off)
inlinestatic

This function sets PGA Right channel power.

Parameters
[in]on- 1 : power on; off- 0 : power off.
Returns
none

◆ RNG_Set()

static void RNG_Set ( RNG_SrcTypeDef  src,
RNG_UpdataTypeDef  update_type 
)
inlinestatic

This function sets ADC RNS channel source and random updata type.

Parameters
[in]src- the type of ADC RNS channel source
[in]update_type- the type of random updata
Returns
none

◆ RNG_Read()

static unsigned short RNG_Read ( void  )
inlinestatic

This function serves to read random number.

Parameters
[in]none
Returns
the result of read random number

◆ adc_set_ain_channel_single_ended_input_mode()

void adc_set_ain_channel_single_ended_input_mode ( ADC_ChTypeDef  ch_n,
ADC_InputPchTypeDef  InPCH 
)

This function serves to set input channel in single_ended_input_mode.

Parameters
[in]ch_n- enum variable of ADC input channel.
[in]InPCH- enum variable of ADC analog positive input channel.
Returns
none

◆ adc_set_ain_channel_differential_mode()

void adc_set_ain_channel_differential_mode ( ADC_ChTypeDef  ch_n,
ADC_InputPchTypeDef  InPCH,
ADC_InputNchTypeDef  InNCH 
)

This function serves to set input channel in differential_mode.

Parameters
[in]ch_n- enum variable of ADC input channel.
[in]InPCH- enum variable of ADC analog positive input channel.
[in]InNCH- enum variable of ADC analog negative input channel.
Returns
none

◆ adc_set_ain_pre_scaler()

void adc_set_ain_pre_scaler ( ADC_PreScalingTypeDef  v_scl)

This function serves to set pre_scaling.

Parameters
[in]v_scl- enum variable of ADC pre_scaling factor.
Returns
none

◆ adc_init()

void adc_init ( void  )

This function serves to ADC init.

Parameters
[in]none
Returns
none

◆ adc_base_pin_init()

void adc_base_pin_init ( GPIO_PinTypeDef  pin)

This function is used for IO port configuration of ADC IO port voltage sampling.

Parameters
[in]pin- GPIO_PinTypeDef
Returns
none

◆ adc_vbat_pin_init()

void adc_vbat_pin_init ( GPIO_PinTypeDef  pin)

This function is used for IO port configuration of ADC supply voltage sampling.

Parameters
[in]pin- GPIO_PinTypeDef
Returns
none

◆ adc_base_init()

void adc_base_init ( GPIO_PinTypeDef  pin)

This function is used for ADC configuration of ADC IO voltage sampling.

Parameters
[in]pin- GPIO_PinTypeDef
Returns
none

◆ adc_vbat_init()

void adc_vbat_init ( GPIO_PinTypeDef  pin)

This function is used for ADC configuration of ADC supply voltage sampling.

Parameters
[in]pin- GPIO_PinTypeDef
Returns
none

◆ adc_sample_and_get_result()

unsigned int adc_sample_and_get_result ( void  )

This function serves to set adc sampling and get results.

Parameters
[in]none.
Returns
the result of sampling.

Variable Documentation

◆ adc_vref_cfg

adc_vref_ctr_t adc_vref_cfg

◆ ADC_GPIO_tab

GPIO_PinTypeDef ADC_GPIO_tab[10]