打印
[CAN-bus/DeviceNet]

关于CAN通信中波特率相对较高时不能通信的相关问题

[复制链接]
3304|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangfx|  楼主 | 2009-2-17 11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调试一块232转can的板子,板子的信息如下:at89s52(11.0592m)+sja1000(16m)+82c250.
现在遇到这样的情况:sja1000设置了13种波特率分别为20k
40k50k80k100k125k200k250k400k500k666k800k1000kbps,125kbps以下6种波特率可以实现通信,当波特率为200k及以上时,则无法通信(没有任何数据)。
以1000kbps为例,我设置了所有组合的btr0tr1,也无法实现通信。
请各位朋友,分析一下,问题应该在什么方面,请不吝赐教!谢谢

相关帖子

沙发
黑蘑菇| | 2009-2-20 09:50 | 只看该作者

会不会是单片机速度的问题

如果单片机速度跟不上,出现误码太多,SJA1000会把自己屏蔽起来以保证总线安全。

使用特权

评论回复
板凳
yangfx|  楼主 | 2009-2-20 10:47 | 只看该作者

32个寄存器的内容

谢谢 黑蘑菇 以您的分析此时的总线应该处于关闭状态吧

这是发送时sja1000的32个寄存器的内容:
08 00 04 82 83 00 43 C9 3A AA 00 02 A2 60 01 00 
F4 FA F7 EF 00 00 00 00 FF FF FF FF 02 00 00 C8 
有这些数据可以看出:
产生了发送中断和总线错误中断(82),状态寄存器显示释放了发送缓冲区但请求的发送未处理完(04),仲裁丢失寄存器(02)显示仲裁丢失在识别码的bit3,错误代码捕捉寄存器(A2)显示是在接收时发生的填充错的错误,错在ID.28-ID.21,错误数为1个。
请大家分析一下,这种问题产生的原因是什么?谢谢

使用特权

评论回复
地板
hujiahua| | 2009-2-21 16:50 | 只看该作者

总线两端有没有加电阻?

使用特权

评论回复
5
yangfx|  楼主 | 2009-2-21 20:03 | 只看该作者

加了 120欧姆

加了 120欧姆
现在测试结果是能够通信的最高波特率为190.5kbps,
200kbps及高于200k的波特率均不能通信

使用特权

评论回复
6
yangfx|  楼主 | 2009-2-24 10:21 | 只看该作者

CANH、CANL线上的电容值不太匹配

问题解决了

CANH、CANL线上加的滤波电容值不太匹配,调试结果是电容不能没有,但电容值要匹配~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

1

粉丝