热度 13
2012-5-4 09:28
1264 次阅读|
0 个评论
新的一章,在结束了Blackfin通用外设讲解后,正式进入对板卡上实现的各个模块驱动编写详解,本章讲解Audio模块。 PS:开篇插入了一个OP社区8月新产品的小广告,望见谅。另外OP和Andy的声音大小有差异,在换人讲的时候可以适当调节一下音量。 http://player.youku.com/player.php/sid/XMjkwNTA2NTcy/v.swf 4.1 BF53X_AUDIO ADSP-EDU-BF53X音频实验。 4.11 硬件实现原理 音频是采用TI公司的 TLV320AIC23B 音频Codec芯片,TLV320AIC23B支持1路MICIN,1路LINEIN, 1路OUT,1路HPOUT。硬件设计中将1路LINEIN和1路HPOUT通过接口引出。 BF53x处理器的SPORT接口支持IIS协和和TDM协议,可直接与TLV320AIC23B的接口连接。通过BF53x处理器的PF0和PF1接口分别模拟IIC的SCL和SDA总线,用来初始化TLV320AIC23B芯片。TLV320AIC23B支持多种音频采样格式,硬件设计中为其提供的时钟为12MHz,可参考TLV320AIC23B数据手册将其配置为USB模式采样。 4.12 硬件连接示意图 4.13 初始化配置 TLV320AIC23B的器件地址可通过接口上的CS引脚进行选择,如下表: CS状态 TLV320AIC23B写器件地址 TLV320AIC23B读器件地址 0 0x34 0x35 1 0x36 0x37 TLV320AIC23B需要通过IIC接口配置初始化,所以需要通过配置板卡上的CPLD寄存器,将PF0和PF1配置为IIC总线模式,该配置映射在CPLD的DEVICE_OE寄存器,其配置功能为: DEVICE_OE寄存器地址:0x20320000 DEVICE_OE寄存器(写唯一): DEVICE_OE寄存器设置硬件设备上一些控制管脚的电平状态,该寄存器只能写入数据,不能读出当前数据。 DEVICE_OE寄存器位功能: Bit位 7 6 5 4 3 2 1 0 功能 保留 INTERRUPT_OE SPI_OE SYNCINT_OE PTS_OE LCD_OE SPI_SEL LED_OE INTERRUPT_OE: 1:关闭I2C_SCL输入信号,使能PF0中断信号 0:使能I2C_SCL输入信号,关闭PF0中断信号 使用IIC配置TLV320AIC23B时,需将INTERRUPT_OE设置为0,关闭中断,待IIC配置完成后,再将中断INTERRUPT_OE打开。 4.14 代码实现功能 代码实现了一个音频输入播放的功能,将一个声源通过图3中LINEIN接口输入,将一音响或耳机连接在图3中HPOUT接口,运行代码后,音响中能听到输入声源的声音。 4.15 代码实现原理 代码通过IIC初始化完TLV320AIC23B后,TLV320AIC23B开始通过LINEIN接口采集模拟音频数据,并将采集到的数据通过ADSP-BF53x的SPORT口传送给ADSP-BF53x,ADSP-BF53x将数据做内存交换后,再通过SPORT口传送给TLV320AIC23B,TLV320AIC23B将数据转为模拟信号后通过HPOUT接口输出。 4.16 测试实验步骤 将仿真器(ICE)与ADSP-EDU-BF53x开发板和计算机连接好。 将测试的音源通过标准音频连接线接入开发板的Lin IN接口(蓝色接口)接入,音箱连接HPOUT接口(绿色接口)。 先给仿真器(ICE)上电再为ADSP-EDU-BF53x开发板上电。 运行VisualDSP++ 5.0软件,选择合适的BF533 的session将仿真器与软件连接。 加载VisualDSP++ 5.0工程文件BF53x_AUDIO.dpj,编译并全速运行。 4.17 测试结果 在音响或耳机中可以听到输入声源的声音。 优酷链接:http://v.youku.com/v_show/id_XMjkwNTA2NTcy.html 清晰版下载地址:http://u.115.com/file/e6k2qqq2 如需提取码,则是: e6k2qqq2 开发板链接:http://item.taobao.com/item.htm?spm=1103Qmdt.3-3dfNy.h-1Akvusid=9026190872