woniu158 发表于 2013-5-16 10:13:39

FPGA 控制 sja1000 opencore can 软核

硬件结构如下

在nios中采用模拟io的方式读写sja1000软核里面的寄存器,
代码如下:(以读写模式寄存器为例)
ALE_LOW;
   SJA_CS_HI;
   RD_HI;
   WR_HI;
      ALE_HI;
   IOWR_ALTERA_AVALON_PIO_DATA(CAN_DAT_BASE,0);//写地址
   ALE_LOW;
      SJA_CS_LOW;
      WR_LOW;
   //PORT_IN;
   IOWR_ALTERA_AVALON_PIO_DATA(CAN_DAT_BASE,0x09);//写数据

   WR_HI;
   SJA_CS_HI;
   ALE_HI;
   //readreg
   ALE_LOW;
   RD_HI;
   WR_HI;
   SJA_CS_HI;
       ALE_HI;
   IOWR_ALTERA_AVALON_PIO_DATA(CAN_DAT_BASE,0);//写地址
   ALE_LOW;
   SJA_CS_LOW;
   RD_LOW;
   PORT_IN;
   Judge=IORD_ALTERA_AVALON_PIO_DATA(CAN_DAT_BASE);//读数据
      RD_HI;
   SJA_CS_HI;   
下面是sja1000 的读写时序:



目前的问题是,读出来的寄存器值全部为0xff。我已经检查过很多次了, 代码的时序是正确的,但是为什么读出来就是0xff呢?   nios cpu的时钟为125m, can的clk输入为25m。

woniu158 发表于 2013-5-16 10:20:44

有没有人解答啊顶 顶 顶

51EDA技术 发表于 2013-5-16 11:06:57

woniu158 发表于 2013-5-16 10:20 static/image/common/back.gif
有没有人解答啊顶 顶 顶

网上有用VHDL写的。

woniu158 发表于 2013-5-16 14:05:05

51EDA技术 发表于 2013-5-16 11:06 static/image/common/back.gif
网上有用VHDL写的。

能发一个网址么? 我现在想用nios 写。。。 写进去全是0xff。 快崩溃了。。。

51EDA技术 发表于 2013-5-16 14:17:57

   
verilog 的。请自己验证。

51EDA技术 发表于 2013-5-16 14:29:19

woniu158 发表于 2013-5-16 14:05 static/image/common/back.gif
能发一个网址么? 我现在想用nios 写。。。 写进去全是0xff。 快崩溃了。。。 ...

verilog 的。请自己验证。

coosign 发表于 2013-5-16 14:45:36

有VHDL版本的吗?

woniu158 发表于 2013-5-16 15:21:09

51EDA技术 发表于 2013-5-16 14:29 static/image/common/back.gif
verilog 的。请自己验证。

你好,你没懂我的意思。我上面的原理图就是用opencore 的can ip核生成的。 我现在想用nios去操作这个can软核。 按照sja1000的时序去读写它的寄存器,始终都是0xff这是我现在遇到的问题。

woniu158 发表于 2013-5-16 15:37:49

自己再顶一下,别沉了啊!!!!!!!!!!!

woniu158 发表于 2013-5-17 09:09:15

自己再顶一下,别沉了啊!!!!!!!!!!!

sme 发表于 2013-5-17 09:43:46

用片内逻辑分析仪把Can的接口时序抓出来,确认时序是否有问题。

51EDA技术 发表于 2013-5-17 09:52:44

woniu158 发表于 2013-5-16 15:21 static/image/common/back.gif
你好,你没懂我的意思。我上面的原理图就是用opencore 的can ip核生成的。 我现在想用nios去操作这个can ...

要先确认CAN本身是不是正常。

woniu158 发表于 2013-5-17 11:06:38

51EDA技术 发表于 2013-5-17 09:52 static/image/common/back.gif
要先确认CAN本身是不是正常。

CAN用的是opencore上的CAN软核,8051接口

lijumiao 发表于 2013-6-8 17:04:56

多验证下时序呗我用同样的方法可以完成收发了

du520xi 发表于 2013-9-27 14:02:47

{:smile:}{:smile:}

ganggangliu6666 发表于 2013-12-16 15:01:06

学习!!!!!

胡说大道 发表于 2014-12-30 09:32:20

学习了,正准备用FPGA实现CAN控制器。
页: [1]
查看完整版本: FPGA 控制 sja1000 opencore can 软核