tlv320aic3101音频输入无声音
你好,我现在遇到一个问题,我可以采集到芯片内部发出的数据,但是采集不到麦克风的输入信号
这是我驱动里面寄存器的配置
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