打印
[CAN-bus/DeviceNet]

我的CAN节点为什么不能自发?

[复制链接]
1836|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zysunol|  楼主 | 2007-1-29 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问ZlgCan
    我把sja1000配置成为自发自收,初始化之后,发送数组,(仿照你们的节点设计)看寄存器全部正确,发送缓冲区也写进去了,读状态总是04或者f4,这是怎么回事?
    我就是一块板子,没有连接其它设备,硬件上是不是要做些什么处理?

相关帖子

沙发
zysunol|  楼主 | 2007-1-29 17:40 | 只看该作者

我的SR读出来第一次是0c,接下来都是f4

有时候也会出现04,难道自发送一定要有接收处理吗?

使用特权

评论回复
板凳
wxj1952| | 2007-1-30 11:58 | 只看该作者

设为单次发送一试

1、请设置CMR为03或者12H一试。
2、TX-RX间没有通路。

使用特权

评论回复
地板
zysunol|  楼主 | 2007-1-31 21:10 | 只看该作者

wxj1952请问

TX-RX间没有通路?是什么意思?tx和rx怎么会有通路呢?

使用特权

评论回复
5
wxj1952| | 2007-2-1 20:33 | 只看该作者

没通路?!

TX-RX如果没通路,如何实现自发自收?即使不是自收发,如何实现CAN协议?
这种通路是在82C250内部实现的,所以无论什么实验,必须插上总线驱动器。
做单节点自收发实验时,可以直接把SJA1000的TX-RX管脚短接。

使用特权

评论回复
6
zysunol|  楼主 | 2007-2-5 14:23 | 只看该作者

我程序无法进入接收子程序

WXJ1952:

我看了一下以前的**,有一个和我同样的问题:

设置了模式寄存器为自检测模式,命令寄存器为自发自收并启动发送,为何读状态寄存器接收缓冲器始终无数据,在此模式下发送缓冲器和接收缓冲器是否为同一地址16-28 

我程序无法进入接收子程序,硬件上是否需要将本身的RX和TX连接?我已经使用了82c250。

使用特权

评论回复
7
zysunol|  楼主 | 2007-2-5 17:32 | 只看该作者

我对文档的理解

从sja1000资料上看自收发设计 我个人是这样理解的
硬件上 tx-rx内部自行连接,也就是电路不用修改;
软件上 对cmr写40就可以了 会同时发送和接收

现在我通过寄存器察看 初始化、待发送数据放入都是对的,但是对cmr操作让它发送时,看不到结果,不知道是不能发送还是不能接收,希望做过的兄弟指导一下

使用特权

评论回复
8
wxj1952| | 2007-2-8 18:55 | 只看该作者

是向CMR.4写入“1”!

我很想知道是哪篇资料说的向CMR写入40会启动自收发。应该是写入10H/12H/13H。
还因为CMR.5-CMR.7是无效位。

使用特权

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

本版积分规则

14

主题

32

帖子

0

粉丝