完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,公司项目采用的是FPGA+VS1003+flash方案,flash用于保存音频文件。目前播放遇到问题了,描述如下:
首先我确认了以下几点: 1.首先是硬件方面,目前已经完成了寄存器配置的测试,使用SCI通道写入数据再读出已验证读写正确。VS1003的SDI的正弦测试也通过了,可以通过SDI发送命令开关正弦波。 2.将音频文件通过flash烧录器烧写进flash中,通过烧录器读回数据,可以确认写入的文件是正确的。 3.直接将数据从flash中读出通过SDI总线送入VS1003中,通过FPGA自带的逻辑分析仪和示波器打过,数据也是和音频文件一样的。 但是 。。。。 耳机没有任何声音,VS1003的left、right端用示波器也无法打出任何数据。传送SDI的时候在每个字节传送完成后即检测一次DREQ的状态,为低时停止发送,为高时候发下一字节,直到将整个音频文件发送完毕。 目前SDI使用的时钟是5MHz,SCI_MODE配置为0x8000,CLKF寄存器配置为0x9800,声音大小VOL寄存器写的是0x2020。MP3/MIDI/WAV格式的文件都试过。 现在实在没招了。上来求教各位,谢谢了! |
|
相关推荐
30个回答
|
|
|
|
|
|
这种情况,可能是你没有判断DREQ,猛发数据导致的
|
|
|
|
感谢您的支持!节后继续测试,试试您说的意见建议!
|
|
|
|
我是每32个字节以后去判断一次,有时候32字节完成后没有拉低,我就继续传下一次32字节,但有时候在32字节还没传送完就拉低了,等到传送完这次32字节以后再判断,是这个原因吗?
|
|
|
|
还有没有可能和解码时间、采样率两个寄存器的值相关呢?
|
|
|
|
|
|
|
|
谢谢,请问一下怎么获得MP3文件的解码时间和采样率等等的信息呢?我再把合适的值在初始化的时候写入对应的寄存器。
|
|
|
|
我将CLKF寄存器复位,让内部时钟保持1X速度(外部时钟是12.288MHZ),SDI速度不超过其1/4的速度,播放速度要正常许多,但是有很多杂音和顿卡。。。
|
|
|
|
那还得调试.
|
|
|
|
原子哥,请教一下,VS1003正常工作的话,需要设置哪几个寄存器呢?另外我对时序也存在一些疑问,比如我在32字节结束以后,需要将DCS拉高吗?检测到DREQ为低的时候一定是需要的拉高的,如果DREQ此时依然为高呢?还需要将DCS拉高吗?datasheet上并没有说的很清楚,只说了DREQ如果被拉低是正常的,并没有说此时SPI总线应该如何处理。。。谢谢了。
|
|
|
|
终于成功了,感觉还是时序的问题。目前是4字节就把XDCS拉高一次,而且DREQ变化以后只将当前字节发完并且拉高XDCS,而不是原来的:32字节发送一次XDCS拉高一次,DREQ在32字节发送之中拉低以后继续发完32字节在把XDCS拉高。
目前外部SDI速率为2Mbit,但VS1003内部时钟,1倍频率解码还是不行,播放很慢,将速率配到了2倍,速度就好多了。 听到的声音没有顿卡,很清楚。 谢谢大神的指导。 |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 04:33 , Processed in 0.849642 second(s), Total 95, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号