原创 VS1003正弦波测试成功

2009-9-15 14:50 6070 6 10 分类: MCU/ 嵌入式
        之前一直在搞uIP的移植,没有顾得上这块。这是我做的多功能STC51试验板上最后测试的一个主要模块了,之前其他模块的测试都很顺利。像外扩的SRAM,MMC卡,DM9000A还有CH375都是一次pass的。所以测试VS1003也没太当回事,不就是个SPI读写嘛!按照Datasheet设置好SPI的速率、相位、时钟急性等,然后就可以读写VS1003的SCI寄存器。程序写好后烧到片子里可不像我想象的那样了,首先是读VS1003的任何寄存器返回的都是0000,向任意寄存器写数据,然后回读都是错的,再读第二遍又全变成0。起初我以为是SPI的相位、时钟急性设错了,于是就改变设置。可是把SPI的四种设置都试了一遍还是一样的结果,该试的都试了,这下我可没招了。
        后来,查网上的资料,说VS1003的SPI时序需要注意,如果调不好数据是乱得。于是我试着在每次SPI发送8bit数据之间加了一点延时,其他的地方没变。再试验,果然成功了,读0x00单元内容为0x0800,和数据手册上说的一样了,又试了写寄存器也没有问题了。
        最后,在前面成功的基础上,做了Sine Test(正弦波音频输出测试)。步骤是:先将0x00寄存器的第5位置1,让VS1003进入SDI测试状态,然后将Sine Test测试命令发到SDI(0x53,0xef,0x6e,0x7e,0,0,0,0),这时耳机里传来了刺耳的尖叫声(VS1003默认将输出音量设为最大值),害得我赶紧把耳机摘下来了。不过对VS1003的控制已经成功了,所以还是很高兴的。

文章评论4条评论)

登录后参与讨论

用户412121 2013-1-29 14:59

我写的明明是两次SPI发送8bit数据之间加点儿延时,楼下的你怎么会理解成接收了?

用户377235 2013-1-28 23:58

请问试着在每次SPI发送8bit数据之间加了一点延时是指两次接收之间的延时还是spiclk的每次跳变之间加延时啊?

用户423588 2012-9-25 17:52

有VS1003可以与 我联系:15361638451 QQ:2355355256 我司是这个品牌代理:187717808

用户1661673 2012-8-17 09:38

楼主很牛哦!学习了
相关推荐阅读
用户412121 2015-09-11 09:59
我今年的作品:智能家居物联网实验板(STM32+ESP8266)
去年就开始关注物联网和智能家居了。一开始看到不少用路由器方案做的智能插座,感觉太浪费芯片资源了。直到有一天无意中看到了ESP8266,感觉这是一个适合单片机的wifi解决方案,应该可以做不少好玩的...
用户412121 2013-10-29 11:41
STM32迷你核心板运行ST emWin + FreeRTOS成功
新板子做好后受到了很多人的关注, 比如板上有哪些资源,有哪些例程等等。有的人还会问是否能外接LCD等等,对于我这些,我的板子都预留了接口肯定是没有问题的。但是口说无凭还是实实在在 的测一次才能令人信服...
用户412121 2013-10-15 14:11
新版STM32迷你核心板做好了
之前也跟大家多多少少介绍过了,这次做的新版就是对前一版不满意地方的小修补(比如印字,焊盘尺寸等等),另外对外扩IO做了微调,可以保证F407的每 种外设都可以扩展(之前是按照F103设计的兼容407但...
用户412121 2013-09-22 22:58
在STM32上运行FreeRTOS操作系统(基于STM32 V3.5.0固件库)
很久以前就想实用FreeRTOS了,优点就不必说了,网上可以搜到一大堆它和ucos-ii以及其他几种嵌入式操作系统的比较。最重要的一点它是免费的,不想ucos那样商业使用需要收费。只是之前本人比较忙而...
用户412121 2013-08-13 11:00
华美A5无线3G路由器升级内存,flash,刷openwrt成功
Hame A5(华美A5)号称最小的3G无线路由器,可惜只有16M SDRAM, 4M FLASH虽然理论上可以刷openwrt,但是限于硬件资源太少运行起来很卡,到最后几乎死机。 于是我尝试给...
用户412121 2013-05-08 17:29
我的STM32核心板升级到F4了(目前可以运行u-boot)
年初做的这个可以跑uCLinux的STM32核心板用的是STM32F103ZET6(http://bbs.ednchina.com/BLOG_ARTICLE_3010701.HTM),当时已经考虑...
我要评论
4
6
关闭 站长推荐上一条 /2 下一条