需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN China>EDN论坛>消费电子设计专区>【分享】音频编解码芯片VS1003(播放器调试)
?
大家在做什么...
楼主 问题:

【分享】音频编解码芯片VS1003(播放器调试)

发布时间:2013-3-22 上午11:51

作者: 寻醉

等级: 初学者

积分: 121分

发帖数: 15次

网站总积分: 121分

141分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
在调试vs1003之前就已经翻阅过vs1003的datasheet(数据手册,帖子下方有);基本上懂了其通讯原理,和一些基本设置。
??在调试的时候只是拿网上找的代码,做了相应的修改(接口改为我自己的,功能改为我自己想要的功能),这样只是为了快速测试我的vs1003模块能不能用,当然这首先是要你能理解其代码,要不然是第一次调试你也不知道是程序有错还是硬件有错。在确定程序没错之后,我就可以确定如果没有效果,那肯定是我的解码模块不行。测试通过之后我就可以放心的使用我自己的解码模块。接下来的程序我就可以根据自己想要的慢慢来写。
??第一次写程序进去就听到耳机里输出了很高的鸣叫声,这是因为我把正弦测试(vs1003自带的一种测试,这样就能很快确定你的vs1003是否能工作)频率调的很高 所以声音很尖,被吓了一次。第二次就把它改小了一点,嘟的一声,呵呵相当激动,这说明我的vs1003可以用(s1003非常脆弱 很容易坏 又贵又不好买)
??正弦测试成功之后我就开始想给vs1003发送MP3音频数据 看能不能解码放出声音来
??我最初的想法是通过winhex软件打开查看MP3代码然后拷贝出来作为一个数组发给vs1003。这个数据要储存在我的单片机的程序储存区里,还好我的单片机程序储存区够大有64K。这样多的MP3代码也只能够听到一点点声音,效果肯定是无法体会的道。果然 ,在耳机里只听到吱~的一声就没了 根本没用
??之后我就想把sd卡加进来,让MCU一边从sd里读取MP3数据,再一边发送到vs1003里边去解码,这样就可以一直把一首MP3的数据全部发送到vs1003进行解码。于是我先拷贝了一个码率比较低的MP3,因为单片机的速度毕竟很慢 从sd卡里读取数据然后又要发送给vs1003解码 先找一个码率比较低的MP3做测试这是明智的选择。
开始组合程序,编写相应的主函数,通电测试。没有任何反应,串口调试(如果读写sd正常可以从串口接收到sd'卡的第0扇区数据(逻辑扇区)这是我程序特意设定的,为了方便看出sd是否在工作)也接收不到任何数据 ,确定sd卡未启用。我以为sd卡的读写又出问题了 ,拿之前做好的sd测试程序重新测试,也没有数据输出,很晕。
不经意间我发现当我拔掉解码模块sd卡读写正常,找到这一重要点之后,我开始分析问题。
??因为我的sd卡和vs1003与MCU的通讯方式都是spi。而我的MCU只有一个硬件spi,所以都统一连接到一起了 只是通过不同的片选让它们轮流使用spi。可惜的是这样不行。经过多次试验,猜想,也在网上寻求答案(未果)。最终我自己搞明白了,是应为我用的MCU为5V器件,为了能跟vs1003、sd卡正常通讯 ,我把MCU的spi口设置成为开漏形式,让后加3.3v的上拉。这样我的单片机spi口最大电压也只能是3.3v了。不过同时开漏形式让它的驱动能力变得很弱,无法同时接两个spi通讯模块~~~
于是我把sd卡的接口换到P0口采用软件模拟spi读取数据,这样一来,呵呵串口可以看到接收到数据了随之耳机里传来了久违的音乐,不过声音很乱,就像快进一样。还是很兴奋 ,毕竟是能出声音了。
为什么声音会乱掉,这个时候开始找问题,一直花了我两天的时间,vs1003的datasheet看了一遍又一遍 ,敢肯定我的程序绝对是没错。那就是硬件了。
分析它的原理开始查问题,看看是那步错了。
??vs1003解码MP3数据,你只要把正确的MP3数据传送给它,它就能自动识别你的MP3是多少码率的,然后通过一定的解码速率进行解码。这个时候就有疑问了,既然解码的速率确定了,为了能流畅的播放出音乐来,你给vs1003发送MP3数据的速率必须跟它解码的速率一样,那怎么去保证这两个速度一样呢?如果送给vs1003的数据过快,那我们可以加延时让它一样,那这时候又出问题了,难道每一首不同码率的歌都要去加个延时吗(这里是按发送数据永远比解码速率快的情况来分析),这样肯定是不合理的。不用担心,vs1003为用户准备了0.5k的数据缓冲区做为音频数据的缓冲,这就好像一个漏斗一样,0.5k空间就像漏斗的容量,你只要保证漏斗里边始终有东西,那么漏斗底下就始终有东西流出,保持连续。你给漏斗加料的速度无所谓,只要你别让漏斗里边为空就行。vs1003是一样的为了解码正常,播放流畅,你只要保证数据缓冲区里始终有数据作为待解码对象,这样就可以放出流畅的音乐来。这里又有问题了,我们怎么确定数据缓冲区里到低有没有数据,或者是还有多少,怎么控制发送数据。vs1003也帮你考虑到这一点了,所以他专门设定了一个中断脚DREQ,当DREQ变高时,外部可以至少为vs1003发送 32字节的数据(这是SDI数据,还有一种SCI数据,这里不说了),为了保证播放流畅。当vs1003收到32字节的数据之后他的DREQ脚变为低,此时可以暂时不往里边发送数据,如果数据缓冲区内少于32字节的有效数据,那么vs1003将DREQ置为高电平,此时需要往里边发送数据(对于DREQ脚的变化,网上有异议,这是我个人的理解)。这里你会发现,我之前不是说数据缓冲区是0.5k,为什么每次才32个数据就可以了。vs1003只是设置了一个32byte为标准,当然 你可以当在检测到DREQ脚变高时,往里边一次性发送少于(这是必须的)0.5k的字节,然后再去检测DREQ的状态,当再次变高时 你就可以再往里边发送那么多数据,是可以的。32byte只是一个最低标准。个人理解~~
按这个寻到问题的根源~~~我的DREQ没有在工作,屏蔽了他 播放跟本没变,所以说,我的MCU无法判断vs1003的数据区是否满了 是否需要新数据,这里只是一股脑的往vs1003里灌数据
所以导致我的音乐播放不正常,测量初始化之后的vs1003的DREQ脚,发现竟然出现1.8v,不高不低,处于模糊状态。
确定DREQ脚不能工作,网上寻求答案,对我的情况都没用。之后又翻到pcb图上去,发现一个很重要的地方未连接,就是当用spi模式给vs1003发送数据的时候,其串口RX必须接到IOVDD.
我把那条线补上去,初始化vs1003一测DREQ脚为3.3(高)。很是激动,DREQ可以工作了,那么音乐播放就可以了,哈哈。下载程序测试。
一切OK!!!!

分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
?
引用 回复 收藏 推荐到小组 ( 2) ( 0) 关注

EDN China电子设计技术NXP FTF 2016:打造一个安全帝国,推动全自主驾驶
第1楼

回复主题:【分享】音频编解码芯片VS1003(播放器调试)

发布时间:2013-3-22 下午8:12

作者: liqingyong

等级: 中级工程师

积分: 1242分

发帖数: 309次

网站总积分: 2141分

1501分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
你太厉害了
引用 回复
( 0) ( 0)


EDN China电子设计技术RF-SOI技术:加强5G网络和智能物联网应用
第2楼 回复主题:【分享】音频编解码芯片VS1003(播放器调试) 发布时间:2013-4-19 上午8:47

作者: panminghui

等级: 助理工程师

积分: 644分

发帖数: 239次

网站总积分: 763分

3423分

发送消息

加为好友

查看用户的所有发言

查看用户的个人主页

需要确认注册邮箱后才能下载,立即确认我的邮箱
回复后可下载附件
谢谢!!!!受教育了!!!!!!!!!!!!!!!
引用 回复
( 0) ( 0)


快速回复 高级回复
用户名:?
美国的游客?????? (您将以游客身份发表,请登陆 | 注册) ?
标题: * 标题还可以输入80
评论: * 你还可以输入30000
验证码: ?*?
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
维护专业、整洁的论坛环境需要您的参与,请及时举报违规帖子,如果举报属实,我们将给予相应的积分奖励。
谢谢您的热心参与!
返回消费电子设计 | 返回专业技术交流区
本论坛仅陈述专家或个人观点,并不代表EDN China 电子技术设计互动社区网站立场。
积分排行榜
彩云 [殿堂级工程师]
mzlr [殿堂级工程师]
特权同学 [殿堂级工程师]
敬请关注EDNC官方微信“edn-china"

每月定期向您递送电子元器件规格书网中的最新元器件数据手册下载、库存信息及技术参数更新。请点击订阅:

2016我的工程师社区
EDN官方QQ群???更多QQ群
  • EDN-深圳 8366025
  • 菜农Cortex-M0技术交流 12047788
  • EDN-哈尔滨 75642591
  • EDN-上海 15156661
  • EDN-广州 57660943
  • EDN-桂林 48813559
  • EDN-武汉 25150805
  • EDN-模拟电路 2837145
  • EDN-通讯 30548292
  • EDN-综合 57490949

促进EDN网友交流合作,方便EDN网友学习沟通

有问题请反馈