新的一章,在结束了Blackfin通用外设讲解后,正式进入对板卡上实现的各个模块驱动编写详解,本章讲解Audio模块。 PS:开篇插入了一个OP社区8月新产品的小广告,望见谅。另外OP和Andy的声音大小有差异,在换人讲的时候可以适当调节一下音量。
http://player.youku.com/player.php/sid/XMjkwNTA2NTcy/v.swf
ADSP-EDU-BF53X音频实验。
音频是采用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模式采样。
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打开。
代码实现了一个音频输入播放的功能,将一个声源通过图3中LINEIN接口输入,将一音响或耳机连接在图3中HPOUT接口,运行代码后,音响中能听到输入声源的声音。
代码通过IIC初始化完TLV320AIC23B后,TLV320AIC23B开始通过LINEIN接口采集模拟音频数据,并将采集到的数据通过ADSP-BF53x的SPORT口传送给ADSP-BF53x,ADSP-BF53x将数据做内存交换后,再通过SPORT口传送给TLV320AIC23B,TLV320AIC23B将数据转为模拟信号后通过HPOUT接口输出。
在音响或耳机中可以听到输入声源的声音。
优酷链接: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-1Akvus&id=9026190872&
文章评论(0条评论)
登录后参与讨论