[CAN-bus/DeviceNet] 为什么我设置工作在自发自收模式,就能触发出错报警中断

[复制链接]
 楼主| 8yuuu 发表于 2007-9-17 10:32 | 显示全部楼层 |阅读模式
我已经设置STM为1了,也就是设置在自发自收模式了,设置寄存器MOD为0x04,为什么我发送数据后只能触发出错报警中断,而接受中断和发送中断都不能出发呢?
 楼主| 8yuuu 发表于 2007-9-17 17:11 | 显示全部楼层

我能进入中断只有三种情况

当我使能EIE时  发送数据的时候能有中断产生,同理,使能EPIE和BEIE时候也能产生中断,惟独就是使能TIE和RIE时却不行
wxj1952 发表于 2007-9-17 19:07 | 显示全部楼层

请用SRR命令,CMR=0x10。

因为你没有用SRR命令启动发送。
 楼主| 8yuuu 发表于 2007-9-18 08:37 | 显示全部楼层

我有设置啊

当我写完寄存器后就置位了啊,我的代码是这样的:<br />&nbsp;&nbsp;&nbsp;&nbsp;Config();<br />buf[0]=0x04;<br />buf[1]=0x00;<br />buf[2]=0x00;<br />buf[3]=0x00;<br />buf[4]=0x01;<br />buf[5]=0xff;<br />buf[6]=0xcd;<br />buf[7]=0xff;<br />buf[8]=0xcd;<br />&nbsp;&nbsp;&nbsp;&nbsp;i=65500;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(i--);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BCAN_DATA_WRITE(buf);<br />WriteSJAReg(REG_COMMAND,0x10);
 楼主| 8yuuu 发表于 2007-9-18 16:49 | 显示全部楼层

终于能进入发送接受中断了,但是是在TX0和RX0短接的情况下

忙活了那么多天,终于稍微有点进展了,但我还不明白我这种情况是为什么,怎么会只有在TX0和RX0短接的情况下才会触发发送和接受中断呢?<br />这是不是说明我的输出驱动级有问题呢?&nbsp;&nbsp;我用的是PCA82C250,我把PCA82C250的第8脚接了个20k的电阻后接GND,总线的匹配电阻接了100,不觉得什么问题啊,急需帮忙?<br /><br />
wxj1952 发表于 2007-9-19 19:04 | 显示全部楼层

有没有万用表?

想必是已经换过82C250仍然没解决问题,量一量82C250的5V电压?第8脚我接的47K电阻,断开也行。做实验没什么道理。
 楼主| 8yuuu 发表于 2007-9-20 14:55 | 显示全部楼层

wxj1952 很是郁闷! 还是老问题

已经快绝望了,查了好久就是问题的根源,贴上我的电路,忘指点<br />
 楼主| 8yuuu 发表于 2007-9-20 14:57 | 显示全部楼层

现在 我20K的换成了47K 断开也试过了

  
wxj1952 发表于 2007-9-21 16:34 | 显示全部楼层

很简单的事。

1、用示波器/逻辑笔测量一下82C250的1脚TXD发送数据时&nbsp;有无脉冲;<br />2、当然有。然后再测量一下82C250的4脚RXD在发送数据时,&nbsp;有无脉冲,也应该有,而且应该与TXD脚完全一样。因为82C250内部电路TXD-RXD(1、4两管脚)是逻辑上短路的,除非你的芯片没工作或者坏了或者总线电路上有故障了,断开总线独立实验一下即可。<br /><br />3、把C15拿掉。
 楼主| 8yuuu 发表于 2007-9-21 17:53 | 显示全部楼层

可惜我没示波器啊

可怜我现在比较艰苦<br />现在我怀疑sja1000有问题,为什么呢?因为我不往发送寄存器里面写值,单就写一WriteSJAReg(REG_COMMAND,0x10);&nbsp;&nbsp;就产生中断了<br />不知道我分析的对不对,望wxj1952兄弟帮忙分析下啊!
wxj1952 发表于 2007-9-21 22:27 | 显示全部楼层

对的,没错!

无论TXB为何乱码,即使全0/全1,CMR=01照样发送!TR/SRR命令的发送条件只有一个:就是SR.2=1.<br /><br />SJA1000没坏。坏了还能中断?<br /><br />不用示波器,有仿真器就行。
 楼主| 8yuuu 发表于 2007-9-22 08:13 | 显示全部楼层

哎。。。可怜还没仿真器

可惜&nbsp;&nbsp;我都n久没使用过仿真器了,现在编程都习惯了只看指示灯的工作了。。。。<br />趁今天有空,继续我的can调试吧!都卡在这快一个多星期了,我会把我的进展发上来的
wxj1952 发表于 2007-9-22 16:11 | 显示全部楼层

钦佩!

太看轻自己的价值了。即使在学校,也应该有基本实验条件。在公司就更别说了。<br /><br />有工具,事半功倍。可以自己做一个逻辑笔,像这种问题只要一上午就搞定了。<br />
 楼主| 8yuuu 发表于 2007-9-22 18:20 | 显示全部楼层

wxj1952见笑啊 ,由于只是个人兴趣,所以经济上就。。。

见笑了&nbsp;&nbsp;我现在只有一个万用表,我现在测sja1000的rx和tx都没信号,都只是有4.5v左右的电压,说明什么呢?<br />我对解决问题的能力还比较弱,wxj1952前辈见笑啊
 楼主| 8yuuu 发表于 2007-9-22 19:11 | 显示全部楼层

糊里糊涂中解决了问题

现在终于把问题解决了&nbsp;,是这样的,我换了一块sja1000后还是不行,然后把82c2508脚的对地47k电阻重新接上(以前是有的),再上电试下,竟然好了,还不明白该是什么原因,期待wxj1952前辈的解释?<br />会不会是我以前sja1000那几个管脚没焊好,还是其他原因?<br />照道理sja1000不会是坏的啊,中断都能进,奇怪中。。。。。
wxj1952 发表于 2007-9-24 09:16 | 显示全部楼层

RE

既然个人有兴趣,可以帮我们公司做课题。至少不会让你连开发工具都没有。<br />sakura-1987@163.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

68

帖子

0

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

24

主题

68

帖子

0

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