TI中文支持网
TI专业的中文技术问题搜集分享网站

tlv320aic3101音频输入无声音

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

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

tlv320aic31_write(IIC_device_addr[chip_num],3,0×91);
    tlv320aic31_write(IIC_device_addr[chip_num],4,0×20);
    tlv320aic31_write(IIC_device_addr[chip_num],5,0x1E);
    tlv320aic31_write(IIC_device_addr[chip_num],6,0×00);
    tlv320aic31_write(IIC_device_addr[chip_num],7,0×00);
    tlv320aic31_write(IIC_device_addr[chip_num],8,0xf0);
    tlv320aic31_write(IIC_device_addr[chip_num],9,0×00);
    tlv320aic31_write(IIC_device_addr[chip_num],11,0×01);
    tlv320aic31_write(IIC_device_addr[chip_num],19,0×80);
    tlv320aic31_write(IIC_device_addr[chip_num],24,0×80);
    tlv320aic31_write(IIC_device_addr[chip_num],25,0×40);
    tlv320aic31_write(IIC_device_addr[chip_num],51,0×08);
    tlv320aic31_write(IIC_device_addr[chip_num],65,0×08);
    tlv320aic31_write(IIC_device_addr[chip_num],101,0×00);

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

Flora Wang:

你好:

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

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

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

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

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

 

Bill Bill:

回复 Flora Wang:

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

Flora Wang:

回复 Bill Bill:

你好:

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

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

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

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

Bill Bill:

回复 Flora Wang:

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

    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有供电,音量怎么调节啊,这个不确定 ,还有我原理图上是双端输入,这个模式下不知道我的寄存器设置的对不对

Flora Wang:

回复 Bill Bill:

你好:

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

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

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

 

Bill Bill:

回复 Flora Wang:

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

Flora Wang:

回复 Bill Bill:

你好:

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

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

Bill Bill:

回复 Flora Wang:

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

Flora Wang:

回复 Bill Bill:

你好:

那样你的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

请理解并核对。

Bill Bill:

回复 Flora Wang:

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

赞(0)
未经允许不得转载:TI中文支持网 » tlv320aic3101音频输入无声音
分享到: 更多 (0)