主题中讨论的其他部件: TLV320AIC3204EVM-K
我将TLV320作为蓝牙扬声器设计的前端。 TLV320将采用模拟输入并将其转换为立体声I2S。 有一个通过I2C连接到TLV320的主机处理器。 我可以看到一个叫做PurePath Studio的工具,我还没有深入研究过,PurePath Studio是否允许我根据我提供的输入数据为TLV320生成寄存器设置?
谢谢!
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.
我将TLV320作为蓝牙扬声器设计的前端。 TLV320将采用模拟输入并将其转换为立体声I2S。 有一个通过I2C连接到TLV320的主机处理器。 我可以看到一个叫做PurePath Studio的工具,我还没有深入研究过,PurePath Studio是否允许我根据我提供的输入数据为TLV320生成寄存器设置?
谢谢!
您好,Ted,
感谢您对我们的'ADC3101. 此器件具有可用的图形用户界面 (GUI),用于配置'ADC3101 EVM. 此GUI具有一些可能对您有用的示例配置脚本。 该工具位于 TLV320ADC3101 EVM的产品文件夹中。
PurePath Studio (PPS)是一个与'ADC3101兼容的工具,但是PPS用于对'ADC3101的miniDSP进行编程。 如果您不需要该器件的miniDSP功能,则不需要PPS,因为该器件的所有基本配置都可以通过前面提到的GUI实现。
此致,
-Diego Mel é ndez López ñ a
音频应用工程师
迭戈,
我已经达到了我认为它应该工作的程度,但我从TLV320中没有收到任何信号,BCLK线位于较高位置,WCLK和DOUT线位于较低位置。 我所做的就是将立体声信号(来自iPad)输入到IN1R和IN1L,我将12 MHz时钟输入MCLK。 我尝试遵循数据表第80页开始的示例代码,主要区别是我使用MCLK作为驱动PLL的输入。 您能否查看我的设置脚本,看看您是否能发现我的错误?
请注意,m I2C例程具有可以同时写入1或2个字节的函数-我在写入寄存器后尝试读回寄存器,我确实返回了我所写的内容,因此它看起来几乎可以肯定I2C工作正常。 我将寄存器参数作为十进制数发送,因为这就是它们在数据表中的列出方式,但我将这些值作为十六进制数发送,因为在我的脑海中将它们转换为二进制更容易。
void setupTLV320 (void) { //这些值及其写入顺序取自DS的第79-81页(para 11.2 .2.2) I2C_Write1 (TLV320_ADDR,0x00,0x00);//将TLV320设置为第0页 I2C_Write1 (TLV320_ADDR,0x01,0x01);//触发软重置TLV320将自行退出重置 CyDelay(100); //但它需要时间,因此等待0.1 秒等待设备(可能是不必要的) // DS第23页的表1给出了参数 // MCLK = 12 MHz,P=1,R=1,J=7,D=5264, 已达到FS = 441. kHz I2C_Write1 (TLV320_ADDR,4,0x00); I2C_Write1 (TLV320_ADDR,5,0x11); // P47 - P = 1,R = 1 I2C_Write1 (TLV320_ADDR,6,0x07); // J = 7 I2C_write2 (TLV320_ADDR,7,0x14,0x90);// D = 5264 = 0x1490 (请注意,这会在1次写入中发送2个字节) I2C_Write1 (TLV320_ADDR,5,0x91); // PWR ON至PLL且P = 1,R = 1 I2C_write2 (TLV320_ADDR,18,0x88,0x82);// p48 - NADC电源打开,Val = 8,mAdc电源打开,Val = 2 (请注意,这会在1个写入中发送2个字节) I2C_Write1 (TLV320_ADDR,20,0x80); // AOSR = 128 I2C_Write1 (TLV320_ADDR,27,0x0B); // I2S,16位,BCLKop WCLKop DoutEn I2C_Write1 (TLV320_ADDR,61,0x01); //使用PRB 01 (处理块) I2C_Write1 (TLV320_ADDR,0,0x01); //将注册页设置为1 I2C_Write1 (TLV320_ADDR,51,0x00); //将MICBIAS设置为“不使用” //程序PGA级别 I2C_write2 (TLV320_ADDR,59,0x1E,0x1E);// Set Left, 右侧模拟00 = 0dB 0x1E =+15dB (设置2个位置) //将输入/共模的路由编程到ADC输入 I2C_Write1 (TLV320_ADDR,52,0xFC); //左PGA的左ADC输入选择= IN1L (P)为单端 I2C_Write1 (TLV320_ADDR,55,0xFC); //右PGA的右ADC输入选择= IN1R(M)作为单端 //取消模拟PGA的静音并设置模拟增益 I2C_Write1 (TLV320_ADDR,0,0x00); //将TLV320设置回第0页 I2C_Write1 (TLV320_ADDR,81,0xC2); //为ADC通道加电 I2C_Write1 (TLV320_ADDR,82,0x00); //取消数字音量控制的静音并设置增益= 0 dB }
您好,Ted,
我查看了寄存器配置,并有一些意见:
此致,
-Diego Mel é ndez López ñ a
音频应用工程师
迭戈,
感谢您的审核,我将您建议的值写为注册30 (第0页)的值更改为0x88。 现在我得到了1.41 MHz/KHz/WCLK,44.1 这正是我所期待的(我认为这些都是好的),但数据线保持低电平-要么配置不正确,要么输入被静音/增益太低。 我将检查寄存器设置,但假设我通过1 UF系列电容器将iPad立体声输出直接馈入IN1R/L输入,那么哪个增益设置将反映正常的收听音量? 有什么想法吗?