如图1,使用mcu配置aic3204,pin11和pin32作为字时钟和位时钟都有输出,数字麦克风的sd引脚也有输出;但是aic3204的pin5没有输出,pin22和pin23也没有模拟信号输出,参考的是官方提供的数字麦克风配置,如图2。
请抽出时间不吝赐教,万分感激
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如图1,使用mcu配置aic3204,pin11和pin32作为字时钟和位时钟都有输出,数字麦克风的sd引脚也有输出;但是aic3204的pin5没有输出,pin22和pin23也没有模拟信号输出,参考的是官方提供的数字麦克风配置,如图2。
请抽出时间不吝赐教,万分感激
您好,
您使用的数字MIC接口是I2S接口是吗?
官方提供的数字麦克风配置您是在哪里下载的?因为您使用的配置很可能是 PDM接口的MIC配置
就是您发给我的,然后我根据寄存器手册增加和修改了部分配置。
这部分是您发的文件8kHz采样的配置
###############################################
#
# Digital Microphone Script
# 8ksps
#
###############################################
###############################################
# Software Reset
###############################################
#
# Select Page 0
w 30 00 00
#
# Initialize the device through software reset
w 30 01 01
#
###############################################
###############################################
# Clock and Interface Settings
# ---------------------------------------------
# The codec receives: MCLK = 4.096 MHz,
# BLCK = 512 kHz, WCLK = 8 kHz
###############################################
#
# Select Page 0
w 30 00 00
#
# NADC = 2, MADC = 2, dividers powered on
w 30 12 82 82
#
# AOSR = 128
w 30 14 80
#
##############################################
###############################################
# Configure Power Supplies
###############################################
#
# Select Page 1
w 30 00 01
#
# Disable weak AVDD in presence of external
# AVDD supply
w 30 01 08
#
# Enable Master Analog Power Control
w 30 02 00
#
# Select ADC PTM_R1
w 30 3d ff
#
# Set the input power-up time to 3.1ms (for ADC)
w 30 47 32
#
# Set the REF charging time to 40ms
w 30 7b 01
#
###############################################
###############################################
# Configure ADC Channel
###############################################
#
# Select Page 0
w 30 00 00
#
# Configure MISO as clock output for DIGMIC
w 30 37 0E
#
# LADC and RADC enabled for DIGMIC
# Route SCLK as DIGMIC_DATA
# Power up LADC/RADC
w 30 51 DC
#
# Unmute LADC/RADC
w 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脚输出的信号是什么格式,该怎样解析?
我昨天又缕了一下寄存器配置,重新写了初始化,现在是有一点输出,后续可能需要优化一些配置和滤波器。不过这两个问题还是没找到资料里的相关内容,劳烦解答一下:
1.我的i2s配置8kHz采样,主时钟是2Mhz,而您给的配置文件注释是4MHz。根据我查阅的资料,主时钟应该是姿势中的256倍,理论上是2MHz,是有其他的配置吗?
2.5脚输出的信号是什么格式,该怎样解析?
1.我的i2s配置8kHz采样,主时钟是2Mhz,而您给的配置文件注释是4MHz。根据我查阅的资料,主时钟应该是姿势中的256倍,理论上是2MHz,是有其他的配置吗?
您这里是说您输入的主时钟频率是2.048MHZ而不是4.096MHZ?还是使用8Ksps的采样率然后怎样修改配置吗?
看上面时钟树,主时钟减少1倍,可以修改NADC或MADC或AOSR的值减少1倍,这样得到的8Ksps的采样率不变。
2.5脚输出的信号是什么格式,该怎样解析?
5脚您是希望输出I2S音频数据吗?这里希望输出到哪里?
我不太明白您的应用,您使用的数字MIC接口是I2S接口的吗?看您电路图中有两个数字MIC,使用的I2S接口还一样。
我看了INMP441的datasheet,明白了这个MIC的应用,但是电路图中MIC的I2S_WCLK连接到哪里了?
看datasheet需要64bclk,0x1B寄存器的 Data Word length 是否应该配置为 32 bits,否则的话,您实测pin32 频率是多少?是否不满足要求
P11脚输出频率多少?是期望的8K吗?
现在模拟端声音信号已经出来了。我是从mcu输出时钟到aic3204的1、2、3脚,然后配置11、32脚为字时钟和位时钟,用示波器测量与2、3脚的时钟是同步的。5脚有输出,但是我现在解析不出来。inmp441的输出应该是24位有效的,0x1B寄存器我配置为i2s/24位,时序上是32位长度的。但是不知道5脚输出的格式
现在模拟端声音信号已经出来了。
模拟出来的声音是数字MIC输入的声音吗?还是模拟MIC4录入的声音?您现在的应用架构是怎样的?或者说您想要实现的具体功能是什么呢?我现在感觉还不明白您具体要实现什么?每种输入信号对应的输出端口分别是什么?您是数字MIC录音到MCU吗?
电路图中数字MIC的I2S_WCLK连接到哪里了?这里是不是有网络标号错误:
您用示波器实际测量了pin 11和pin 32的波形,频率分别是多少?我理解的是您是使用11脚和32脚为数字MIC提供时钟信号,如果是fs=8KSPS采样率的话,11脚应该是8K,32脚应该是64fs
您估计的都对。耳机端出来的声音跟数字mic输入基本是一致的。实际板上只用了一个数字mic,因为这是打的第一个样板,有些东西都是预留的。我后来用了16K采样率,示波器测量11脚就是16k,32脚是1M。
我们的总体需求是获取很小的声音信号,在耳机端播放,并能通过蓝牙上传到app,所以也需要从5脚获取编解码芯片的数字输出。后续还需要把这个小信号放大后的信噪比提升一下,有可能需要加入滤波器。
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
是由aic3204的11脚提供wclk给数字mic。
aic3204的1、2、3的主时钟、位时钟和字时钟由mcu提供,我们担心不能直接由2、3脚同时给aic3204和数字mic提供时钟,所以选择由aic3204的引脚配置时钟。
图片可能由于源文件转pdf文件时的误差,导致部分标号出现相对位置问题。aic3204的11脚即I2S_WCLK,与数字mic的位时钟引脚连接。后面的1是0欧电阻的位置
很抱歉,技术支持都是在论坛上进行的:
中文技术论坛:https://e2echina.ti.com/
英文技术论坛:https://e2e.ti.com/
因为每天都有很多帖子要回复,如果给您造成不便我表示很抱歉。
aic3204的1、2、3的主时钟、位时钟和字时钟由mcu提供,
这样看,5脚DOUT的输出格式是由MCU端配置的,应按MCU配置格式解析
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:
这样回复效率太低,也太容易混乱了,到现在还在确认些有的没的。我从头缕一下:
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采样率,能否配置低通滤波器,目的是降低环境音?
我一直在试图弄明白您的应用,但是看到您上面回复,我发现我还是没有明白,您确实说一些功能是预留的,但并没有说明哪些是预留的。现在您是使用了两路输入是吗?一路是数字MIC输入,一路是模拟MIC输入?模拟MIC的录音需要pin22和pin23输出出去?数字MIC呢?您需要做怎样的处理?是需要通过2、3、5脚录音到MCU吗?这样的话就需要同时使用两路I2S接口,3204是不能满足要求的。
您不要管原理图了。我现在只接了一路数字麦克风,要在耳机端播放声音,还需要获取声音信号的数字输出。数字麦克风的sd脚输出到aic3204的4脚-数字输入,作为aic3204的输入。aic3204的5脚作为输出,我要使用i2s接口读取这个数据。
根据我对您的应用理解,您应该是想使用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章节描述。