打印
[STM32F4]

STM32F407透过FPGA读写SRAM出错求助

[复制链接]
1409|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
iamafighter|  楼主 | 2015-6-17 08:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F407的FSMC总线连接FPGA,FPGA又接61LV25616。FPGA内部设置为FSMC与SRAM直接连接。407编程对SRAM进行地址递增读写测试,即先向指定的地址写入数据(当前地址的值),然后再读出在串口打印显示。
现在有两个问题:
1、当地址范围在0~4095时,地址0中的数据为4095,地址1~地址4095依次为数据0~4094。串口打印的数据如下所示
地址:数据
0;4095;
2;1;
3;2;
4:3;
。。。
4095:4094;
最后一位的数据跑到第一个地址了,不知道什么原因?
2、当地址范围大于4095后,那么串口打印的数据变成下面的状态(这里测试范围为5000个地址)
0:4999;
1:4096;
2:4097;
。。。
300 : 4395;

301 : 300;
。。。
4096 : 4095;

4097 : 0;
4682 : 585;
。。。

4683 : 4682;
。。。
4999 : 4998;

最有附上两个串口打印输出的数据文件,分别为测试4096个和5000个数据,望高手能指点迷津,谢谢!

一模一样的程序在开发板上是没有问题的,不通过FPGA桥接。

测试数据.zip

27.58 KB

沙发
mmuuss586| | 2015-6-17 12:22 | 只看该作者
那可能是你通过FPGA桥接后哪里有问题了吧;

使用特权

评论回复
板凳
wowow| | 2015-6-17 13:34 | 只看该作者
访问16位RAM,你是每次地址+2吧,或者用16位指针访问的吗?
unsigned short *pDst=(unsigned short *)SramAddr;
for(i=0;i<4096;i++){
    *pDst++ = i;
}

使用特权

评论回复
地板
iamafighter|  楼主 | 2015-6-18 12:56 | 只看该作者
修改FSMC配置,降低总线速度后消除问题,感谢各位参与讨论!

使用特权

评论回复
5
icecut| | 2015-6-18 13:50 | 只看该作者
一模一样的程序在开发板上是没有问题的,不通过FPGA桥接。
fpga 错乱

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

15

帖子

0

粉丝