基于基于DDK的的TLV320AIC23型编解码器的驱动设计型编解码器的驱动设计
以Tl的DM642EVM板为例,介绍基于DDK的TLV320AIC23型编解码器驱动程序设计的一般方法。针对常用的需
求,给出三种实用的参数配置方法。
1 引言
DSP/BIOS Driver Developer’s Kit(DDK)是TI为简化驱动程序开发为TMS320系列DSP及其EVM板等提供的驱动程序开发
套件。该套件为TMS320系列各种外围器件提供完整的标准化驱动程序模型,使得驱动程序可以很方便地移植到其他应用中,
大大提高驱动程序开发的效率。DDK是对每种TMS320系列DSP都提供的芯片支持库(Chip Support Library—CSL)的补
充,CSL提供对外围器件寄存器配置及初始化等的低级控制,DDK完全通过CSL来对外围器件进行控制。简单地说。DDK建
立在CSL上层.所以用DDK来开发驱动程序将更为快捷且可移植性更好。
DDK为开发驱动程序定义了标准模型和一系列的API。为简化程序设计。标准模型又被分为二个层次.其中高层称为
Class driver,低层称为Mini—driver。Class drivei与器件相对独立.完成诸如缓冲区管理和请求同步等功能.同时扮演着与
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 con_fig下的cdb文件中.依次选择In-puffOutplut---Deviee
Drivers→User→defined Drivers.在这些例程中一般已经添加了udevCodec.如果需要的话,用户可以自行添加或编辑。右
键单击选择Properties选项来编辑其属性,其属性应设置如下:
Comment:可以加入自己的注释
lnit function:键入EVMDM642_EDMA_AIC23一init
Function table ptr:键入 EVMDM642_EDMA_A-IC23一Fxn8
Function table type:选择IOM_Fxns
Deviceid:该项会被自动忽略.因为DM642 EVM板上只有一块TLV320AIC23
Device params ptr:TLV320AIC23参数结构的入口指针.使用缺省参数时设为0x0
Device global data ptr:必须设置为OxO
正确配置驱动程序入口后.就要按照需要设置相关的参数。下面具体讨论TLV320AIC23参数的设置。
TLV320AIC23的参数结构体原型如下: