[CAN-bus/DeviceNet] 我的CAN节点为什么不能自发?

[复制链接]
3380|7
 楼主| zysunol 发表于 2007-1-29 16:50 | 显示全部楼层 |阅读模式
请问ZlgCan<br />&nbsp;&nbsp;&nbsp;&nbsp;我把sja1000配置成为自发自收,初始化之后,发送数组,(仿照你们的节点设计)看寄存器全部正确,发送缓冲区也写进去了,读状态总是04或者f4,这是怎么回事?<br />&nbsp;&nbsp;&nbsp;&nbsp;我就是一块板子,没有连接其它设备,硬件上是不是要做些什么处理?
 楼主| zysunol 发表于 2007-1-29 17:40 | 显示全部楼层

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

有时候也会出现04,难道自发送一定要有接收处理吗?
wxj1952 发表于 2007-1-30 11:58 | 显示全部楼层

设为单次发送一试

1、请设置CMR为03或者12H一试。<br />2、TX-RX间没有通路。
 楼主| zysunol 发表于 2007-1-31 21:10 | 显示全部楼层

wxj1952请问

TX-RX间没有通路?是什么意思?tx和rx怎么会有通路呢?
wxj1952 发表于 2007-2-1 20:33 | 显示全部楼层

没通路?!

TX-RX如果没通路,如何实现自发自收?即使不是自收发,如何实现CAN协议?<br />这种通路是在82C250内部实现的,所以无论什么实验,必须插上总线驱动器。<br />做单节点自收发实验时,可以直接把SJA1000的TX-RX管脚短接。
 楼主| zysunol 发表于 2007-2-5 14:23 | 显示全部楼层

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

WXJ1952:<br /><br />我看了一下以前的**,有一个和我同样的问题:<br /><br />设置了模式寄存器为自检测模式,命令寄存器为自发自收并启动发送,为何读状态寄存器接收缓冲器始终无数据,在此模式下发送缓冲器和接收缓冲器是否为同一地址16-28&nbsp;<br /><br />我程序无法进入接收子程序,硬件上是否需要将本身的RX和TX连接?我已经使用了82c250。<br />
 楼主| zysunol 发表于 2007-2-5 17:32 | 显示全部楼层

我对文档的理解

从sja1000资料上看自收发设计&nbsp;我个人是这样理解的<br />硬件上&nbsp;tx-rx内部自行连接,也就是电路不用修改;<br />软件上&nbsp;对cmr写40就可以了&nbsp;会同时发送和接收<br /><br />现在我通过寄存器察看&nbsp;初始化、待发送数据放入都是对的,但是对cmr操作让它发送时,看不到结果,不知道是不能发送还是不能接收,希望做过的兄弟指导一下<br />
wxj1952 发表于 2007-2-8 18:55 | 显示全部楼层

是向CMR.4写入“1”!

我很想知道是哪篇资料说的向CMR写入40会启动自收发。应该是写入10H/12H/13H。<br />还因为CMR.5-CMR.7是无效位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

32

帖子

0

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