CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
结构体 | 宏定义 | 枚举 | 函数
ci130x_codec.h 文件参考

CI130X inner codec驱动的头文件 更多...

#include "ci130x_system.h"
#include <stdbool.h>
#include <math.h>

浏览源代码.

结构体

struct  inner_codec_adc_config_t
 inner CODEC ADC配置 更多...
 
struct  inner_codec_alc_config_t
 inner CODEC ALC设置结构体类型 更多...
 
struct  inner_codec_alc_use_config_t
 inner CODEC简易版ALC配置 更多...
 

宏定义

#define USE_CI130X_ALC   0
 

枚举

enum  inner_codec_current_t {
  INNER_CODEC_CURRENT_I = 0x80,
  INNER_CODEC_CURRENT_2I = 0x40,
  INNER_CODEC_CURRENT_4I = 0x20,
  INNER_CODEC_CURRENT_8I = 0x10,
  INNER_CODEC_CURRENT_16I = 0x08,
  INNER_CODEC_CURRENT_32I = 0x04,
  INNER_CODEC_CURRENT_64I = 0x02,
  INNER_CODEC_CURRENT_128I = 0x01
}
 inner CODEC预充电电流 更多...
 
enum  inner_codec_highpass_cut_off_t {
  INNER_CODEC_HIGHPASS_CUT_OFF_20HZ = 0,
  INNER_CODEC_HIGHPASS_CUT_OFF_245HZ = 1,
  INNER_CODEC_HIGHPASS_CUT_OFF_612HZ = 2,
  INNER_CODEC_HIGHPASS_CUT_OFF_1HZ = 3
}
 inner CODEC高通滤波器截止频率设置 更多...
 
enum  inner_codec_alc_judge_t {
  INNER_CODEC_ALC_JUDGE_BEFOR_HIGHPASS = 0,
  INNER_CODEC_ALC_JUDGE_AFTER_HIGHPASS = 1
}
 inner CODEC ALC判断信号选择 更多...
 
enum  inner_codec_lp_filter_mode_t {
  INNER_CODEC_LP_FILTER_IIR = 0,
  INNER_CODEC_LP_FILTER_FIR = 1
}
 inner codec低通滤波器类型选择(之前固定6.67K低通) 更多...
 
enum  inner_codec_alc_mode_t {
  INNER_CODEC_ALC_MODE_NORMAL = 0,
  INNER_CODEC_ALC_MODE_JACKWAY1 = 1,
  INNER_CODEC_ALC_MODE_JACKWAY2 = 2,
  INNER_CODEC_ALC_MODE_JACKWAY3 = 3
}
 inner CODEC ALC模式设置 更多...
 
enum  inner_codec_use_alc_control_pgagain_t {
  INNER_CODEC_WONT_USE_ALC_CONTROL_PGA_GAIN = 0,
  INNER_CODEC_USE_ALC_CONTROL_PGA_GAIN
}
 inner CODEC使用或者不适用inner CODEC本身的ALC控制其模拟PGA的增益 更多...
 
enum  inner_codec_mode_t {
  INNER_CODEC_MODE_MASTER = 3,
  INNER_CODEC_MODE_SLAVE = 0
}
 inner CODEC 主从模式设置 更多...
 
enum  inner_codec_frame_1_2len_t {
  INNER_CODEC_FRAME_LEN_32BIT = 3,
  INNER_CODEC_FRAME_LEN_24BIT = 2
}
 inner CODEC数据窗口的宽度 更多...
 
enum  inner_codec_valid_word_len_t {
  INNER_CODEC_VALID_LEN_32BIT = 3,
  INNER_CODEC_VALID_LEN_24BIT = 2,
  INNER_CODEC_VALID_LEN_20BIT = 1,
  INNER_CODEC_VALID_LEN_16BIT = 0
}
 inner CODEC有效数据宽度 更多...
 
enum  inner_codec_i2s_data_famat_t {
  INNER_CODEC_I2S_DATA_FORMAT_PCM_MODE = 3,
  INNER_CODEC_I2S_DATA_FORMAT_I2S_MODE = 2,
  INNER_CODEC_I2S_DATA_FORMAT_LJ_MODE = 1,
  INNER_CODEC_I2S_DATA_FORMAT_RJ_MODE = 0
}
 inner CODEC数据格式 更多...
 
enum  inner_codec_input_mode_t {
  INNER_CODEC_INPUT_MODE_DIFF = 1,
  INNER_CODEC_INPUT_MODE_SINGGLE_ENDED = 2
}
 inner CODEC MIC输入端查分或者单端模式设置 更多...
 
enum  inner_codec_mic_amplify_t {
  INNER_CODEC_MIC_AMP_0dB = 0,
  INNER_CODEC_MIC_AMP_6dB,
  INNER_CODEC_MIC_AMP_9dB,
  INNER_CODEC_MIC_AMP_12dB,
  INNER_CODEC_MIC_AMP_16dB,
  INNER_CODEC_MIC_AMP_20dB
}
 inner CODEC MIC增益配置 更多...
 
enum  inner_codec_samplerate_t {
  INNER_CODEC_SAMPLERATE_96K = 0,
  INNER_CODEC_SAMPLERATE_48K = 1,
  INNER_CODEC_SAMPLERATE_44_1K = 2,
  INNER_CODEC_SAMPLERATE_32K = 3,
  INNER_CODEC_SAMPLERATE_24K = 4,
  INNER_CODEC_SAMPLERATE_16K = 5,
  INNER_CODEC_SAMPLERATE_12K = 6,
  INNER_CODEC_SAMPLERATE_8K = 7
}
 inner CODEC采样率设置 更多...
 
enum  inner_codec_alc_hold_time_t {
  INNER_CODEC_ALC_HOLD_TIME_0MS = 0,
  INNER_CODEC_ALC_HOLD_TIME_2MS = 1,
  INNER_CODEC_ALC_HOLD_TIME_4MS = 2,
  INNER_CODEC_ALC_HOLD_TIME_8MS = 3,
  INNER_CODEC_ALC_HOLD_TIME_16MS = 4,
  INNER_CODEC_ALC_HOLD_TIME_32MS = 5,
  INNER_CODEC_ALC_HOLD_TIME_64MS = 6,
  INNER_CODEC_ALC_HOLD_TIME_128MS = 7,
  INNER_CODEC_ALC_HOLD_TIME_256MS = 8,
  INNER_CODEC_ALC_HOLD_TIME_512MS = 9,
  INNER_CODEC_ALC_HOLD_TIME_1024MS = 10
}
 inner CODEC ALC hold time设置 更多...
 
enum  inner_codec_alc_decay_time_t {
  INNER_CODEC_ALC_DECAY_TIME_500US = 0,
  INNER_CODEC_ALC_DECAY_TIME_1MS = 1,
  INNER_CODEC_ALC_DECAY_TIME_2MS = 2,
  INNER_CODEC_ALC_DECAY_TIME_4MS = 3,
  INNER_CODEC_ALC_DECAY_TIME_8MS = 4,
  INNER_CODEC_ALC_DECAY_TIME_16MS = 5,
  INNER_CODEC_ALC_DECAY_TIME_32MS = 6,
  INNER_CODEC_ALC_DECAY_TIME_64MS = 7,
  INNER_CODEC_ALC_DECAY_TIME_128MS = 8,
  INNER_CODEC_ALC_DECAY_TIME_256MS = 9,
  INNER_CODEC_ALC_DECAY_TIME_512MS = 10
}
 inner CODEC ALC decay time配置 更多...
 
enum  inner_codec_alc_attack_time_t {
  INNER_CODEC_ALC_ATTACK_TIME_125US = 0,
  INNER_CODEC_ALC_ATTACK_TIME_250US = 1,
  INNER_CODEC_ALC_ATTACK_TIME_500US = 2,
  INNER_CODEC_ALC_ATTACK_TIME_1MS = 3,
  INNER_CODEC_ALC_ATTACK_TIME_2MS = 4,
  INNER_CODEC_ALC_ATTACK_TIME_4MS = 5,
  INNER_CODEC_ALC_ATTACK_TIME_8MS = 6,
  INNER_CODEC_ALC_ATTACK_TIME_16MS = 7,
  INNER_CODEC_ALC_ATTACK_TIME_32MS = 8,
  INNER_CODEC_ALC_ATTACK_TIME_64MS = 9,
  INNER_CODEC_ALC_ATTACK_TIME_128MS = 10
}
 inner CODEC ALC attack time设置 更多...
 
enum  inner_codec_noise_gate_threshold_t {
  INNER_CODEC_NOISE_GATE_THRE_39dB = 0,
  INNER_CODEC_NOISE_GATE_THRE_45dB = 1,
  INNER_CODEC_NOISE_GATE_THRE_51dB = 2,
  INNER_CODEC_NOISE_GATE_THRE_57dB = 3
}
 inner CODEC ALC noise gate门限 更多...
 
enum  inner_cedoc_gate_t {
  INNER_CODEC_GATE_ENABLE = 1,
  INNER_CODEC_GATE_DISABLE = 0
}
 inner CODEC全局开关 更多...
 
enum  inner_codec_cha_sel_t {
  INNER_CODEC_LEFT_CHA = 0,
  INNER_CODEC_RIGHT_CHA = 1
}
 inner CODEC通道设置 更多...
 
enum  inner_codec_alc_pga_max_gain_t {
  INNER_CODEC_ALC_PGA_MAX_GAIN__13_5dB = 0,
  INNER_CODEC_ALC_PGA_MAX_GAIN__7_5dB = 1,
  INNER_CODEC_ALC_PGA_MAX_GAIN__1_5dB = 2,
  INNER_CODEC_ALC_PGA_MAX_GAIN_4_5dB = 3,
  INNER_CODEC_ALC_PGA_MAX_GAIN_10_5dB = 4,
  INNER_CODEC_ALC_PGA_MAX_GAIN_16_5dB = 5,
  INNER_CODEC_ALC_PGA_MAX_GAIN_22_5dB = 6,
  INNER_CODEC_ALC_PGA_MAX_GAIN_28_5dB = 7
}
 inner CODEC ALC 最大增益设置 更多...
 
enum  inner_codec_alc_pga_min_gain_t {
  INNER_CODEC_ALC_PGA_MIN_GAIN__18dB = 0,
  INNER_CODEC_ALC_PGA_MIN_GAIN__12dB = 1,
  INNER_CODEC_ALC_PGA_MIN_GAIN__6dB = 2,
  INNER_CODEC_ALC_PGA_MIN_GAIN_0dB = 3,
  INNER_CODEC_ALC_PGA_MIN_GAIN_6dB = 4,
  INNER_CODEC_ALC_PGA_MIN_GAIN_12dB = 5,
  INNER_CODEC_ALC_PGA_MIN_GAIN_18dB = 6,
  INNER_CODEC_ALC_PGA_MIN_GAIN_24dB = 7
}
 inner CODEC ALC 最小增益设置 更多...
 
enum  inner_codec_alc_level_t {
  INNER_CODEC_ALC_LEVEL_0dB = 0x7fff,
  INNER_CODEC_ALC_LEVEL__0_5dB = 0x78d6,
  INNER_CODEC_ALC_LEVEL__1dB = 0x7213,
  INNER_CODEC_ALC_LEVEL__1_5dB = 0x6bb1,
  INNER_CODEC_ALC_LEVEL__2dB = 0x65ab,
  INNER_CODEC_ALC_LEVEL__2_5dB = 0x5ffb,
  INNER_CODEC_ALC_LEVEL__3dB = 0x5a9d,
  INNER_CODEC_ALC_LEVEL__3_5dB = 0x558b,
  INNER_CODEC_ALC_LEVEL__4dB = 0x50c2,
  INNER_CODEC_ALC_LEVEL__4_5dB = 0x4c3e,
  INNER_CODEC_ALC_LEVEL__5dB = 0x47fa,
  INNER_CODEC_ALC_LEVEL__5_5dB = 0x43f3,
  INNER_CODEC_ALC_LEVEL__6dB = 0x4026,
  INNER_CODEC_ALC_LEVEL__6_5dB = 0x3c8f,
  INNER_CODEC_ALC_LEVEL__7dB = 0x392c,
  INNER_CODEC_ALC_LEVEL__7_5dB = 0x35f9,
  INNER_CODEC_ALC_LEVEL__8dB = 0x32f4,
  INNER_CODEC_ALC_LEVEL__8_5dB = 0x301b,
  INNER_CODEC_ALC_LEVEL__9dB = 0x2d6a,
  INNER_CODEC_ALC_LEVEL__9_5dB = 0x2adf,
  INNER_CODEC_ALC_LEVEL__10dB = 0x2879,
  INNER_CODEC_ALC_LEVEL__10_5dB = 0x2636,
  INNER_CODEC_ALC_LEVEL__11dB = 0x2412,
  INNER_CODEC_ALC_LEVEL__11_5dB = 0x220e,
  INNER_CODEC_ALC_LEVEL__12dB = 0x2026,
  INNER_CODEC_ALC_LEVEL__12_5dB = 0x1e5a,
  INNER_CODEC_ALC_LEVEL__13dB = 0x2026,
  INNER_CODEC_ALC_LEVEL__13_5dB = 0x1b0d,
  INNER_CODEC_ALC_LEVEL__14dB = 0x1989,
  INNER_CODEC_ALC_LEVEL__14_5dB = 0x181c,
  INNER_CODEC_ALC_LEVEL__15dB = 0x16c2,
  INNER_CODEC_ALC_LEVEL__15_5dB = 0x157c,
  INNER_CODEC_ALC_LEVEL__16dB = 0x1449,
  INNER_CODEC_ALC_LEVEL__16_5dB = 0x1326,
  INNER_CODEC_ALC_LEVEL__17dB = 0x1214,
  INNER_CODEC_ALC_LEVEL__17_5dB = 0x1111,
  INNER_CODEC_ALC_LEVEL__18dB = 0x101d,
  INNER_CODEC_ALC_LEVEL__18_5dB = 0x0f36,
  INNER_CODEC_ALC_LEVEL__19dB = 0x0e5c,
  INNER_CODEC_ALC_LEVEL__19_5dB = 0x0d8e
}
 
enum  inner_codec_alc_cha_sel_t {
  INNER_CODEC_ALC_CHA_R_ONLY = 0,
  INNER_CODEC_ALC_CHA_L_ONLY,
  INNER_CODEC_ALC_CHA_STEREO_ONLY,
  INNER_CODEC_ALC_CHA_NONE
}
 inner CODEC ALC通道选择 更多...
 
enum  inner_codec_micbias_t {
  INNER_CODEC_MIC_BIAS_1_0 = 0,
  INNER_CODEC_MIC_BIAS_1_1 = 1,
  INNER_CODEC_MIC_BIAS_1_2 = 2,
  INNER_CODEC_MIC_BIAS_1_3 = 3,
  INNER_CODEC_MIC_BIAS_1_4 = 4,
  INNER_CODEC_MIC_BIAS_1_5 = 5,
  INNER_CODEC_MIC_BIAS_1_6 = 6,
  INNER_CODEC_MIC_BIAS_1_7 = 7
}
 

函数

void inner_codec_up_ibas_adc (void)
 ADC电流源强制启动 更多...
 
void inner_codec_up_ibas_dac (void)
 DAC电流源强制启动 更多...
 
void inner_codec_reset (void)
 INNER CODEC reset 更多...
 
void inner_codec_power_up (inner_codec_current_t current)
 CODEC模块上电 更多...
 
void inner_codec_power_off (void)
 关闭CODEC模块电源 更多...
 
void inner_codec_hp_filter_config (inner_cedoc_gate_t gate, inner_codec_highpass_cut_off_t Hz)
 配置CODEC模块的高通滤波器 更多...
 
void inner_codec_adc_enable (inner_codec_adc_config_t *ADC_Config)
 使能CODEC中的ADC: 1.使用此函数之前先初始化CODEC_ADC_Config_TypeDef结构体并填写参数; 2.ALCL_Gain和ALCR_Gain的上下限分别是28.5dB和-18dB,步长1.5。 更多...
 
void inner_codec_adc_disable (inner_codec_cha_sel_t cha, inner_cedoc_gate_t EN)
 关闭CODEC中的ADC 更多...
 
void inner_codec_dac_enable (bool is_first_enable)
 开启DAC 更多...
 
void inner_codec_dac_disable (void)
 关闭DAC 更多...
 
void inner_codec_alc_disable (inner_codec_cha_sel_t cha)
 关闭CODEC中的ALC,并切换到 pga_gain_reg 控制PGA增益 更多...
 
void inner_codec_adc_mode_set (inner_codec_mode_t mode, inner_codec_frame_1_2len_t frame_Len, inner_codec_valid_word_len_t word_len, inner_codec_i2s_data_famat_t data_fram)
 CODEC作为ADC的模式选择 更多...
 
void inner_codec_dac_mode_set (inner_codec_mode_t mode, inner_codec_frame_1_2len_t frame_Len, inner_codec_valid_word_len_t word_len, inner_codec_i2s_data_famat_t data_fram)
 CODEC作为DAC的模式选择 更多...
 
void inner_codec_micbias_set (inner_codec_micbias_t bias)
 设置MICBIAS的大小 更多...
 

详细描述

CI130X inner codec驱动的头文件

版本
0.1
日期
2019-05-10

宏定义说明

◆ USE_CI130X_ALC

#define USE_CI130X_ALC   0

枚举类型说明

◆ inner_codec_alc_judge_t

inner CODEC ALC判断信号选择

枚举值
INNER_CODEC_ALC_JUDGE_BEFOR_HIGHPASS 

ALC的判断信号来自高通滤波器之前(同时也是数字增益之前)

INNER_CODEC_ALC_JUDGE_AFTER_HIGHPASS 

ALC的判断信号来自高通滤波器之后(同时也是数字增益之后)

◆ inner_codec_alc_mode_t

inner CODEC ALC模式设置

枚举值
INNER_CODEC_ALC_MODE_NORMAL 

ALC normal模式

INNER_CODEC_ALC_MODE_JACKWAY1 

ALC 模式为jackway1

INNER_CODEC_ALC_MODE_JACKWAY2 

ALC 模式为jackway2

INNER_CODEC_ALC_MODE_JACKWAY3 

ALC 模式为jackway3

◆ inner_codec_current_t

inner CODEC预充电电流

枚举值
INNER_CODEC_CURRENT_I 
INNER_CODEC_CURRENT_2I 
INNER_CODEC_CURRENT_4I 
INNER_CODEC_CURRENT_8I 
INNER_CODEC_CURRENT_16I 
INNER_CODEC_CURRENT_32I 
INNER_CODEC_CURRENT_64I 
INNER_CODEC_CURRENT_128I 

◆ inner_codec_highpass_cut_off_t

inner CODEC高通滤波器截止频率设置

枚举值
INNER_CODEC_HIGHPASS_CUT_OFF_20HZ 

CODEC高通滤波器截止频率设置为20Hz

INNER_CODEC_HIGHPASS_CUT_OFF_245HZ 

CODEC高通滤波器截止频率设置为245Hz

INNER_CODEC_HIGHPASS_CUT_OFF_612HZ 

CODEC高通滤波器截止频率设置为612Hz

INNER_CODEC_HIGHPASS_CUT_OFF_1HZ 

CODEC高通滤波器截止频率设置为1Hz

◆ inner_codec_lp_filter_mode_t

inner codec低通滤波器类型选择(之前固定6.67K低通)

枚举值
INNER_CODEC_LP_FILTER_IIR 
INNER_CODEC_LP_FILTER_FIR 

◆ inner_codec_use_alc_control_pgagain_t

inner CODEC使用或者不适用inner CODEC本身的ALC控制其模拟PGA的增益

枚举值
INNER_CODEC_WONT_USE_ALC_CONTROL_PGA_GAIN 

不使用ALC控制PGA增益

INNER_CODEC_USE_ALC_CONTROL_PGA_GAIN 

使用ALC控制PGA增益