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

TLV320AIC3204: TLV320AIC3204接数字麦克风,数字输出和模拟输出都没有信号

Part Number:TLV320AIC3204

如图1,使用mcu配置aic3204,pin11和pin32作为字时钟和位时钟都有输出,数字麦克风的sd引脚也有输出;但是aic3204的pin5没有输出,pin22和pin23也没有模拟信号输出,参考的是官方提供的数字麦克风配置,如图2。

请抽出时间不吝赐教,万分感激

Amy Luo:

您好,

您使用的数字MIC接口是I2S接口是吗?

官方提供的数字麦克风配置您是在哪里下载的?因为您使用的配置很可能是 PDM接口的MIC配置

,

Yuan Jinpeng:

就是您发给我的,然后我根据寄存器手册增加和修改了部分配置。

这部分是您发的文件8kHz采样的配置

################################################# Digital Microphone Script# 8ksps################################################

###############################################

# Software Reset################################################# Select Page 0w 30 00 00## Initialize the device through software resetw 30 01 01################################################

###############################################

# Clock and Interface Settings# ———————————————# The codec receives: MCLK = 4.096 MHz,# BLCK = 512 kHz, WCLK = 8 kHz################################################# Select Page 0w 30 00 00## NADC = 2, MADC = 2, dividers powered onw 30 12 82 82## AOSR = 128w 30 14 80###############################################

################################################ Configure Power Supplies################################################# Select Page 1w 30 00 01## Disable weak AVDD in presence of external# AVDD supplyw 30 01 08## Enable Master Analog Power Controlw 30 02 00## Select ADC PTM_R1w 30 3d ff## Set the input power-up time to 3.1ms (for ADC)w 30 47 32## Set the REF charging time to 40msw 30 7b 01################################################

###############################################

# Configure ADC Channel################################################# Select Page 0w 30 00 00## Configure MISO as clock output for DIGMICw 30 37 0E## LADC and RADC enabled for DIGMIC# Route SCLK as DIGMIC_DATA# Power up LADC/RADCw 30 51 DC## Unmute LADC/RADCw 30 52 00################################################

这部分是我根据寄存器手册增加和修改的配置,现在5脚的数字输出有信号了,但是模拟输出还是没有。

/*软件复位*/ i2c_write_byte(0, 0);// osDelay(20); i2c_write_byte(1, 1);// osDelay(20); /*设置时钟和接口*/ i2c_write_byte(0, 0); i2c_write_byte(0x12, 0x82); i2c_write_byte(0x13, 0x82); i2c_write_byte(0x14, 0x80); i2c_write_byte(0x1B, 0x20);// osDelay(20); /*电源配置*/ i2c_write_byte(0x00, 0x01); i2c_write_byte(0x01, 0x08); //禁能外部weak avdd i2c_write_byte(0x02, 0x00); //使能主机模拟电源控制// i2c_write_byte(0x3d, 0xff); // i2c_write_byte(0x47, 0x32);// i2c_write_byte(0x7b, 0x01); //Set the REF charging time to 40ms// osDelay(20); /*adc通道配置*/ i2c_write_byte(0x00, 0x00); i2c_write_byte(0x37, 0x14); i2c_write_byte(0x34, 0x20); i2c_write_byte(0x35, 0x82); i2c_write_byte(0x36, 0x02); i2c_write_byte(0x51, 0xEC); i2c_write_byte(0x52, 0x00); i2c_write_byte(0x25, 0xAA); i2c_write_byte(0x52, 0x00);// osDelay(20);

i2c_write_byte(0x00, 0x01); i2c_write_byte(0x01, 0x08); i2c_write_byte(0x02, 0x00); i2c_write_byte(0x7B, 0x01); i2c_write_byte(0x14, 0x25); i2c_write_byte(0x3a, 0x00 ); i2c_write_byte(0x0C, 0x08); i2c_write_byte(0x0D, 0x08); i2c_write_byte(0x03, 0xC0); i2c_write_byte(0x04, 0xC0); i2c_write_byte(0x10, 0x00); i2c_write_byte(0x11, 0x00); i2c_write_byte(0x09, 0x30); i2c_write_byte(0x3f, 0xC0); osDelay(2500); i2c_write_byte(0x00, 0x00); i2c_write_byte(0x3f, 0xE6); i2c_write_byte(0x40, 0x00);

另外还有两个问题:

1.我的i2s配置8kHz采样,主时钟是2Mhz,而您给的配置文件注释是4MHz。根据我查阅的资料,主时钟应该是姿势中的256倍,理论上是2MHz,是有其他的配置吗?

2.5脚输出的信号是什么格式,该怎样解析?

,

Yuan Jinpeng:

我昨天又缕了一下寄存器配置,重新写了初始化,现在是有一点输出,后续可能需要优化一些配置和滤波器。不过这两个问题还是没找到资料里的相关内容,劳烦解答一下:

1.我的i2s配置8kHz采样,主时钟是2Mhz,而您给的配置文件注释是4MHz。根据我查阅的资料,主时钟应该是姿势中的256倍,理论上是2MHz,是有其他的配置吗?

2.5脚输出的信号是什么格式,该怎样解析?

,

Amy Luo:

Yuan Jinpeng 说:1.我的i2s配置8kHz采样,主时钟是2Mhz,而您给的配置文件注释是4MHz。根据我查阅的资料,主时钟应该是姿势中的256倍,理论上是2MHz,是有其他的配置吗?

您这里是说您输入的主时钟频率是2.048MHZ而不是4.096MHZ?还是使用8Ksps的采样率然后怎样修改配置吗?

看上面时钟树,主时钟减少1倍,可以修改NADC或MADC或AOSR的值减少1倍,这样得到的8Ksps的采样率不变。

Yuan Jinpeng 说:2.5脚输出的信号是什么格式,该怎样解析?

5脚您是希望输出I2S音频数据吗?这里希望输出到哪里?

我不太明白您的应用,您使用的数字MIC接口是I2S接口的吗?看您电路图中有两个数字MIC,使用的I2S接口还一样。

,

Yuan Jinpeng:

我配置的是i2s的24位数据,但是5脚出来的信号没有规律,看不出来哪些是有效位,声音变化也没办法从数据上体现出来

,

Amy Luo:

我看了INMP441的datasheet,明白了这个MIC的应用,但是电路图中MIC的I2S_WCLK连接到哪里了?

看datasheet需要64bclk,0x1B寄存器的 Data Word length 是否应该配置为  32 bits,否则的话,您实测pin32 频率是多少?是否不满足要求

P11脚输出频率多少?是期望的8K吗?

,

Yuan Jinpeng:

现在模拟端声音信号已经出来了。我是从mcu输出时钟到aic3204的1、2、3脚,然后配置11、32脚为字时钟和位时钟,用示波器测量与2、3脚的时钟是同步的。5脚有输出,但是我现在解析不出来。inmp441的输出应该是24位有效的,0x1B寄存器我配置为i2s/24位,时序上是32位长度的。但是不知道5脚输出的格式

,

Amy Luo:

Yuan Jinpeng 说:现在模拟端声音信号已经出来了。

模拟出来的声音是数字MIC输入的声音吗?还是模拟MIC4录入的声音?您现在的应用架构是怎样的?或者说您想要实现的具体功能是什么呢?我现在感觉还不明白您具体要实现什么?每种输入信号对应的输出端口分别是什么?您是数字MIC录音到MCU吗?

电路图中数字MIC的I2S_WCLK连接到哪里了?这里是不是有网络标号错误:

您用示波器实际测量了pin 11和pin 32的波形,频率分别是多少?我理解的是您是使用11脚和32脚为数字MIC提供时钟信号,如果是fs=8KSPS采样率的话,11脚应该是8K,32脚应该是64fs

,

Yuan Jinpeng:

您估计的都对。耳机端出来的声音跟数字mic输入基本是一致的。实际板上只用了一个数字mic,因为这是打的第一个样板,有些东西都是预留的。我后来用了16K采样率,示波器测量11脚就是16k,32脚是1M。

我们的总体需求是获取很小的声音信号,在耳机端播放,并能通过蓝牙上传到app,所以也需要从5脚获取编解码芯片的数字输出。后续还需要把这个小信号放大后的信噪比提升一下,有可能需要加入滤波器。

,

Amy Luo:

11、32脚有时钟输出时,Page 0 / Register 32配置的是什么?

看下面文档的 2.3 Audio Interface部分

https://www.ti.com.cn/cn/lit/an/slaa404c/slaa404c.pdf

其中

Primary / Secondary I2S接口是不是不能同时使用?我想确认下您Page 0 / Register 32   D3D2是不是配置的b11

,

Amy Luo:

还有我一直想确认的一点:数字mic有输出的话,需给它提供I2S_WCLK,您这里数字MIC的I2S_WCLK连接到哪里了?

,

Yuan Jinpeng:

是由aic3204的11脚提供wclk给数字mic。

aic3204的1、2、3的主时钟、位时钟和字时钟由mcu提供,我们担心不能直接由2、3脚同时给aic3204和数字mic提供时钟,所以选择由aic3204的引脚配置时钟。

,

Yuan Jinpeng:

图片可能由于源文件转pdf文件时的误差,导致部分标号出现相对位置问题。aic3204的11脚即I2S_WCLK,与数字mic的位时钟引脚连接。后面的1是0欧电阻的位置

,

Yuan Jinpeng:

您方不方便通过别的联系方式沟通,这样效率太低了

,

Amy Luo:

很抱歉,技术支持都是在论坛上进行的: 中文技术论坛:https://e2echina.ti.com/ 英文技术论坛:https://e2e.ti.com/

因为每天都有很多帖子要回复,如果给您造成不便我表示很抱歉。

Yuan Jinpeng 说:aic3204的1、2、3的主时钟、位时钟和字时钟由mcu提供,

这样看,5脚DOUT的输出格式是由MCU端配置的,应按MCU配置格式解析

,

Amy Luo:

TLV320AIC3204 的两路I2S总线不能同时使用,具体看 TLV320AIC3204 Application Reference Guide  文档的第 2.6.5 Secondary I2S章节,“This multiplexing capability allows the TLV320AIC3204 to communicate with two separate devices with independent I 2S or PCM busses, one at a time.”

看您的应用应该是需要两路音频接口同时工作,您可以看下 AIC3262 或 AIC3268:

,

Yuan Jinpeng:

这样回复效率太低,也太容易混乱了,到现在还在确认些有的没的。我从头缕一下:

1.原理图预留了一些功能而实际上没有用到,我现在只连了一个数字麦克风,并没有两路音频接口;

2.aic3204的1、2、3脚由mcu提供时钟,另有11脚、32脚输出时钟给数字麦克风——原因是我担心mcu、aic3204、数字麦克风的时钟接到一起会出问题,实际情况是目前aic3204输入和输出的时钟是同步的,暂时没有问题;

3.5脚使用默认的输出功能,并在寄存器page0,register27中配置为i2s,24位数据格式: i2c_write_byte(0x1B, 0x20);

现在这些我调试过了,您也不用再确认了。我的问题还需要解答的包括:

4.模拟端耳机能正常播放声音,但是5脚输出的数据没有规律,制造声音与数据变化该怎样对应?

5.我如果要使用8k采样率,能否配置低通滤波器,目的是降低环境音?

,

Amy Luo:

我一直在试图弄明白您的应用,但是看到您上面回复,我发现我还是没有明白,您确实说一些功能是预留的,但并没有说明哪些是预留的。现在您是使用了两路输入是吗?一路是数字MIC输入,一路是模拟MIC输入?模拟MIC的录音需要pin22和pin23输出出去?数字MIC呢?您需要做怎样的处理?是需要通过2、3、5脚录音到MCU吗?这样的话就需要同时使用两路I2S接口,3204是不能满足要求的。

,

Yuan Jinpeng:

您不要管原理图了。我现在只接了一路数字麦克风,要在耳机端播放声音,还需要获取声音信号的数字输出。数字麦克风的sd脚输出到aic3204的4脚-数字输入,作为aic3204的输入。aic3204的5脚作为输出,我要使用i2s接口读取这个数据。

,

Amy Luo:

根据我对您的应用理解,您应该是想使用pin11和pin32 和4脚(一个 I2S接口secondary)将数字MIC的音频信号输入到aic3204,然后使用2脚3脚和5脚(另一个I2S接口primary)将aic3204接收到的MIC音频信号输出到MCU,如果是这样的话,aic3204是不能实现的,如上所述,AIC3204 的两路I2S(primary和secondary)总线不能同时使用,具体见TLV320AIC3204 Application Reference Guide 的 2.6.5 Secondary I2S章节描述。

,

Yuan Jinpeng:

11脚和32脚只是作为时钟,我说了好多遍了,是出于担心2、3脚不能接过多的器件。4、5脚是作为数据输入和输出,本质上就用了一路i2s。

,

Amy Luo:

但是您寄存器 0x37=0x14 和寄存器0x34=0x20 配置的是使用的secondary 音频接口的时钟:

,

Amy Luo:

2、3脚应该可以接多个器件,但只能有一个主设备

赞(0)
未经允许不得转载:TI中文支持网 » TLV320AIC3204: TLV320AIC3204接数字麦克风,数字输出和模拟输出都没有信号
分享到: 更多 (0)