你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
any012 提问时间:2019-6-5 09:10 /
悬赏12ST金币已解决
现在又2个板子,1个板子定时发送can信息。
另一个板子,在尝试用rt-thread接收。结果接收板收不到信息,也进不了接收中断。
但是,一旦在总线上打开电脑连接的can盒,则接收板就能接收到数据了。
请问,这是怎么回事?

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

最佳答案

查看完整内容

楼主看一下用的是什么芯片,现在芯片有的是默认低功耗模式,需要退出低功耗模式才能收发成功。加上CAN可以收发,是因为接收器给了发送方ACK的应答。
收藏 评论16 发布时间:2019-6-5 09:10

举报

16个回答
废鱼 回答时间:2019-6-5 09:10:20
楼主看一下用的是什么芯片,现在芯片有的是默认低功耗模式,需要退出低功耗模式才能收发成功。加上CAN可以收发,是因为接收器给了发送方ACK的应答。

评分

参与人数 1蝴蝶豆 +4 收起 理由
STMCU + 4

查看全部评分

any012 回答时间:2019-6-5 09:26:50
最后一个脉冲,有可能是应答位。
接收板没有应答,所以没接收?
接上can盒后,can盒应答了,所以接收板进接收中断了?
TLLED 回答时间:2019-6-5 09:27:00
检查下总线的120R电阻

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

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电阻,没有效果。
七哥 回答时间: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能正常工作,不重发。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

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欧一样能传输数据,当然有丢帧的可能。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

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

同一路CAN接收有问题的话,发送自然会失败。
any012 回答时间:2019-6-6 08:54:26
toofree 发表于 2019-6-5 17:46
同一路CAN接收有问题的话,发送自然会失败。

我的理解,接收受影响,是因为没法相应应答位。

那么发送为何会受接收的影响呢?
七哥 回答时间:2019-6-6 09:40:04
any012 发表于 2019-6-6 08:54
我的理解,接收受影响,是因为没法相应应答位。

那么发送为何会受接收的影响呢? ...

它得知道到底发出去没有,如果没发出去,或有异常,需要重发。
这个怎么知道有没有发送成功呢,必须是通过接收才能知道。
any012 回答时间:2019-6-6 09:50:27
toofree 发表于 2019-6-6 09:40
它得知道到底发出去没有,如果没发出去,或有异常,需要重发。
这个怎么知道有没有发送成功呢,必须是通 ...

谢谢,受教了。
any012 回答时间:2019-6-6 11:20:24
本帖最后由 any012 于 2019-6-6 11:36 编辑

TJA1042T,现在才想起来,STB管脚忘了配置...
--------------------------------------------------------------------
果然是...
路过羊圈的狼 回答时间:2019-6-6 16:55:11
请教一下HAL_CAN_AddTxMessage这个函数在只有一台主机的情况下(通讯线拔掉),返回也是HAL_OK,是啥原因啊?
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版