微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > tlv320aic3101音频输入无声音

tlv320aic3101音频输入无声音

时间:10-02 整理:3721RD 点击:

你好,我现在遇到一个问题,我可以采集到芯片内部发出的数据,但是采集不到麦克风的输入信号

这是我驱动里面寄存器的配置

tlv320aic31_write(IIC_device_addr[chip_num],3,0x91);
    tlv320aic31_write(IIC_device_addr[chip_num],4,0x20);
    tlv320aic31_write(IIC_device_addr[chip_num],5,0x1E);
    tlv320aic31_write(IIC_device_addr[chip_num],6,0x00);
    tlv320aic31_write(IIC_device_addr[chip_num],7,0x00);
    tlv320aic31_write(IIC_device_addr[chip_num],8,0xf0);
    tlv320aic31_write(IIC_device_addr[chip_num],9,0x00);
    tlv320aic31_write(IIC_device_addr[chip_num],11,0x01);
    tlv320aic31_write(IIC_device_addr[chip_num],19,0x80);
    tlv320aic31_write(IIC_device_addr[chip_num],24,0x80);
    tlv320aic31_write(IIC_device_addr[chip_num],25,0x40);
    tlv320aic31_write(IIC_device_addr[chip_num],51,0x08);
    tlv320aic31_write(IIC_device_addr[chip_num],65,0x08);
    tlv320aic31_write(IIC_device_addr[chip_num],101,0x00);

附件里面是我的原理图用的是第10和11口,项目已经卡在这里两个星期了,希望您帮帮我! QQ:978472426

你好:

1.原理图上的15pin是连到MICBIAS上吗?

2.根据你的设置,AIC3101是slave,如果MCLK=12.288MHZ,其余I2S时钟应为:WCLK=48KHZ,BCLK=2*16*WCLK=1.536MHZ。请先检查一下时钟是否保持这个关系,以及是否有时钟输出。如果没有时钟输出,就采集不到MIC的信号。

3.根据你的MIC位置,请参考以下配置,比对自己的配置:

w 30 1F F8
w 30 15 F8
w 30 16 84
w 30 13 84
w 30 0F 00
w 30 10 00

w 30 19 80 //Bias设置,比对自己的MIC规格书

 

你好感谢您的回复,pin15是接了micbias,我是新手我也搞不清楚这些寄存器该设置成多少,我是看文档设置的,我用的海思里面的tlv320aic3101驱动,里面唯独没有把mic输入加进去,所以能告诉我一下,寄存器的值应该设置成多少吗,刚才我量了一下      估计值MCLK=1.2MHZ左右    BCLK=660KHZ     WCLK=20.6    这个不符合您说的那个公式啊。还有您说的那个     MIC配置没弄明白啊           期待着您的回复

你好:

1.你下面的代码设置显示,CLK应该满足这个关系。

这样看来,要么是你代码设置错了,要么就是你的codec是做slave器件,不是master。

不管怎么样,WCLK=20.6不是常用的采样率,常用的采样率是8K,44.1K,48K。

2.MIC的配置主要是路径和BIAS,选用哪个LINE口进入,BIAS有没有给电,音量有没有调节。这几个都设置了就可以了。

你好!这是我代码里面设置  

    AiDevId = 0;
    stAttr.enWorkmode =AIO_MODE_I2S_MASTER;
    stAttr.enBitwidth = AUDIO_BIT_WIDTH_16;
    stAttr.enSamplerate = AUDIO_SAMPLE_RATE_8000;
    stAttr.enSoundmode = AUDIO_SOUND_MODE_MOMO;       
    stAttr.u32EXFlag = 1;/* should set 1, ext to 16bit */
    stAttr.u32FrmNum = 40;
    stAttr.u32PtNumPerFrm = AUDIO_POINT_NUM;

如果用从设备采集到的数据是0,说明不是从设备,位宽度16,采样频率8K,  BIAS有供电,音量怎么调节啊,这个不确定 ,还有我原理图上是双端输入,这个模式下不知道我的寄存器设置的对不对

你好:

请参考上贴中我发的配置。

w 30 1F F8,解释一下:W 写,0x30是AIC3101的I2C 地址,0x1F是datasheet中register 31,向register 31写0XF8。

你看看我提出来的那几个寄存器就明白了。

 

你好!我按照你说的  那样设置了我的寄存器     寄存器值在附件中      然后我量了一下 MCLOCK=4MHZ ,  WCLOCK=388KHZ,  BCLOCK=13.3KHZ      MIC两端的电压2.0V      还是采集不到MIC的声音               

你好:

你的CLK明显有问题,WCLK怎么会比BCLK还大?还有你的codec是做主还是从?(主设备的意思是CLK由codec发出,从设备意思是codec接受外界来的时钟)。

请确认时钟,先找到问题点。花点时间看看。

你好!我发现问题了,HI3507不支持主模式,只能用从模式,我的电路图还需要修改吗?   那些寄存器的值需要从新修改吗    期待着您的回复

你好:

那样你的codec就要做主,需要配置CLK。我之前写给你的寄存器没有配置时钟,是codec做从的例子。

下面的寄存器是关于codec做从,MCLK=12.288Mhz的相关寄存器配置。
 MCLK=12.288MHZ,Codec Slave:BCLK=2.304Khz, WCLK=48Khz

 {0x02, 0x00},  //ADC/DAC fs=fsref/1                                                                                                                                     
 {0x03, 0x10},  //PLL disable,Q=2                                                                                                                                        
 {0x04, 0x00},  //PLL disable                                                                                                                                            
 {0x65, 0x01},  //CODEC_CLKIN=CLKdiv_OUT                                                                                                                                 
 {0x66, 0x00},  //PLLCLK_IN uses MCLK                                                                                                                                    
 {0x07, 0x0A},  //fS(ref) = 48 kHz;Left-DAC data path plays left-channel input data.Right-DAC data path plays right-channel input data.                                  
 {0x08, 0xC0},  //BCLK/WCLK output,master                                                                                                                                
 {0x09, 0x20},  //I2S,16bit,Continuous-transfer mode

请理解并核对。

你好!我按照你说的这么改的    但是我量了一下    我发现    MCLOCK  BCLOCK  WCLOCK   全都没有时钟了        寄存器0x08是让codec输出时钟的意思吧        我是否需要外接晶振呢

你好:

需要的,你需要外部提供MCLK,codec内部才能根据MCLK生产BCLK和WCLK。

你好,您能提供   这个芯片正常工作的  时钟的值吗 ?   晶振是12M?

你好:

建议你可以参照第十贴的内容,里面有个MCLK的大小,可以完全参照。

 

你好!由于项目的进度,今天又开始弄音频了,我将HI3507设置成从模式,tlv320为主,外接了一个12.288MHZ的晶振,WCLOCK和BCLOCK符合公式,我也能采集到芯片内部发出的数据,但是还是采集不到MIC的声音

这是我寄存器的配置:

    tlv320aic31_write(IIC_device_addr[chip_num],0x02,0x00);
    tlv320aic31_write(IIC_device_addr[chip_num],0x03,0x10);
    tlv320aic31_write(IIC_device_addr[chip_num],0x04,0x00);
    tlv320aic31_write(IIC_device_addr[chip_num],0x65,0x01);
    tlv320aic31_write(IIC_device_addr[chip_num],0x66,0x00);
    tlv320aic31_write(IIC_device_addr[chip_num],0x07,0x0A);
    tlv320aic31_write(IIC_device_addr[chip_num],0x08,0xC0);
    tlv320aic31_write(IIC_device_addr[chip_num],0x09,0x20);
    tlv320aic31_write(IIC_device_addr[chip_num],25,0x80);

这些值是上次你给我发的,我也看了这些寄存器的值的含义,不断的尝试,结果还是失败,期待着您的回复!

你好:

你现在codec是做主还是从? 也就是I2S时钟是外部给的还是codec输出?

1.如果是外部供给,I2S时钟线各是多少频率?

2.如果是codec输出,当前的配置下,有时钟输出吗?

这个问题一直没有交流清楚,整体MIC录音配置并不复杂。

你好,问题找到了,可以采集到声音了,但是现在播放录制的文件,喇叭没有声音

你好  问题终于找到了,可以采集到声音了,我现在播放录下来的声音文件没有声音输出,能不能给个配置声音输出的寄存器的值啊,我弄来弄去都没声音

你好:

请问你的问题是出在哪里?

Speaker的发声参照如下配置,你对着寄存器改DAC 和speaker那一部分即可,其余的可以不用改,沿用你之前的配置。

w 30 07 8A
w 30 25 C0
w 30 2B 00
w 30 29 02
w 30 0E C0
w 30 2F 80
w 30 40 80
w 30 41 0D
w 30 33 0D

 

 

您好,感谢你一直对我的支持,我原来的问题在于HI3507这边的寄存器设置有问题,3507这款芯片很古老,文档上面并没有说如何配置音频,是我无意中发现的,我现在想麻烦您,最后再系统的发一次  tlv320做从设备时候的寄存器的值可以吗?  我发现我这边现在有点乱      期待着您的回复      10月24号要去北京参展了

你好   按照您这么配置,播放音频文件   老是发出  嘟嘟嘟  的声音       能系统的给我一下   寄存器的配置吗

你好:

请根据帖子中的寄存器进行参考配置。建议按照音频的流向,进行检查。

你好  我现在可以录制声音  也可以播放了      但是播放声音好小啊     而且我感觉MIC输入的声音也很小,要贴在MIC说话才能听见,

你好:

可以调一下PGA的增益,这样录音的声音就大了。

播放声音好小,也可以调输出的增益,如果是Lout 就调Lineout的增益,如果是HP的输出就调HP的增益。也可以调DAC的增益,但是不要调太大,太大DAC容易失真,后面就破音了。

你好  我现在播放声音还算可以了      但是麦克风的声音还是很小    无论我怎么调PGA都没什么区别    附件里面画圈圈是我的麦克风接入

你好:

确实是改你圈出来的寄存器。

你的麦克风录音小,是录完音之后在电脑上播放听起来觉得很小?正常情况下,设置了PGA录音声音是正常的,不会明显偏小的。

你好,我发现,我对着MIC吹气,声音很大,但是说话声音却非常小,您能按照我的接法  给出一个寄存器设置的值呢  ,只需要mic这边的就行

你好:

就是你圈出来的那两个寄存器,没有什么特别的代码。

有时候很多问题是系统问题,你得系统的看待这些问题,不能总是局限在软件上,软件上调录音音量的就是这两个寄存器。

只要电路正常,MIC正常,按照之前我给的哪些代码配置,是没有问题的。所以你得回头检查所有这些没有讨论过的问题。

我建议你确认一下是录完音在电脑上播放声音小,MIC没有问题,在检查原理图,在检查录音相关的寄存器。录音相关的寄存器配置,前面几贴中讨论过的。

 

您好:

  我的TLV3104做从设备,、按照提示的寄存器设置方法设置的,可是MCLK为0是怎么回事啊,是不是晶振坏了啊?

您好:

  跟您说的详细一点把,就是我的TLV3104做slave设备,主设备是AM3358,原理图见附件,能给我一组寄存器配置吗?谢谢了阿,请你们一定要帮忙阿。

您好:

 请问这个设置寄存器有没有什么工具之类的啊?或者脚本啊?

你好,我想问一下,tlv320aic3101的采样率设置。

按datesheet里面给出的配置配置,主频12Mhz ,P=1 ,R=1,J=8,D=1920. DAC_fs=f_ref/3  .理论上 f_ref =48kHz , DAC_fs =16kHz。

我配置如下

          /* page0 */

          Tlv320Aic3101_Write(0,0x00);

          /* pll enable p=1 */

          Tlv320Aic3101_Write(3,0x81);

          /* pll enable r=1 */

          Tlv320Aic3101_Write(11,0x41);

          /* j=8 */

          Tlv320Aic3101_Write(4,0x20);

          /* d=1920 0x780 */

          Tlv320Aic3101_Write(5,0x80);

          Tlv320Aic3101_Write(6,0x1c);

          /* pll_clk enable */

          Tlv320Aic3101_Write(101,0x00);

          Tlv320Aic3101_Write(102,0xc0);

          /* f_ref/3 */

          Tlv320Aic3101_Write(2,0x44);

 

但结果现在采样率一直是48kHZ,  register 2的配置完全无效,不知道哪里没有配置,或者未配置成功。还请帮忙看看

Hi,

你可以去产品主页下载EVM的GUI软件,使用它来计算PLL相关的参数,同时包含了一些示例的应用配置:

http://www.ti.com/tool/tlv320aic3101evm-k

TLV320ADC3101、DS90UB913/914大量原装现货,联系qq2817821256,18682112448

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top