TLV320AIC23芯片的介绍与应用实验(.ppt_第1页
TLV320AIC23芯片的介绍与应用实验(.ppt_第2页
TLV320AIC23芯片的介绍与应用实验(.ppt_第3页
TLV320AIC23芯片的介绍与应用实验(.ppt_第4页
TLV320AIC23芯片的介绍与应用实验(.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章立体声芯片TLV320AIC23的应用 5 1TLV320AIC23芯片介绍5 2TLV320AIC23应用实验 5 1 1TLV320AIC23特点介绍TLV320AIC23是TI公司生产的具有高度完整模拟功能的高性能立体声音频编解码芯片 数 模转换和模 数转换采用采样数字插值滤波器 转换数据长度可以是16 20 24和32位 采样速率8kHz 96kHz TLV320AIC23是便携数字音频播放和录音设备的理想模拟输入 输出芯片 其主要的特点有 5 1TLV320AIC23芯片介绍 高性能的立体声编解码芯片 90dB信噪比A D转换器 采样频率48kHz 100dB信噪比D A转换器 采样频率48kHz 1 42 3 6V数字内核供电 和TI公司DSP内核供电电压兼容 2 7 3 6V缓冲和模拟供电 8 96kHz采样速率 软件控制通过TIMcBSP支持多种串行通信协议 兼容2线和SPI串行通信协议 能直接和TIMcBSPs相连 音频数据输入 输出是可编程音频接口 兼容TIMcBSP I2C兼容协议只需要一个McBSP为A D和D A进行通信 标准的I2C 高位或低位数据填充传输 16 20 24 32位数据长度 具有完整的驻极体麦克风偏置电路和缓冲 低噪声麦克风偏置引脚为驻极体电容提供偏置电压 其典型值等于3 4AVDD 有可调的 增益为1 5的运放缓冲器 控制寄存器可选择增益为0dB或20dB 立体声输入 可编程增益 有模拟旁路 A D转换器有多个输入 可以是立体声道或麦克风 立体声输出 注 模拟混合器可以把D A转换器和模拟旁路混合起来 模拟量控制可以禁止 高效率的耳机放大器 模拟供电电压为3 3V时 负载为32 输出功率为30mW 灵活的电源管理 全部可以软件控制 在回放模式功耗23mW 备用模式功耗小于150 W 掉电模式小于15 W 5 1 2TLV320AIC23芯片内部结构框图和引脚安排1 TLV320AIC23芯片的内部结构TLV320AIC23芯片的内部结构框图如图5 1所示 图5 1TLV320AIC23芯片的内部结构框图 2 TLV320AIC23的引脚安排TLV320AIC23芯片的引脚安排如图5 2所示 表5 1给出了TLV320AIC23芯片的引脚功能 可参阅参考文献 10 图5 2PW封装的引脚安排 表5 1TLV320AIC23芯片的引脚功能说明 5 1 3TLV320AIC23与C5509的硬件连接TLV320AIC23与C5509的硬件连接如图5 3所示 J5为麦克风输入 J6为立体声线性输入 J7为耳机输出 J8为立体声线性输出 在模拟电路设计部分 麦克风输入信号经过电容C52 C55和电阻R75组成的滤波电路 立体声线性输入使用1 2分压电路和隔直流电容 耳机线和音频线输出使用电容进行隔直流 图5 3TLV320AIC23与C5509的硬件连接图 AIC23控制接口和C5509的I2C接口相连 将AIC23串行控制接口模式设成I2C模式 即22脚经过一个电阻后接地 数据输出 输入接口和C5509的McBSP0相连接 5 2 1实验目的 了解C55xDSPI2C接口 McBSP接口 了解立体声芯片TLV320AIC23 学习I2C接口 McBSP接口 AIC23的初始化 学习中断处理 5 2TLV320AIC23应用实验 5 2 2实验设备 PC兼容机一台 操作系统为Windows2000 或WindowsNT4 0 Windows98 WindowsXP 计算机已经安装CCSv3 1集成环境软件 DSP仿真器ICETEK 5100USBV2 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 全速运行程序在主菜单中选择Debug Run命令 也可以点击或按F5键 运行程序 使用电脑播放器播放音乐 戴上耳机 可以听到音乐和麦克风的声音 5 观察音频信号的时域图在主菜单中选择Debug Halt命令 也可以点击或按Shift F5键 暂停观察某一时刻的波形 从CCSView观察窗打开图形属性对话框 如图5 5所示 参照其对话框进行相应修改 修改好后点击OK确认 则可以看到如图5 6所示的波形图 图形上半部分为左声道声音的波形 下半部分为右声道声音的波形 图5 5图形属性对话框 图5 6图形观察窗口中的左 右声道声音波形 5 2 5参考程序清单1 主程序 mmregs def c int00 定义符号 c int00为主程序入口 defmcbsp0 init 定义McBSP0接口初始化子程序入口 defdata w r 定义变量data w r refsdram init 引用外部符号sdram init为SDRAM初始化子程序入口 refi2c init 引用外部符号i2c init为I2C初始化子程序入口 refi2c disable 引用外部符号i2c disable refi2c write 引用外部符号i2c write为总线写 refi2c read 引用外部符号i2c read为总线读 refclkmd init 引用外部符号clkmd init为时钟模块初始化子程序入口 refaic23init 引用外部符号aic23init为AIC23模块初始化子程序入口 mcbsp0 pdp set2800h 128 McBSP0寄存器所在数据页地址drr2 set0h 数据接收寄存器2drr1 set1h 数据接收寄存器1dxr2 set2h 数据发送寄存器2dxr1 set3h 数据发送寄存器1spcr2 set4h 串口控制寄存器2 spcr1 set5h 串口控制寄存器1rcr2 set6h 接收控制寄存器2rcr1 set7h 接收控制寄存器1xcr2 set8h 发送控制寄存器2xcr1 set9h 发送控制寄存器1srgr2 set0ah 采样率产生寄存器2srgr1 set0bh 采样率产生寄存器1mcr2 set0ch 多通道控制寄存器2 mcr1 set0dh 多通道控制寄存器1rcera set0eh 接收通道使能寄存器A区rcerb set0fh 接收通道使能寄存器B区xcera set10h 发送通道使能寄存器A区xcerb set11h 发送通道使能寄存器B区pcr set12h 引脚控制寄存器rcerc set13h 接收通道使能寄存器C区rcerd set14h 接收通道使能寄存器D区 xcerc set15h 发送通道使能寄存器C区xcerd set16h 发送通道使能寄存器D区rcere set17h 接收通道使能寄存器E区rcerf set18h 接收通道使能寄存器F区xcere set19h 发送通道使能寄存器E区xcerf set1ah 发送通道使能寄存器F区rcerg set1bh 接收通道使能寄存器G区rcerh set1ch 接收通道使能寄存器H区 xcerg set1dh 发送通道使能寄存器G区xcerh set1eh 发送通道使能寄存器H区spcr1 rrdy set02h 串口控制寄存器对应位length set256 16位左 右 声道循环缓冲区长度 bssdata w r 2 为变量预留2字空间 bssleft 512 为左声道预留512字空间 bssright 512 为右声道预留512字空间 STACK usect stack 200h 为数据堆栈预留512个字空间SYSSTACK usect sysstack 200h 为系统堆栈预留512个字空间 sect vectors rsv resetvectorB c int00 branchtoCentrypointNOP align8 text c int00 amov 0 xdp 数据页指针xdp指向 零页 CPU存储器映射寄存器amov STACK 200h xsp 指针xsp指向数据堆栈底部amov SYSSTACK 200h xssp 指针xssp指向系统堆栈底部 initinterruptbsetintm colseinterupt 关全局中断 mov 1 ivpd DSP中断矢量指针ivpdmov 1 ivph DSP中断矢量指针ivphmov 00h ier0 清中断使能寄存器ier0mov 00h dbier0 清调试中断使能寄存器dbier0mov 0 ier1 清中断使能寄存器ier1mov 0ffffh ifr0 清中断标志寄存器ifr0mov 0ffffh ifr1 清中断标志寄存器ifr1callsdram init 调用SDRAM初始化子程序callclkmd init 调用时钟模块初始化子程序 calli2c init 调用I2C初始化子程序callaic23init 调用AIC23初始化子程序callmcbsp0 init 调用McBSP0初始化子程序mov mcbsp0 pdp pdp 当前数据页指向McBSP0寄存器wait rx btst spcr1 rrdy port spcr1 tc1 测试串口控制寄存器RFULL位状态送tc1 bccwait rx tc1 判断接收器是否满 若tc1 1 则接收器满 有新数据 未读 可以接收数据 否则tc1 0 等待movport drr2 ac1 从DR引脚接收左声道16位数据movport drr1 ac0从DR引脚接收右声道16位数据movac0 port dxr1 向DX引脚发送右声道16位数据movac1 port dxr2 向DX引脚发送左声道16位数据amov left length 1 xar6 让xar6指向左声道数据空间尾地址rpt length 1 左声道每个数据依次向下一个地址复制 delay ar6 amov left xar6 让xar6指向左声道数据空间首地址movac1 ar6 左声道输入新数据amov right length 1 xar7 让xar7指向右声道数据空间尾地址rpt length 1 右声道每个数据依次向下一个地址复制delay ar7 amov right xar7 让xar7指向右声道数据空间首地址 movac0 ar7 右声道输入新数据bwait rx 循环准备再次传送数据ends b mcbsp0 init slavemodeamov 0 xdpmov mcbsp0 pdp pdp mov 0 port spcr1 PuttheMcBSP0inresetmov 0 port spcr2 mov 0a0h port xcr1 Configframeparameters32bitmov 0h port xcr2 Singlephase nodelaymov 0a0h port rcr1 Configframeparameters32bitmov 0h port rcr2 Singlephase nodelay Framesyncisactivehighmov 03h port pcr dataclockedonrisingedgeofclkxmov 01h port spcr1 Outofreset RRDY 1mov 01h port spcr2 XRDY 1ret end 2 时钟模式寄存器CLKMD初始化程序 defpllmult defclkmd init mmregsclkmd set0 x1c00 时钟模式寄存器地址clk in set12cpu clk set144pllmult setcpu clk 2 clk in pllmult 31 ress set0 15iai set0b 14iob set1b 13test set0b 12pll mult set00000b 7pll div set01b 5 Divideby2pll enable set0b 4bypass div set00b 2 breakln set0b 1lock b set0b 0k clkmd setress iai iob test pll mult pll div pll enable bypass div breakln lock b c int00 text clkmd init amov clkmd xar1movport ar1 ac0and 0ffefh ac0 pll enable 0movac0 port ar1 loop1 movport ar1 ar0 Readclkmdand 1 ar0bccloop1 ar0 0 lock b 0 mov pllmult 128 ac0mov 31 128 ac1 Ifpllmult 31 plmult 31minac1 ac0or k clkmd ac0 movac0 port ar1 movport ar1 ac0or 10h ac0 pll enable 1movac0 port ar1 rpt 30000nop 16nop loop2 movport ar1 ar0 Readclkmdand 1 ar0bccloop2 ar0 1 lock b 0 ret end 3 C5509I2C接口初始化程序 mmregs defi2c init defi2c disable defi2c write defi2c read refpllmulticoar set0 x3c00 I2C主地址寄存器icimr set0 x3c01 I2C中断屏蔽寄存器icstr set0 x3c02 I2C状态寄存器 icclkl set0 x3c03 I2C时钟驱动寄存器低位icclkh set0 x3c04 I2C时钟驱动寄存器高位iccnt set0 x3c05 I2C数据计数器icdrr set0 x3c06 I2C数据接收寄存器icsar set0 x3c07 I2C从地址寄存器icdxr set0 x3c08 I2C数据发送寄存器icmdr set0 x3c09 I2C模式寄存器icivr set0 x3c0a I2C中断矢量寄存器icgpio set0 x3c0b 保留位 通用I O icpsc set0 x3c0c I2C预定标寄存器 bitofi2cmoderegistericmdr free set14icmdr stt set13icmdr idleen set12icmdr stp set11icmdr mst set10icmdr trx set9icmdr xa set8icmdr rm set7 icmdr dlb set6icmdr irs set5icmdr stb set4icmdr fdf set3icmdr bc mask set0 bitofi2cstatusregistericstr nacksnt set13icstr bb set12icstr rsfull set11 icstr xsmt set10icstr aas set9icstr ad0 set8icstr res2 set7icstr res1 set6icstr res0 set5icstr xrdy set4icstr rrdy set3icstr ardy set2icstr nack set1 icstr al set0icoar oaddr set0 x007f texti2c init mov icoar 128 pdp I2C主地址寄存器页地址送pdp作为当前页mov 0h port icmdr Clearicmdrmov 0 port icimr Disableallinterrupt moduleclockfrequncy cpu clk ipsc 1 mov pllmult ar0mov 31 ar1 Ifpllmult 31 plmult 31minar1 ar0movar0 port icpsc masterclockfrequeny moduleclockfrequnecy icclkl d icclkh d mov 10 port icclkl mov 10 port icclkh mov icoar oaddr port icoar icmdr irs 1 icmdr mst 1 TakeI2Ccontrolleroutofreset putinmastermodemovport icmdr ac0or 1 icmdr irs ac0or 1 icmdr mst ac0movac0 port icmdr ret i2c disable PutI2Ccontrollerinresetmov icoar 128 pdpmovport icmdr ac0mov 1 icmdr irs ac1negac1andac1 ac0movac0 port icmdr ret i2c write Writedatatoslavedevice ar0isstoredcounterofdata ar1isstoredfirstdataaddress ar2isstoredslaveaddressmov icoar 128 pdpmovar0 port iccnt addar1 ar0 ar0pointtotheendmovar2 port icsar Slavedeviceaddressamov icdxr xar3movport icmdr ac0bset icmdr stt ac0 Startbit 1bset icmdr stp ac0 Stopbit 1bset icmdr trx ac0 Transmittermodebit 1 transmittermodemovac0 port icmdr tx data mov ar1 port ar3 wait tx btst icstr xrdy port icstr tc1bccwait tx tc1 tc1 0 waitcmpar0 ar1 tc1bcctx data tc1ret i2c read readdatatoslavedevice ar0isstoredcounterofdata ar1isstoredfirstdataaddress ar2isstoredslaveaddressmov icoar 128 pdpmovar0 port iccnt addar1 ar0 ar0pointtotheend movar2 port icsar Slavedeviceaddressamov icdrr xar3movport icmdr ac0bset icmdr stt ac0 Startbit 1bset icmdr stp ac0 stopbit 1bclr icmdr trx ac0 transmittermodebit 0 receivemodemovac0 port icmdr read data movport ar3 ar1 wait read btst icstr xrdy port icstr tc1bccwait read tc1 tc1 0 waitcmpar0 ar1 tc1bccread data tc1ret end 4 aic23初始化程序 defaic23init refi2c write refdata w r bit15 bit9AIC23 LT LINE CTL set0 x0 左声道 输入数据空间 控制寄存器地址AIC23 RT LINE CTL set0 x1 右声道 输入数据空间 控制寄存器地址 AIC23 LT HP CTL set0 x2 左耳机声道 输入数据空间 控制寄存器地址AIC23 RT HP CTL set0 x3 右耳机声道 输入数据空间 控制寄存器地址AIC23 ANALOG AUDIO CTL set0 x4 模拟通道控制寄存器地址AIC23 DIGITAL AUDIO CTL set0 x5 数字通道控制寄存器地址AIC23 POWER DOWN CTL set0 x6 电源控制寄存器地址 AIC23 DIGITAL IF FORMAT set0 x7 数字音频接口格式化寄存器地址AIC23 SAMPLE RATE CTL set0 x8 采样率控制寄存器地址AIC23 DIG IF ACTIVATE set0 x9 数字接口有效寄存器地址AIC23 RESET REG set0 x0f Writing0tothisregtriggersreset bit8 bit0 lt ch vol ctrl set0 x0017 0rt ch vol ctrl set0 x0017 1lt ch headph ctrl set0 x007f 2rt ch headph ctrl set0 x007f 3alog au path ctrl set0 x0031 4digi au path ctrl set0 x0000 5pow mgt ctrl ctrl set0 x0000 6digi au intf ctrl set0 x0043 7 au FS TIM ctrl set0 x0023 8MCLK 12MHz SampleRatesetting44 1kHzdigi intf1 ctrl set0 x0001 9slave aic23 set0011010b cs 0 textaic23init i2cwriteAIC23register ResettheAIC23mov AIC23 RESET REG 512 ac0add 0h ac0callaic23 write turnonallpowermov AIC23 POWER DOWN CTL 512 ac0add pow mgt ctrl ctrl ac0callaic23 write DACenable inselline Microphonenormalmov AIC23 ANALOG AUDIO CTL 512 ac0add alog au path ctrl ac0callaic23 write setingDigitalAudioPathControlmov AIC23 DIGITAL AUDIO CTL 512 ac0add digi au path ctrl ac0callaic23 write Turnonvolumeforlineinputsmov AIC23 LT LINE CTL 512 ac0add lt ch vol ctrl ac0callaic23 writemov AIC23 RT LINE CTL 512 ac0add rt ch vol ctrl ac0callaic23 write Configu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论