资源预览内容
第1页 / 共82页
第2页 / 共82页
第3页 / 共82页
第4页 / 共82页
第5页 / 共82页
第6页 / 共82页
第7页 / 共82页
第8页 / 共82页
第9页 / 共82页
第10页 / 共82页
亲,该文档总共82页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第5章 立体声芯片TLV320AIC23的 应用,5.1 TLV320AIC23芯片介绍 5.2 TLV320AIC23应用实验,5.1.1 TLV320AIC23特点介绍TLV320AIC23是TI公司生产的具有高度完整模拟功能的高性能立体声音频编解码芯片,数/模转换和模/数转换采用采样数字插值滤波器,转换数据长度可以是16、20、24和32位,采样速率8 kHz96 kHz。TLV320AIC23是便携数字音频播放和录音设备的理想模拟输入/输出芯片,其主要的特点有:,5.1 TLV320AIC23芯片介绍,高性能的立体声编解码芯片。90 dB信噪比A/D转换器(采样频率48 kHz);100 dB信噪比D/A转换器(采样频率48 kHz);1.423.6 V数字内核供电,和TI公司DSP内核供电电压兼容;2.73.6 V缓冲和模拟供电;896 kHz采样速率。,软件控制通过TI McBSP支持多种串行通信协议。兼容2线和SPI串行通信协议;能直接和TI McBSPs相连。,音频数据输入/输出是可编程音频接口,兼容TI McBSP。I2C兼容协议只需要一个McBSP为A/D和D/A进行通信;标准的I2C,高位或低位数据填充传输;16/20/24/32位数据长度。,具有完整的驻极体麦克风偏置电路和缓冲。低噪声麦克风偏置引脚为驻极体电容提供偏置电压,其典型值等于3/4AVDD;有可调的、增益为15的运放缓冲器;控制寄存器可选择增益为0 dB或20 dB。,立体声输入。可编程增益;有模拟旁路。A/D转换器有多个输入,可以是立体声道或麦克风。立体声输出。注:模拟混合器可以把D/A转换器和模拟旁路混合起来。模拟量控制可以禁止。,高效率的耳机放大器。模拟供电电压为3.3 V时,负载为32 ,输出功率为30 mW。灵活的电源管理,全部可以软件控制。在回放模式功耗23 mW;备用模式功耗小于150 W;掉电模式小于15 W。,5.1.2 TLV320AIC23芯片内部结构框图和引脚安排1. TLV320AIC23芯片的内部结构TLV320AIC23芯片的内部结构框图如图5-1所示。,图5-1 TLV320AIC23芯片的内部结构框图,2. TLV320AIC23的引脚安排TLV320AIC23芯片的引脚安排如图5-2所示。表5-1 给出了TLV320AIC23芯片的引脚功能,可参阅参考文献10。,图5-2 PW封装的引脚安排,表5-1 TLV320AIC23芯片的引脚功能说明,5.1.3 TLV320AIC23与C5509的硬件连接TLV320AIC23与C5509的硬件连接如图5-3所示。J5为麦克风输入,J6为立体声线性输入,J7为耳机输出,J8为立体声线性输出。在模拟电路设计部分,麦克风输入信号经过电容C52、C55和电阻R75组成的滤波电路;立体声线性输入使用1/2分压电路和隔直流电容;耳机线和音频线输出使用电容进行隔直流。,图5-3 TLV320AIC23与C5509的硬件连接图,AIC23控制接口和C5509的I2C接口相连,将AIC23串行控制接口模式设成I2C模式,即22脚经过一个电阻后接地。数据输出/输入接口和C5509的McBSP0相连接。,5.2.1 实验目的了解C55x DSP I2C接口、McBSP接口。了解立体声芯片TLV320AIC23。学习I2C接口、McBSP接口、AIC23的初始化;学习中断处理。,5.2 TLV320AIC23应用实验,5.2.2 实验设备PC兼容机一台;操作系统为Windows 2000(或WindowsNT 4.0、Windows 98、Windows XP);计算机已经安装CCS v3.1集成环境软件。DSP仿真器ICETEK-5100USB V2.0A一个;DSP目标板ICETEK-VC5509-A一块。麦克风、耳机及相应的音频线若干。,5.2.3 实验要求 用CCS集成仿真环境完成建立工程、源文件和命令文件,保存和添加文件到工程,编译、链接、运行和调试等。使用不同的视窗观察寄存器和存储器空间的数据内容以及输出波形的时域和频域图等。,5.2.4 实验步骤1. 实验准备参照第2章(若使用的仿真器不同,请参照其他相关资料)对CCS硬件仿真进行设置;在断电情况下将仿真器和目标板相连,再将仿真器和计算机相连。,将音频线连接,一端接到目标板的音频输入端J6,另一端接到电脑声卡输出端或别的音频输出端。将麦克风接到麦克风输入端子J5;将耳机线接到耳机输出端子J7;给目标板供上电,启动CCS,使用CCS连接仿真器。,2. 新建立工程和相应的源文件、命令文件新建五个.asm汇编源文件和一个命令文件(这些文件名读者可以自己命名,也可以参照图5-4进行命名),其中除了在本章5.2.5小节中的四个.asm程序和一个命令文件外,还含有在第2章2.2.5小节中的“2.SDRAM.asm初始化程序”。分别输入这些程序,保存这些文件并把它们添加到工程项目中,如图5-4所示。,图5-4 工程界面,3. 编译链接工程对工程进行编译链接。在编译链接过程中如果有错误,需要进行修改,直至无错误提示信息为止。编译成功后,装载输出文件。4. 全速运行程序在主菜单中选择DebugRun 命令(也可以点击或按F5键),运行程序。使用电脑播放器播放音乐,戴上耳机,可以听到音乐和麦克风的声音。,5. 观察音频信号的时域图在主菜单中选择DebugHalt命令(也可以点击 或按Shift+F5键),暂停观察某一时刻的波形。从CCS View观察窗打开图形属性对话框,如图5-5所示,参照其对话框进行相应修改,修改好后点击OK确认,则可以看到如图5-6所示的波形图,图形上半部分为左声道声音的波形,下半部分为右声道声音的波形。,图5-5 图形属性对话框,图5-6 图形观察窗口中的左、右声道声音波形,5.2.5 参考程序清单1. 主程序.mmregs.def _c_int00;定义符号_c_int00为主程序入口.def mcbsp0_init;定义McBSP0接口初始化子程序 入口.def data_w_r;定义变量data_w_r.ref sdram_init;引用外部符号sdram_init为 SDRAM初始化子程序入口.ref i2c_init;引用外部符号i2c_init为I2C初始 化子程序入口,.ref i2c_disable;引用外部符号i2c_disable .ref i2c_write;引用外部符号i2c_write为总线写.ref i2c_read;引用外部符号i2c_read为总线读.ref clkmd_init;引用外部符号clkmd_init为时钟模块初 始化子程序入口.ref aic23init;引用外部符号aic23init为AIC23模块初 始化子程序入口,mcbsp0_pdp.set 2800h/128;McBSP0寄存器所在数据 页地址drr2.set 0h;数据接收寄存器2 drr1.set 1h ;数据接收寄存器1dxr2.set 2h ;数据发送寄存器2dxr1.set 3h ;数据发送寄存器1 spcr2.set 4h ;串口控制寄存器2,spcr1 .set 5h ;串口控制寄存器1rcr2 .set 6h ;接收控制寄存器2rcr1.set 7h ;接收控制寄存器1xcr2.set 8h ;发送控制寄存器2xcr1.set 9h ;发送控制寄存器1 srgr2.set 0ah ;采样率产生寄存器2srgr1.set 0bh ;采样率产生寄存器1mcr2.set 0ch ;多通道控制寄存器2,mcr1.set 0dh ;多通道控制寄存器1rcera.set 0eh ;接收通道使能寄存器A区rcerb.set 0fh ;接收通道使能寄存器B区xcera.set 10h ;发送通道使能寄存器A区xcerb.set 11h ;发送通道使能寄存器B区pcr.set 12h ;引脚控制寄存器rcerc.set 13h ;接收通道使能寄存器C区rcerd.set 14h ;接收通道使能寄存器D区,xcerc.set 15h ;发送通道使能寄存器C区xcerd.set 16h ;发送通道使能寄存器D区rcere.set 17h ;接收通道使能寄存器E区rcerf.set 18h ;接收通道使能寄存器F区xcere.set 19h ;发送通道使能寄存器E区xcerf.set 1ah ;发送通道使能寄存器F区rcerg.set 1bh ;接收通道使能寄存器G区rcerh.set 1ch ;接收通道使能寄存器H区,xcerg.set 1dh ;发送通道使能寄存器G区xcerh.set 1eh ;发送通道使能寄存器H区spcr1_rrdy .set 02h;串口控制寄存器对应位length .set 256;16位左(右)声道循环缓冲 区长度 .bss data_w_r,2;为变量预留2字空间.bss left,512;为左声道预留512字空间.bss right,512;为右声道预留512字空间,STACK .usect “.stack”,200h;为数据堆栈预留 512个字空间SYSSTACK .usect “.sysstack”,200h;为系统堆栈预留 512个字空间.sect .vectorsrsv: ; reset vector B _c_int00 ;branch to C entry point NOP .align 8.text,_c_int00:amov #0,xdp ;数据页指针xdp指 向(零页)CPU存储 器映射寄存器amov #STACK+200h,xsp ;指针xsp指向数据 堆栈底部amov #SYSSTACK+200h,xssp ;指针xssp指向系统 堆栈底部;init interruptbset intm ;colse interupt(关全 局中断),mov #1,ivpd;DSP中断矢量指针ivpdmov #1,ivph;DSP中断矢量指针ivphmov #00h,ier0;清中断使能寄存器ier0mov #00h,dbier0;清调试中断使能寄存器dbier0mov #0,ier1;清中断使能寄存器ier1mov #0ffffh,ifr0;清中断标志寄存器ifr0mov #0ffffh,ifr1;清中断标志寄存器ifr1call sdram_init;调用SDRAM初始化子程序call clkmd_init;调用时钟模块初始化子程序,call i2c_init;调用I2C初始化子程序call aic23init;调用AIC23初始化子程序call mcbsp0_init;调用McBSP0初始化子程序mov #mcbsp0_pdp,pdp;当前数据页指向McBSP0寄存器wait_rx:btst #spcr1_rrdy,port(spcr1),tc1;测试串口控制寄存器RFULL位状态送tc1,bcc wait_rx,!tc1;判断接收器是否满,若tc1=1,则接收器满,有新数据;未读,可以接收数据,否则tc1=0,等待mov port(drr2),ac1;从DR引脚接收左声道16位数据mov port(drr1),ac0从DR引脚接收右声道16位数据 mov ac0,port(d
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号