|
硬件结构如下
在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;
//read reg
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。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|