any012 发表于 2019-6-5 09:10:19

can接收失败,但总线上如果多一个can盒的话,就能接收成功

现在又2个板子,1个板子定时发送can信息。
另一个板子,在尝试用rt-thread接收。结果接收板收不到信息,也进不了接收中断。
但是,一旦在总线上打开电脑连接的can盒,则接收板就能接收到数据了。
请问,这是怎么回事?

下图中,图纸靠下的白色图形,是打开can盒后,用示波器表笔测量接收板的can信号两端的波形;靠上的黄色波形,是没打开can盒时测量接收板的can信号的波形。
可以看到,黄色波形最后少一个脉冲,并且,由于发送没成功,之后又重新发送了,实际上是重新发送了很长一段时间。


发表于 2019-6-5 09:10:20

楼主看一下用的是什么芯片,现在芯片有的是默认低功耗模式,需要退出低功耗模式才能收发成功。加上CAN可以收发,是因为接收器给了发送方ACK的应答。

any012 发表于 2019-6-5 09:26:50

最后一个脉冲,有可能是应答位。
接收板没有应答,所以没接收?
接上can盒后,can盒应答了,所以接收板进接收中断了?

TLLED 发表于 2019-6-5 09:27:00

检查下总线的120R电阻

any012 发表于 2019-6-5 09:48:13

本帖最后由 any012 于 2019-6-5 09:56 编辑

TLLED 发表于 2019-6-5 09:27
检查下总线的120R电阻
can盒上有120欧电阻。
从波形上看接不接can盒,接收板can端信号幅度基本一致。所以,应该不是120电阻的问题吧?
--------------------------------------------------------------------------------------------------------------------
也试了在接收板can端子两端并120电阻,没有效果。

toofree 发表于 2019-6-5 12:02:12

any012 发表于 2019-6-5 09:48
can盒上有120欧电阻。
从波形上看接不接can盒,接收板can端信号幅度基本一致。所以,应该不是120电阻的问 ...
如果只有两个CAN端点的话,按正常套路,两个CAN端点都得并120欧匹配电阻,位置越靠近CAN收发器越好。
如果不并120欧,也可能成功,但是不符合套路,只能算是巧合;并120欧后,95%上的可能CAN能正常工作,不重发。

any012 发表于 2019-6-5 13:45:25

toofree 发表于 2019-6-5 12:02
如果只有两个CAN端点的话,按正常套路,两个CAN端点都得并120欧匹配电阻,位置越靠近CAN收发器越好。
如果 ...

好吧,can所接的两个设备都并了120电阻,结果依旧。

any012 发表于 2019-6-5 13:55:54

有点思路了。
应答是由接收板置显性电平的,现在我这接收板有问题,can发送失败,故没法响应最后的应答信号。

stm1024 发表于 2019-6-5 14:05:45

应该是ACK的原因,和电阻关系不大,我们之前试过,120欧一样能传输数据,当然有丢帧的可能。

toofree 发表于 2019-6-5 17:46:53

any012 发表于 2019-6-5 13:55
有点思路了。
应答是由接收板置显性电平的,现在我这接收板有问题,can发送失败,故没法响应最后的应答信号 ...

同一路CAN接收有问题的话,发送自然会失败。
页: [1] 2
查看完整版本: can接收失败,但总线上如果多一个can盒的话,就能接收成功