打印

请教各位一个问题,关于ARM读取数据总线上的数据

[复制链接]
3001|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在设计中用到ARM读取FPGA送来的数据,
ARM中的程序是
#define R_fifo_addr     (*(volatile unsigned char *)0x28000003);

在测试程序中是
for(i=0;i<10;i++)
        {
             data_buf=R_fifo_addr;
           
         }
      
      
       for(i=0;i<10;i++)
        {
           Uart_Printf("%x ",data_buf);
         }
      
      
      while(1);

FPGA中是检测到地址的最后两位是高电平时,同时nGCS5和LnOE为低这四个条件时送出往数据总线的低八位送数据的,不管你在FPGA这部分更改输出测试数据,但是读出来的数据是不正确的,固定的0x0c,不知道哪里有问题,请高手赐教?

相关帖子

沙发
xinzha| | 2012-4-18 21:40 | 只看该作者
不能这么粗暴吧,按照amba总线的协议,你的fpga要实现ahb master或者slave的接口,按照规定的时序和信号要求来驱动数据总线。最起码的ready判断,grant判断什么的还是要有的。
我是做软件的,所以不能说你的问题肯定在哪儿。但是根据我在做总线数据分析的经验,amba的控制和时序肯定比你描述的复杂得多,建议下个amba2.0的标准去看看。

使用特权

评论回复
板凳
workhard123|  楼主 | 2012-4-18 22:15 | 只看该作者
2# xinzha
感谢您的指教和建议
但是我在这个论坛上看到有人用ARM读写信号读取FPGA中FIFO中的数据,
不过前提是在linux下的,难道把FPGA的作为ARM的存储设备,就可以这样
操作了吗?
不是很明白?望指教

使用特权

评论回复
地板
xinzha| | 2012-4-18 23:23 | 只看该作者
不挂在总线上你想怎么操作可以你自己规定一套协议出来,既然你把它挂在amba总线上,你就得按照amba的规定去做。

使用特权

评论回复
5
workhard123|  楼主 | 2012-4-19 09:36 | 只看该作者
4# xinzha
恩 按照您的这种说法,FPGA接收ARM传来的数据也要写一个符合APB的协议的接口?

使用特权

评论回复
6
xinzha| | 2012-4-19 15:36 | 只看该作者
对,只要你挂在总线上就得符合总线的协议,至于是apb还是ahb,asb看你自己的设计了。

使用特权

评论回复
7
workhard123|  楼主 | 2012-4-21 18:10 | 只看该作者
6# xinzha
自己的能力还没有到达写这种接口的level,对我来说太复杂了
感谢您的回复

我现在试着在看看,自己的程序有什么问题
谢谢

使用特权

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

本版积分规则

1

主题

21

帖子

1

粉丝