首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于DDK的TLV320AIC23型编解码器的驱动设计 03

基于DDK的TLV320AIC23型编解码器的驱动设计 03

8号寄存器配置见表2,其中,采样率控制位为D5-D2的SR[3:0]。对于DM642 EVM板,设置方式见表3。



可见,需要通过4号寄存器的D2来选择输入,同时考虑D1和D0对mic的控制,采样率的控制通过设置8寄存器的SR[3:0]来实现。
3 TLV320AIC23的驱动配置方法
很多初学者在运行DM642 EVM的echo或其他音频例程时,最容易碰到的问题是通过line in输入时有输出,而通过mic输入时没有输出,更不要说改变采样率了,即使参考资料编辑aic23.h和emvdm642_edma_aic23.h修改Default参数仍然无法解决。
出现这样的问题时,首先要了解TLV320AIC23的模拟音频输入为mic和line in二选一的,其次要知道如何能够正确配置TLV320AIC23的参数使之满足特定应用的需要。如果仔细分析echo例程和其他音频例程的话,可以发现只有在echo例程和中包含了aic23.h和emvdm642_edma_aic23.h 2个头文件。其实在echo例程中,所包含的这2个头文件和TLV320AIC23的初始化语句实际并未使用。如果屏蔽掉对这2个头文件的包含以及TLV320AIC23的初始化语句,会发现编译后仍然能够正常运行。实际上echo例程中TLV320AIC23初始化语句只是提供了对TLV320AIC23进行配置的一种方法而并未直接使用,该方法在DDK包的emvdm642部分说明文件中也已提及。
由于在echo例程中初始化驱动程序入口和其他的音频例程一样使用了默认参数,而默认参数是通过调用DDK包中的evmdm642_edma_aic23.164库获得的,该库不变则配置也不变,于是就会出现上述问题。
在明确了以上原理后,通过实践证明,本文提供的以下三种配置方法可以适应各种应用。
方法一
既然默认参数是通过调用evmdem642_edma_aic23.164库获得的,那么自然可以通过修改该库来达到修改参数的目的。TI提供的DDK包中包含了各种库的源代码,这使得修改库文件成为可能。本文用到的库生成工程是ti\ddk\src\audio\evmdm642目录下的evmdm642_edma_aic23_64.pjt,只需要打开该工程,修改其中aic23.h及中的默认参数,重新编译就能生成新的库文件地这样,所有的音频例程都会默认按修改过的参数运行。
这种方法合适TLV320AIC23参数配置相对固定的应用场合。配置完全通过调用evmdm642_edma_aic23.164库初始化时进行,不用在应用工程文件中添加任何附加代码,使得工程文件更简洁,可移植性更高。
方法二
自定义符合标准结构EVMDM642_EDMA_AIC23_DevParams的结构体,例如:

然后将“_my Params”作为Device params ptr在指定入口指针时替代默认的0x0。这就符合TI推荐的方法,在echo例程中的相关代码也说明了这种方法。
返回列表