1 引言
TLV320AIC23是TI公司推出的一款高性能立体声音频编******,内置耳机输出放大器,支持mic和line in二选一的输入方式,输入和输出都具有可编程的增益调节功能。TLV320AIC23的模/数转换器(ADC)和数/模转换器(DAC)集成在芯片内部,采用先进的Σ-Δ过采样技术,可以在8kHz至96kHz的采样率下提供16bit、20bit、24bit和32bit的采样数据。ADC和DAC的输出信噪比分别可达90dB和100dB。同时,TLV320AIC23还具有很低的功耗(回放模式为23mW,节电模式为15μW)。上述优点使得TLV320AIC23成为一款非常理想的音频编******,与TI的DSP系列相配合更是相得益彰。
DSP/BIOS Driver Developer’s Kit(DDK)是TI为简化驱动程序开发为TMS320系列DSP及其EVM板等提供的驱动程序开发套件。该套件为TMS320系列各种外围器件提供完整的标准化驱动程序模型,使得驱动程序可以很方便地移植到其他应用中,大大提高驱动程序开发的效率。DDK是对每种TMS320系列DSP都提供的芯片支持库(Clip Support Library-CSL)的补充,CSL提供对外围器件寄存器配置及初始化等的低级控制,DDK完全通过CSL对外围器件进行控制。简单的说,DDK建立在CSL上层,所以用DDK来开发驱动程序将更为快捷且可移植性更好。
DDK为开发驱动程序定义了标准模型和一系列的API。为简化程序设计,标准模型又被分为二个层次,其中高层称为Class driver,低层称为Mini-driver。Class driver与器件相对独立,完成诸如缓冲区管理和请求同步等功能,同时扮演着与API和Mini-driver二者接口的角色。Mini-driver完成特定的器件初始化和控制功能,它符合IOM(I/O Mini-driver)的接口标准。DDK的这种分层结构使得驱动开发人员仅需了解单一的Mini-driver API就可以完成整体外围器件的驱动设计,而且这一过程比设计整个驱动程序要简单得多,因为Class driver控制了缓冲区管理和同步等。DDK提供3种Class driver,分别为SIO/DIO、PIP/PIO和GIO,它们都可以和任何Mini-driver结合使用。
2 TLV320AIC23的驱动设计基础

DDK的标准模型结构如图1所示,高层的应用和低层驱动相互没有直接的关联,开发中只需通过Class driver控制Mini-driver。
下面以DM642 EVM板为例,说明基于DDK的TLV320AIC23的驱动程序设计方法。
首先,需要使用配置工具建立驱动程序的入口。在DSP/BIOS config下的cdb文件中,依次选择Input/Output→Device Drivers→User→defined Drivers,在这些例程中一般已经添加了udevCodec,如果需要的话,用户可以自行添加或编辑。右键单击选择Properties选项来编辑其属性,其属性应设置如下:

正确配置驱动程序入口后,就要按照需要设置相关的参数,下面具体讨论TLV320AIC23参数的设置。
TLV320AIC23的参数结构体原型如下:
typedef struct

在一般应用中,上述结构体的大多数参数无需更改,需要修改的主要是aic23Config,他是TLV320AIC23控制寄存器值,需要通过它来控制TLV320AIC23的工作模式、输入输出选择、采样率等重要参数。
除了复位寄存器外,TLV320AIC23共有9个控制寄存器,每个寄存器控制字长为9bit,地址位为7bit,共有16bit。地址位为高7位而控制字在低9位。具体如下:
Register 0:左声道输入音量控制,缺省值为0x0017
Register 1:右声道输入音量控制,缺省值为0x0017
Register 2:左声道输入音量控制,缺省值为0x01F9
Register 3:右声道输入音量控制,缺省值为0x01F9
Register 4:模拟音频通道设置,缺省值为0x0011
Register 5:数字音频通道设置,缺省值为0x0000
Register 6:节电模式控制,缺省值为0x0000
Register 7:数字音频接口格式控制,缺省值为0x0043
Register 8:采样率控制,缺省为48kHz,对DM642 EVM板,缺省值为0x0002
Register 9:数字音频接口激活开关,缺省值为0x0001
通常情况下需要修改的寄存器包括4号和8号寄存器,即选择是mic输入还是由line in输入和根据需要选择采样率。这2个寄存器的详细配置如下:
4号寄存器配置见表1,其中,D2位INSEL(Input select for ADC)是输入选择,“0”为line in
| Copyright © 2007-2012 CHNRD.COM, All Rights Reserved | ||
| 举报邮箱:info@chnrd.com 鄂ICP备09003885号 | ||