- 积分
- 141
- 在线时间
- 102 小时
- 最后登录
- 2021-1-27
- 阅读权限
- 50
- 精华
- 0
 
- UID
- 112487
- 帖子
- 139
- 精华
- 0
- 经验
- 141 点
- 金钱
- 141 ¥
- 注册时间
- 2009-6-17
|
WAVE播放器完工有段时间了,之前只支持16Bit/24Bit 44.1KHz WAVE文件,现改进了一下,能支持更高清晰度的WAVE文件了。
首先说明:所谓高清WAVE文件是相对于16Bit/44.1KHz来说的,目前测试可支持到24Bit/88.2KHz和24Bit/96KHz。
实现过程:
第一步:SD卡读速度测试。我的WAVE播放器使用SPI方式访问SD卡,速度是个瓶颈。在23.6MHz SCLK频率下,读速度只能达到750KBytes/s.在使用了DMA和FIFO后,读速度提高到了1.1MBytes/s.
第二步:码率计算。24Bit/96KHz码率为 24X2X96=576KBytes/s. SD卡的访问速度是足够的。
第三步:I2S时钟生成。我的WAVE播放器使用CPLD来生成I2S信号,为了整数倍分频得出44.1KHz、48KHz、88.2KHz、96KHz四种频率使用了16.9344MHz和12.288MHz两种时钟源。ARM7通过WAVE文件头44字节获知文件的格式,然后通过IO控制CPLD生成对应的频率。
两种有源晶振
两种有源晶振
播放文件
播放文件
|
|