Acc 发表于 2012-3-28 04:17:24

VS1053B WAV播放问题

最近一直在纠结,怎样才能将VS1053B的能量发挥到最大。
遇到的一个很棘手的问题就是怎样才能让其播放大码率的文件。

抓取一段采样频率44.1kHz,速率1141kbps的WAV音频文件,用SPI的方式给VS1053B,SPI速率肯定至少不能小于这个;但是如果只能用一个SPI口分时复用,能让音频流畅的播放下来么?自己试验了好久,我没法平衡应缓冲多少字节的数据,再送给VS1053B,才能使它解码WAV文件不会断断续续。

大家有没有类似的经历,怎么样才能让VS1053B解码WAV格式,44.1kHz,1141kbps的文件

mowin 发表于 2012-3-28 07:47:48

VS1053B不是有内部缓存吗?这个不是问题吧

Acc 发表于 2012-3-28 14:06:57

这个缓存相对于大码率的WAV文件来说,我个人觉得基本不算缓存,如果主控芯片有DMA支持的话,不知道会不会好一些。但我想先在这个平台上做完然后移植到M3的平台上

如果你把引脚接出来观察电平的变化,你会发现,MP3格式的文件肉眼观察是闪烁的,但是如果WAV的文件,几乎是一直在亮

Acc 发表于 2012-3-28 14:07:49

mowin 发表于 2012-3-28 07:47 static/image/common/back.gif
VS1053B不是有内部缓存吗?这个不是问题吧

这个缓存相对于大码率的WAV文件来说,我个人觉得基本不算缓存,如果主控芯片有DMA支持的话,不知道会不会好一些。但我想先在这个平台上做完然后移植到M3的平台上

如果你把引脚接出来观察电平的变化,你会发现,MP3格式的文件肉眼观察是闪烁的,但是如果WAV的文件,几乎是一直在亮

GoWind 发表于 2013-2-17 15:04:45

就算是分时写入由于mcu的流水型运作模式,也就是说同一时刻内也只能够对同一件事情进行操作,所以即便有两个spi也是一样的效果,

Tobacco 发表于 2013-4-16 17:06:09

Acc 发表于 2012-3-28 14:07 static/image/common/back.gif
这个缓存相对于大码率的WAV文件来说,我个人觉得基本不算缓存,如果主控芯片有DMA支持的话,不知道会不会 ...

datasheet写着wav支持8bit或16bit,任何采样率<44khz的,好像对比特率没有要求?我也试了1141kbps的wav,mega32(晶振16M,spi的sclk=0.5foc)+1053(晶振12Mset9800即5.5倍速)来播放,卡的不行,又换了705kbps的wav,勉强能听出旋律。如楼主所说,dreq大部分时间都是高电平(请求数据),我觉得spi送数的速率已经够高了,问题是1053自身对高bps的音频解码支持不好吧?毕竟它的FIFO只有2048byte?还是说真的是spi送数的速度不够??哪位兄台知道真相?

yjc68 发表于 2013-4-27 10:01:20

学习了。

yukaigogogo 发表于 2013-9-4 14:39:34

遇到同样的问题,现在只能解码320K的Mp3,DREQ还会有规律性低的时候,说明SPI送的比VS1053解的快。当放到CD格式的WAV时,DREQ就一直高了,一直在请求数据,播放时也卡的不行。我感觉是SPI送慢了,或者别的啥。但当我提高SPI的时钟的时候,输出又没有任何声音了。

yukaigogogo 发表于 2013-9-4 16:47:16

Tobacco 发表于 2013-4-16 17:06 static/image/common/back.gif
datasheet写着wav支持8bit或16bit,任何采样率

我也求真相,大家可以讨论一下。正在搞这玩意儿。

szpspike 发表于 2013-9-9 21:59:04

提供SPI速度试试

szpspike 发表于 2013-9-9 22:03:54

我用STM32F205,超频到144M,APB_CLK_div1, spi_clk_div_2,这样设置才能流畅播放16bit 1141kbp wav,
按这样算的话spi速度要那么高,我都不敢相信了,有人说STM32的spi速率低(不用DMA),我示波器太烂测不出

lickson 发表于 2013-9-10 14:09:12

顺利播放FLAC WAVMP3的飘过
页: [1]
查看完整版本: VS1053B WAV播放问题