微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > PurePath Studio的算法库是在哪里更新的?

PurePath Studio的算法库是在哪里更新的?

时间:10-02 整理:3721RD 点击:

我用AIC3254一段时间了,发现PurePath Studio里面的算法库算法很少。之前我看资料曾经说过算法库是定期更新的,请问在哪里更新呀?我现在只想找那个混响延时算法,就是MIC输入,加混响和延时效果之后再输出。

第二个问题:AIC3254可以同时处理和输入的独立通道太少了,只有两个模拟独立声道。是否能够有其他办法可以扩展?做到同时处理多个独立声道音频信号

Tiger,

1)你可下载新的Purepath Studio。新版软件会有些新加的库;AIC3254内部的RAM很有限,用于麦克风混响和延时多半不够用。

3)AIC3254内部只有两路ADC,对于多路输入的模拟信号,一旦经过ADC前的mixer,就变成两路了,故无法对多路模拟信号进行处理。  如果在AIC3254之前加个ADC3101,把模拟变成I2S后输给AIC3254, 加上AIC3254内部的ADC,总共可以处理4路模拟信号。如果再更多路,只能用多片AIC3254处理了。

Best Regards

Frank Pan

 

好的,我明白了。谢谢你的解答。关于Purepath Studio,我还有一些问题,就是生成代码的问题。用Purepath Studio生成代码之后,发现有些算法库在代码文件中并没有提供数据更新的接口。唯一提供了数据更新接口的就只有音量控制那个部件。这让我使用起来感觉非常麻烦,因为我需要从庞大的Coefficient RAM数组中找到需要更新的Coefficient RAM地址和数据。这感觉非常悲催。而从miniDSP Codec 初始化方法及示例代码 这资料中,说到的是在生成的代码文件中会提供部件的控制接口的,实际中我并没有发现。只有音量控制部件中才有,这是为何呢?

如上图,红框内显示的是元件的I2C起始地址。一个元件可有多个控制I2C地址,可点击鼠标右键从“help”中查找到I2C的具体地址。

也可从那个“tools/components interface overview" 查看I2C地址。

有些元件不需要控制接口,如mux元件等。

 

Best Regards

Frank Pan

非常感谢您。您提供出来的I2C这个接口我曾经也注意过,不过因为我一直使用的都是SPI控制接口,所以我就没再留意那些信息。请问,那个IC2提供的地址和SPI接口控制地址是一样的吗?我感觉应该是一样的,呵呵,就是想确认一下。最后我还有一个疑问就是,比如您上面列出的那个例子,那个GEQ_5_1部件,有五段音调,每一段都有多个对应的地址和数据,这些地址和数据Purepath Studio是否能够产生一个文件来提供?而不是在软件界面上面列出来,因为嘛,最终我们写程序都必须要把这些地址和数据写到文件上面,如果Purepath Studio能够产生这样一个文件,那么我们的工作量就能够大大地减少了。我疑问的就是在这里!因为我一直使用Purepath Studio产生的驱动文件,并没有发现这一类的信息。唯一有这些信息的,就只有音量控制部件,我截图给您看一下

这就是在资料手册中提到的信息。除了音量控制部件,其他部件在驱动头文件中并没有“接口段"部分。也就是没有提供控制接口,真的很郁闷。我之前都是从庞大的数组中寻找的。

在软件tools\components interface overview会弹出下面所示的界面,汇总列出了下图所示的元件的地址。

Best Regards

Frank Pan

好的,非常感谢。我研究一下,

您好。专家啊,你回答问题不完整哇。我研究过了,我发现确实可以找到系数内存的地址。那么第二个问题你就没回答了,第二个问题,例如一个音量控制组件,我设计的音量变化范围是-30->0->+30dB,1dB步进。那么,按照TI所提供的方法,每一次更新音量组件的音量级别数据,它就必须重新编译并产生一个驱动文件。这是非常不科学的,我很讶异一直领先科学前沿的TI,而且各个产品都无比优秀并且都充分考虑了用户的使用和方案,力求让用户用最短的时间做出最优秀的产品的TI,在 PurePath Studio这个开发软件上面会留下这么明显的缺陷。所以我严重怀疑是否还有我不清楚的 功能呢?我的意思是说,上面那个音量控制组件,能不能按照我的要求和设置,自动生成各个音量级别的系数数组文件? 这样我们这些使用者就不需要一个个地复制和制作那个庞大的数组,另外我建议TI可以参考一下ADI的做法,ADI对它们的产品各个系数都列出有详细的公式,比如上面所说的音量控制组件,它的控制系数是如何计算出来的呢?如果TI能够提供这方面完善的资料,相信TI的优势是无可超越的。ADI最比不上TI的就是它们的产品方案,没有提供完善详细的设计资料,而这方面TI做得非常好,所以 任何情况下我都愿意考虑和选择TI。先谢谢你了啊专家,麻烦帮我看看这个问题是怎么回事。

很佩服你作为工程师的探索精神!

但问题远比你想象的复杂。

你用鼠标右键点击音量元件,选择help,打开help文件,里面有一个音量~系数表。你把需要的系数写进音量元件的I2C地址就可控制音量了。比如,你要调节音量到-20dB,你只要把0x666666写入音量I2C地址就可以了。控制音量只要根据自己的需要用这个系数表建立自己的查找表就可以了。

另外,控制音量还可以用DAC音量进行控制。缺点是没有miniDSP音量元件控制范围大,优点是 不占用miniDSP的资源。

Best Regards

Frank Pan

专家,您好。您说的方法我都一直在用,问题就是有很多部件在帮助文件中没有提供系数表的。我需要从庞大的系数数组中,抽取各个控制级别的控制系数值出来,然后再组成另外一个数组,供程序来调用。所有的时间都花在这上面了,感觉非常郁闷和枯燥。今天我又发现了一个问题了,在I2C组件接口界面中,有些部件列出的I2C页地址和起始寄存器地址好像是错的。

专家,请看,这是软件给出的地址。下面我上传在软件生成的 驱动文件  中的地址

I2C页地址没有在上面的图中,I2C的页地址在驱动文件中 是11  .也就是说,无论是页地址还是寄存器地址,那个I2C组件接口界面列出来的和生成的驱动文件中的是不一样的 。请问到底怎么办哪         

Tiger,

好像没有这么麻烦。下面是我使用过的调音量的代码。 其中的查找表就是从volume元件的help提供的表得到的。
/* ******************************************************************************* */
/* 32 stage volume: 6dB, 4dB, 2dB, 0dB, -2dB, -4dB,...-56dB */     
const char DAC[] = {
 0x00, 0x19, //-56dB 0
 0x00, 0x20, //-54dB 1
 0x00, 0x29, //-52dB 2
 0x00, 0x33, //-50dB 3
 0x00, 0x41, //-48dB 4
 0x00, 0x52, //-46dB 5
 0x00, 0x67, //-44dB 6
 0x00, 0x82, //-42dB 7
 0x00, 0xA3, //-40dB 8
 0x00, 0xCE, //-38dB 9
 0x01, 0x03, //-36dB 10
 0x01, 0x46, //-34dB 11
 0x01, 0x9B, //-32dB 12
 0x02, 0x06, //-30dB 13
 0x02, 0x8C, //-28dB 14
 0x03, 0x35, //-26dB 15
 0x04, 0x09, //-24dB 16
 0x05, 0x15, //-22dB 17
 0x06, 0x66, //-20dB 18
 0x08, 0x0E, //-18dB 19
 0x0A, 0x24, //-16dB 20
 0x0C, 0xC5, //-14dB 21
 0x10, 0x13, //-12dB 22
 0x14, 0x3D, //-10dB 23
 0x19, 0x7A, //-8dB 24
 0x20, 0x13, //-6dB 25
 0x28, 0x61, //-4dB 26
 0x32, 0xD6, //-2dB 27
 0x40, 0x00, //0dB 28
 0x50, 0x92, //2dB 29
 0x65, 0x6E, //4dB 30
 0x7F, 0xB2 //6dB 31
 };
 
void SetVolume(int nVolume) 
{
  unsigned char mstVolume[2];
  mstVolume[0]=DAC[2*nVolume];
  mstVolume[1]=DAC[2*nVolume+1];
 
  I2C_singleWrite(PCM3070_Device_Address,0x00, Page_Volume); 
  I2C_multiWrite(PCM3070_Device_Address, Reg_Volume, 2, mstVolume);
 
  Switch_ADC_Buffer();
 
  I2C_singleWrite(PCM3070_Device_Address,0x00, Page_Volume);
  I2C_multiWrite(PCM3070_Device_Address, Reg_Volume, 2, mstVolume);
}  

从生产的h文件中一个个去找系数还没尝试过,应当不需要这么麻烦。你能把PPS文件上传吗?你需要的是那个元件的系数?我印象中需要提供系数的元件,在help文件中都有系数表,不需要从生成的h文件中去找。

Best Regards

Frank Pan

专家啊,怎么感觉你说的PurePath Studio软件跟我的不一样啊。我的确实是有很多元件没有系数表的啊。不然您试试那个PEQ,就是我上一个帖子中的那个参量均衡器,完全是没有系数表的。PPS文件我中午上传给你看看,

7633.VolCtrol.rar专家,麻烦您看看,这个参量均衡器组件,有着非常多的系数需要设置,最可怕的是,它没有提供系数表,也没有提供控制接口,在软件中给出的接口和生成的文件是不一致的,不知道该信谁

Tiger,

不知你有没有见过收录机上的均衡器。以5段均衡器为例,有5个推子,每个推子可以上下滑动。推上,将对应的频率提升,推下,把对应的频率降低。

你用的PEQ类似。在PPS设计生成代码后,最多可有20个推子,对应20个频率点。通过调整最多20个频率点,可以对音频信号进行频率提升或衰减。

你需要做的是调整这20个推子的增益(从-12dB到+12dB)。

这20个推子对应20个I2C地址,在PPS生成的文件内会给出。如下图所示:

你可通过如下步骤进行验证:为简单,我以5段均衡为例:打开GUI界面,如下。设计增益分别为-2,1,2,3,4dB。

你把硬件连好后,可读取I2C的对应的数据,如下图:(显示出5个推子对应的增益)

为方便对比,你可把显示设置为HEX格式后做对比:如下图

Best Regards

Frank Pan

Frank Pan

真的非常感谢你。我想是我想得太复杂了,都搞乱了。让你这么一说我就明白了,那些EQ元件已经决定下来了中心频率和其他参数,可调的只有增益。我之前想的是中心频率,增益,带宽都需要设置。呵呵,再一次谢谢你 啊

请问Frank Pan:怎么能下载PurePath

  Studio 图形开发环境,?

我从TI-eStore订购了一个音频开发板(型号:DANCEVM-A,订单号:#228641)已收到.需要使用TI的PurePath

  Studio 图形开发环境,几次提交该软件的下载申请(http://t.cn/zTb4VKh都没有任何回复,谢谢.

Peng Sun,

你可以直接向TI的代理要。

你可以试试下面的网站:http://www.ti.com/tool/aicpurepath_studio。在填写信息时,建议使用公司邮箱注册,不要用个人邮箱(@126,@163,@gmail...)注册。

另外,建议你不要在“已确认”的贴上提问题。因为很多工程师只关注还没有确认的贴子,很可能会漏掉你提的问题。

Best Regards

Frank Pan

大哥,我们也在调AIC3254这颗IC,TI官网申请

PurePath Studio两天了没下来,能否把安装包共享给我一下。

我的邮箱mojingwen163@163.com

                                                                                                                                               灰常感谢大哥!

哥,我也在用aic3254这个料,申请了好久,就是不给我,能不能发我一份,谢谢

我的邮箱lxs_14@163.com

可以帮忙发个 

 PurePath™ Studio 图形开发环境  

  邮箱 252408976@qq.com

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top