打印
[CAN-bus/DeviceNet]

自己做了2个can通讯板出现一个很奇怪的问题。

[复制链接]
2352|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
high_water|  楼主 | 2010-7-8 14:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用stc89c52+sja1000t+82250
片选 P20
rst   P23
250斜率电阻4.7k
4个led 分别是P27~P24
两个板子之间通过按键计数 让另一个板子上的led显示按键次数
问题是2个板子有时候能正常通信,有时候A板能显示B板的按键次数但B板不能显示A板的按键次数 有时候B板能显示A板的按键次数 而A板又不能显示B板的
正常通信的时候我测量了一下CS 和RST都是高电平
问题1 CS不是应该低电平有效吗?为什么是高电平的时候还能正常通信
问题2 当我测量过RST之后 板子会莫名的死机,按下MCU的复位后恢复正常。这个是什么原因?
波特率是10k
下面是sja的初始化程序

shezhi[12]={0x11,0x22,0x33,0x44,0xff,0xff,0xff,0xff,0x88,0xaa,0x1f,0xff};

void CAN_init( uchar *shezhi )
{
    uchar bdata Judge;
SJA_CS = 0;//CAN总线片选有效
SJA_RST = 0;
Delay(10);
    SJA_RST = 1;//CAN总线复位管脚
    EX1 = 1;//外部中断1使能;CAN总线接收中断
    IT1 = 0;//低电平触发
   
    do{//  .0=1---reset MODRe,进入复位模式,以便设置相应的寄存器
     MODR   = 0x09;
  Judge = MODR ;} while( !(Judge & 0x01) );//保证在复位模式下操作
    ACR  = shezhi[0];
    ACR1 = shezhi[1];
    ACR2 = shezhi[2];
    ACR3 = shezhi[3];//初始化标示码
    AMR  = shezhi[4];
    AMR1 = shezhi[5];
    AMR2 = shezhi[6];
    AMR3 = shezhi[7];//初始化掩码
   
    CDR  = shezhi[8];//时钟分频; CDR.3=1--时钟关闭, CDR.7=0---basic CAN, CDR.7=1---Peli CAN
    OCR  = shezhi[9];// 配置输出控制寄存器
    BTR0 = shezhi[10];
    BTR1 = shezhi[11];//16M晶振,波特率10Kbps
    IER  = 0x01;// .0=1--接收中断使能;  .1=0--关闭发送中断使能
   
    CMR  = 0x04;//命令寄存器;释放接收缓冲器
    do{
MODR   = 0x08;Judge  = MODR; }while( Judge & 0x01 );//回到工作模式
}

相关帖子

沙发
lnskngdc| | 2010-7-8 20:01 | 只看该作者
两个节点通讯频率如何?如果一直不停的发送,可能会导致错误太多,总线关闭.
可以设置A为主,B为从.每隔2秒A发送一次,当B接收到报文后再发送.
10k的波特率稍低了点,你提到200k试试看.

使用特权

评论回复
板凳
hankchen86| | 2010-7-9 13:57 | 只看该作者
CS的电平得看你的程序是怎么样设置的。
RST脚上接上拉电阻了吗?你可以查查C52的P23脚是不是开漏输出或是其他的什么,我记不清了。

使用特权

评论回复
地板
ATM_Emerson| | 2010-10-26 15:03 | 只看该作者
问一下,你两块CAN板是通过什么相连的?是CAN1_H接CAN2_H,CAN1_L接CAN2_L的吗?

使用特权

评论回复
5
kinggowen| | 2010-10-30 13:56 | 只看该作者
1、如果CS高电平,还能通信,那肯定有问题,应该是程序的问题,可能是BUFFER没清或者其他问题。因为硬件都没有使能,收发数据是不可能的。
2、用万用表或者示波器测RST电平,由于静电的影响,电路板抗干扰能力不强,会导致死机,这是正常的。

使用特权

评论回复
6
有意思| | 2010-11-1 11:40 | 只看该作者
10k?
还要看你的收发芯片,TJA1050最低到20k,最小传输延迟决定

我用过PCA82C250,最低可以到5Kbps,用普通双绞线,传输了8km,BW:线是一卷一卷的,如果用
屏蔽,然后平铺的话,我估计是可以上10km的

使用特权

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

本版积分规则

0

主题

2

帖子

1

粉丝