请教关于SJA1000的复位问题 点击:2934 | 回复:6



WOAIPANPAN

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 3回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2006年7月28日
发表于:2007-01-22 22:09:00
楼主
我使用硬件仿真时,在上电复位后,读SJA1000的寄存器复位值大多都与书上所列的寄存器硬件值不符,而且每次复位后读的值都不一样,请问是我硬件的问题吗?

请高手指点下



WOAIPANPAN

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 3回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2006年7月28日
发表于:2007-01-23 20:51:00
1楼
各位大侠 ,本来我在自测模式下理论上已经成功了,因为发送和接收中断都可以收到,然后发送和接收的数据也正确,不过我总感觉如果硬件或者其他什么地方不对的话,也有可能造成自测模式收发数据成功的假象,因为发送数据区和接收数据区是使用相同的地址,所以也并不代表真的接收到了数据(本来自测模式就不是真的接收到了数据!!!!!,晕)

然后我想到一个方法就是 有很多寄存器在操作模式下是不能更改的,是只读的 ,要进复位模式才能对这些寄存器进行写操作,比如RX,TX错误计数寄存器。然后我对这两个寄存器在操作模式下进行了写操作,再将它们里面的数据读出来,结果这两个寄存器中的数据变成了我写进去的数据,这是否就说明我 的系统有问题??请各位大侠指导,谢谢

WOAIPANPAN

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 3回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2006年7月28日
发表于:2007-01-23 21:05:00
2楼
另外,是否测试寄存器写入和读出的数据正确就代表系统接口正确呢?(我参考了ZLGMCU上的例程,好像那上面的程序就是这样),但同样是相同的例程,通过读状态寄存器SR来判断是否有数据正在发送,是否发送缓冲区锁定等,但我复位以后读出来的SR并不是书上所说的复位值,它上面的值所代表的状态一直是代表总线关闭,数据区锁定等,而且SR寄存器是只读寄存器,无法对上面的值进行修改,请大家指点下,我应该怎么办!!!!!!!

SJA1000应用的高手们请给我点指点,谢谢大家

明远

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 22回
  • 年度积分:0
  • 历史总积分:134
  • 注册:2007年3月13日
发表于:2007-03-14 13:57:00
3楼
ZLG不一定对,不信你向31号寄存器写入0xff,然后再读出来看,它如果要还是0xff,那才怪!

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-03-14 19:35:00
4楼
SJA1000的APPLICATION很多了啊.不过我没用过这玩意儿,只用过CPU自带的CAN控制器,我测试的时候也是认为自测试没有实际意义,两组对收对发的来做的.

佟诚德

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2007年3月15日
发表于:2007-03-15 11:05:00
5楼
最好用另外一个节点试一试能否收到发送的报文,SR复位运行后默认是0x0c,多看看SJA1000的DataSheet和CAN协议规范,应该没问题的

JZ

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:56
  • 注册:2007年2月02日
发表于:2008-12-01 14:25:11
6楼
AJA1000 我有现货,封装DIP28脚 价格20元/只

联系电话:0512-67619080

13861327199 周

email: jasonzhou2005@yahoo.com.cn

QQ: 171948249

热门招聘
相关主题

官方公众号

智造工程师