OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6764|回复: 8

请教一个关于VS1053读写RAM区的问题。

[复制链接]

14

主题

80

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2013-1-1
在线时间
6 小时
发表于 2013-11-14 10:02:49 | 显示全部楼层 |阅读模式
刚才弄VS1053的RAM遇到点疑惑,向大家请教下。

问题是:举个例子,手册上说对:0x1e04写入不同的值可以对歌曲加速播放:




于是我写了函数,先写入WRAMADDR寄存器,写入地址0x1e04,再写入WRAM,写入数据,2。(2倍速度播放)
然后我发现没反应,单独测试,先写入,再读出数据。发现数据一直是0x0000,然后我再每个操作后面加了个延时,竟然就正常了,写读出来数据正确,播放速度加倍。
但是我不明白为什么要延时,而我的读写寄存器的函数里面也有检查DREQ是否为高电平。所以我不明白延时是给哪个地方等待的。手册找了好久一直找不到为什么。不知道是不是我看漏了。
麻烦大家指点下。


下面是加了延时后的:




下面是读写寄存器的函数:




算了,不纠结了,五楼结帖算了!

最后还是钻了好一会,发现原因了,7楼结帖。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

80

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2013-1-1
在线时间
6 小时
 楼主| 发表于 2013-11-14 10:11:37 | 显示全部楼层
 




自己也想过会不会是这个时间问题。但80的那些直接操作都没问题,而100的.....不会这么巧吧......
我继续看看....
还是继续边查手册边等待大家的指点...
谢谢



回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-14 11:45:45 | 显示全部楼层
可能就是这么巧,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

80

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2013-1-1
在线时间
6 小时
 楼主| 发表于 2013-11-14 12:27:50 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
但是还是不明白是延时后发生了什么,我前面的读写寄存器都有检测DREQ了...请问原子你出现过这样的问题吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-14 13:56:00 | 显示全部楼层
没遇到过。
回复 支持 反对

使用道具 举报

14

主题

80

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2013-1-1
在线时间
6 小时
 楼主| 发表于 2013-11-14 16:33:47 | 显示全部楼层
算了,不纠结这个牛角尖了,钻了一整天,手册从头翻到尾,从尾翻到头!从怀疑VS1053芯片,到怀疑STM32.....泪奔!


就以这句话作为结论算了,之前一直认为等待DREQ变高就是vs1053操作完成,现在把他理解成能否传输数据就好多了,所以每个读写寄存器后面应该多预留一段小延时给芯片完成操作,保险点。

虽然下面的话是在另外个模式的..但..也看看.




反正结果:加上1us小延时后无论什么时候怎么读写RAM都正常了....



回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-14 20:42:59 | 显示全部楼层
呵呵,退一步海阔天空。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

80

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2013-1-1
在线时间
6 小时
 楼主| 发表于 2013-11-15 00:49:02 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥,请原谅我,虽然我下午说不钻了,但我过了一会儿还是忍不住在钻!.嘿..不过这次有结论了,最后我发现,原来是我的是SPI_TurnSpeed(7),而且我用的是SPI2....分频太大了,一直以为越慢越稳定越好,没想到慢了也有不好的时候.......终于可以完美结帖了!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-15 11:09:30 | 显示全部楼层
回复【8楼】疯狂者:
---------------------------------
精神可嘉啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 00:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表