[CAN-bus/DeviceNet] 高手请来指导一下

[复制链接]
2698|7
 楼主| alearc 发表于 2007-8-2 00:30 | 显示全部楼层 |阅读模式
我按照ZLG的PDF搭了一个常见的CAN节点:sja1000&nbsp;,at89s52(用仿真器代替),CTM1050T(82c250带光耦)上电复位以后,按照书上的流程初始化后,读SR为00111100即:总线开启;错误未达到报警限制;正在发送信息;正在接收信息;发送完毕;可向发送缓冲器写数据;无数据溢出;无可用信息。<br />读IR为00000000即:中断寄存器全部复位。<br />问题是我设置的是MOD为00001100;中断使能为0xff,所以奇怪为什么状态是00111100,而且中断寄存器全部是0,接下来该怎么操作很让我头疼,我第一次接触can没有什么经验,程序主要是借鉴桂电飞天鼠的,请高手多多指教.谢谢~!
1181zjf 发表于 2007-8-2 10:06 | 显示全部楼层

这样试试

试试正常输出模式!<br />sja1000用的是多大的晶振?<br />basic模式没自检测!可以再搞一套实验板联调!
 楼主| alearc 发表于 2007-8-2 10:46 | 显示全部楼层

谢谢

&nbsp;谢谢,我试过了在PELI下正常发送模式,用的是16M&nbsp;晶振&nbsp;,结果还是一样的,还没有在basic模式下自测试,今天试一下,我已经搭了2个板子,另一个板子:可以写数据到96以后,16到26也是正确的数据,然后置为CMR。0就是写不进去,不发送。<br />两个板子是一样的。<br />谢谢请大家继续指教~。
桂电飞天鼠 发表于 2007-8-4 16:03 | 显示全部楼层

你用的哪一个程序?

自测试只有在Peli模式下才有。<br />你先自测试通过再两块板子一起做实验吧,这样容易排除问题。<br /><br />自测试时把屏蔽码验收码全设为0xff,全通;<br />波特率参考标准的随便拿一个(16M晶振下的);<br />然后再发送(模式寄存器的D2位STM)。<br /><br />另外要注意你的片选端所接位置,如接P2.7,基地址可用0x7f00;接P2.0,可用0xfe00;
 楼主| alearc 发表于 2007-8-6 13:59 | 显示全部楼层

是这样

是你发到网上的程序,基址是7f,是再PELI模式下,<br />就是状态读出来是00111100(复位以后进入正常自测试模式),觉得很矛盾啊,你有没有遇到这样的问题
 楼主| alearc 发表于 2007-8-6 19:46 | 显示全部楼层

最新的

&nbsp;&nbsp;现在可以往16到26里面写数据了(我用的是标准帧),但是奇怪的是:<br />&nbsp;for&nbsp;(i=0;&nbsp;i&ltlen;&nbsp;i++)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SJARegWrite(16+i,SendDataBuf);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;0;<br />这样写入的值从16到23都是对了,24,25,26里面的值为0,但是看96以后的值又都是正确的,不知道怎样改正。观测LEN&nbsp;的值,这个时候是11,而且有的时候16到26的值没有变化,启动自收发后,0寄存器的复位置位了,进入了复位状态,书上没有这样说过,不知道怎么回事,那位高手遇到过这样问题,盼指教!
桂电飞天鼠 发表于 2007-8-7 14:29 | 显示全部楼层

rt

耐心一点,先用之前别人已经完整的程序来实验,成功后再按自己的想法去更改,这样可以保证问题的出处。
桂电飞天鼠 发表于 2007-8-8 12:37 | 显示全部楼层

rt

没必要用仿真器的~~~<br />读哪个寄存器,都可以通过SJA1000驱动中的读寄存器函数可以得到~~~~<br /><br />如:<br />uchar&nbsp;tempdata;<br />tempdata&nbsp;=&nbsp;SJARegRead(IR);//tempdata&nbsp;=&nbsp;SJARegRead(SR);<br /><br />其中IR与SR均为SJA1000对应寄存器的地址(基址+偏移)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部