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 static/image/common/back.gif
有没有人解答啊顶 顶 顶
网上有用VHDL写的。 51EDA技术 发表于 2013-5-16 11:06 static/image/common/back.gif
网上有用VHDL写的。
能发一个网址么? 我现在想用nios 写。。。 写进去全是0xff。 快崩溃了。。。
verilog 的。请自己验证。 woniu158 发表于 2013-5-16 14:05 static/image/common/back.gif
能发一个网址么? 我现在想用nios 写。。。 写进去全是0xff。 快崩溃了。。。 ...
verilog 的。请自己验证。 有VHDL版本的吗? 51EDA技术 发表于 2013-5-16 14:29 static/image/common/back.gif
verilog 的。请自己验证。
你好,你没懂我的意思。我上面的原理图就是用opencore 的can ip核生成的。 我现在想用nios去操作这个can软核。 按照sja1000的时序去读写它的寄存器,始终都是0xff这是我现在遇到的问题。 自己再顶一下,别沉了啊!!!!!!!!!!! 自己再顶一下,别沉了啊!!!!!!!!!!! 用片内逻辑分析仪把Can的接口时序抓出来,确认时序是否有问题。 woniu158 发表于 2013-5-16 15:21 static/image/common/back.gif
你好,你没懂我的意思。我上面的原理图就是用opencore 的can ip核生成的。 我现在想用nios去操作这个can ...
要先确认CAN本身是不是正常。 51EDA技术 发表于 2013-5-17 09:52 static/image/common/back.gif
要先确认CAN本身是不是正常。
CAN用的是opencore上的CAN软核,8051接口
多验证下时序呗我用同样的方法可以完成收发了 {:smile:}{:smile:} 学习!!!!! 学习了,正准备用FPGA实现CAN控制器。
页:
[1]