TI—CC3200【3】TLV320AIC3254调节MIC录音增益
来源:互联网 发布:新网域名证书查询 编辑:程序博客网 时间:2024/06/07 13:00
通过TICC3200+TLV320AIC3254录音,将录取的音频传至电脑上播放,发现录得声音特别小:
考虑应该是麦克风的增益问题,然后从程序里面找到音频的芯片的配置函数,在这个函数里面找到mic相关的配置,代码:
if(mic) { unsigned char reg1 = 0x00;// TI3254_MICBIAS_CTRL_REG unsigned char reg2 = 0x00;// TI3254_LEFT_MICPGA_P_CTRL_REG unsigned char reg3 = 0x00;// TI3254_LEFT_MICPGA_N_CTRL_REG unsigned char reg4 = 0x00;// TI3254_RIGHT_MICPGA_P_CTRL_REG unsigned char reg5 = 0x00;// TI3254_RIGHT_MICPGA_N_CTRL_REG unsigned char reg6 = 0x00;// TI3254_FLOAT_IP_CTRL_REG AudioCodecPageSelect(TI3254_PAGE_8);// Select Page 8 AudioCodecRegWrite(TI3254_ADC_ADP_FILTER_CTRL_REG, 0x04); // Adaptive Filtering enabled for ADC AudioCodecPageSelect(TI3254_PAGE_0);//Select Page 0 AudioCodecRegWrite(TI3254_ADC_SIG_P_BLK_CTRL_REG, 0x2);// ADC Signal Processing Block PRB_P2 if(mic & AUDIO_CODEC_MIC_LINE_IN) { reg1 |= 0x40;// MICBIAS powered up reg2 |= 0x40;// IN1L is routed to Left MICPGA with 10k resistance reg3 |= 0x40;// CM is routed to Left MICPGA via CM1L with 10k resistance reg4 |= 0x40;// IN1R is routed to Right MICPGA with 10k resistance reg5 |= 0x40;// CM is routed to Right MICPGA via CM1R with 10k resistance reg6 |= 0xC0;// IN1L input is weakly driven to common mode. Use when not routing IN1L to Left and Right MICPGA and HPL, HPR } if(mic & AUDIO_CODEC_MIC_MONO) { reg1 |= 0x40;// MICBIAS powered up reg2 |= 0x00; reg3 |= 0x10; reg4 |= 0x10;// IN2R is routed to Right MICPGA with 10k resistance reg5 |= 0x40;// CM is routed to Right MICPGA via CM1R with 10k resistance reg6 |= 0x10;// IN2R input is weakly driven to common mode. Use when not routing IN2R to Left and Right MICPGA } if(mic & AUDIO_CODEC_MIC_ONBOARD) { reg1 |= 0x40;// MICBIAS powered up reg2 |= 0x00; reg3 |= 0x04; reg4 |= 0x04;// IN3R is routed to Right MICPGA with 10k resistance reg5 |= 0x40;// CM is routed to Right MICPGA via CM1R with 10k resistance reg6 |= 0x04;// IN3R input is weakly driven to common mode. Use when not routing IN3R to Left and Right MICPGA } AudioCodecPageSelect(TI3254_PAGE_1); //Select Page 1 AudioCodecRegWrite(TI3254_MICBIAS_CTRL_REG, reg1); //Route IN2L not routed AudioCodecRegWrite(TI3254_LEFT_MICPGA_P_CTRL_REG, reg2); //Route IN2R CM1L to LEFT_N with 10K input impedance AudioCodecRegWrite(TI3254_LEFT_MICPGA_N_CTRL_REG, reg3); //Route IN2R to RIGHT_P with 10K input impedance AudioCodecRegWrite(TI3254_RIGHT_MICPGA_P_CTRL_REG, reg4); //Route CM1R to RIGHT_M with 10K input impedance AudioCodecRegWrite(TI3254_RIGHT_MICPGA_N_CTRL_REG, reg5); AudioCodecRegWrite(TI3254_FLOAT_IP_CTRL_REG, reg6); //make channel gain 0dB, since 20K input //impedance is used single ended AudioCodecRegWrite(TI3254_LEFT_MICPGA_VOL_CTRL_REG, 0x5F);// 0.0dB //Unmute Right MICPGA, Gain selection of 6dB to //make channel gain 0dB, since 20K input //impedance is used single ended AudioCodecRegWrite(TI3254_RIGHT_MICPGA_VOL_CTRL_REG, 0x5F);// 0.0dB AudioCodecRegWrite(TI3254_LEFT_ADC_VOL_CTRL_REG, 0x68);// -12dB 0x68 AudioCodecRegWrite(TI3254_RIGHT_ADC_VOL_CTRL_REG, 0x68);// -12dB AudioCodecPageSelect(TI3254_PAGE_0);// Select Page 0 //Power up LADC/RADC AudioCodecRegWrite(TI3254_ADC_CHANNEL_SETUP_REG, 0xC0);// Left and Right Channel ADC is powered up //Unmute LADC/RADC AudioCodecRegWrite(TI3254_ADC_FINE_GAIN_ADJ_REG, 0x00);// Left and Right ADC Channel Un-muted. Left and Right ADC Channel Fine Gain = 0dB, }结合注释简单看过之后,发现调节增益的应该是这两个寄存器:
//make channel gain 0dB, since 20K input //impedance is used single ended AudioCodecRegWrite(TI3254_LEFT_MICPGA_VOL_CTRL_REG, 0x5F);// 0.0dB //Unmute Right MICPGA, Gain selection of 6dB to //make channel gain 0dB, since 20K input //impedance is used single ended AudioCodecRegWrite(TI3254_RIGHT_MICPGA_VOL_CTRL_REG, 0x5F);// 0.0dB找到寄存器的编号:
#define TI3254_LEFT_MICPGA_VOL_CTRL_REG0x3B#define TI3254_RIGHT_MICPGA_VOL_CTRL_REG 0x3C是0X3B和0X3C寄存器,然后从数据手册上查得:
初步确定,应该是这两个寄存器来调节增益的,但是增益的范围是多少呢?继续查找数据手册得到:
知范围是0—47.5dB,这里带着小数点,怎么用十六进制来表示呢,继续找数据手册,但是找遍了也没有找到,于是乎就自己试,比如增益20dB就用0X14来表示,这里试了很长很长时间也没有成功。期间有一个问题很是不解:
带着这个问题和增益值的设置问题百度,百度到一个TI官网的链接:
http://www.ti.com.cn/product/cn/TLV320AIC3254/technicaldocuments
这份文档的名字“TLV320AIC3254 Application Reference Guide
Reference Guide”,在这个文档里面有关于每个寄存器的值是怎么设置的。
恍然大悟。
【但是需要注意的是:这些寄存器分为Page1、Page2、一直到Page44,在Page1和Page2里面都有0X3B和0X3C这两个寄存器,当然作用和完全不同的,刚开始的时候我就是没有注意,在这里困惑了好久,直到和数据手册一个一个比对了一下才反应过来。】
将增益设置为47.5之后波形:
阅读全文
0 0
- TI—CC3200【3】TLV320AIC3254调节MIC录音增益
- TI—CC3200【4】MIC录音将立体声录音改为单声道录音
- TI—CC3200【5】关于TLV320AIC3254的hp和lo输出“沙沙”声的问题
- 录音mic占用,录音异常
- TI—CC3200【2】通过UDP传输音频
- TI—CC3200【7】引脚模式的配置
- 使用蓝牙mic录音
- 如何 调节 PID 增益
- eg4002的增益调节
- CC3200 TI RTOS LPDS模式
- TI CC3200 SDK开发详解——SDK目录结构详解
- TI CC3200 SDK开发详解——SDK目录结构详解
- TI—CC3200【1】独特的一步式WI-FI智能配置技术-SmartConfig测试
- TI—CC3200【6】通过功放芯片的使能引脚消去POPO声
- TI CC3200 IAR 开发环境搭建
- TI CC3200实现TCP/IP通信之一
- TI CC3200 IAR 开发环境搭建
- TI CC3200实现TCP/IP通信之一
- 【转】Unity3D脚本中Start()和Awake()的区别
- Object对象深入理解及通用接口
- 查询MySQL文件存储位置
- 想做高级程序员?你需要养成这7个习惯!
- WebView的简单使用,附加一点JS交互操作
- TI—CC3200【3】TLV320AIC3254调节MIC录音增益
- 华为笔试题
- "TypeError: Cannot read property 'undefined' of undefined"
- svn命令
- Matlab中的FFT计算
- 动态规划入门级教学(leetcode)53.Maximum Subarray
- 反射
- VLC播放器应用------LIBVLC API解析
- 深度优先搜索与广度优先搜索