can总线干扰问题!

piaoyu8 2008-03-31 09:37:01
各位大侠,我现在在调CAN总线,我的CAN总线,控制器是用AT89S52+SJA1000+TJA1050,波特率是250K,总线上有加匹配电阻120,当我的节点少于13个时很正常,可是当大于13个以上的时候,每增加一个节点,我用总线监视器看到的错误就增加了不少,不知道这是什么原因造成的,各位可否提供点思路????
...全文
316 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
subsh 2008-08-06
  • 打赏
  • 举报
回复
怎么解决的?
piaoyu8 2008-04-12
  • 打赏
  • 举报
回复
我的问题解决,谢谢各位
piaoyu8 2008-04-03
  • 打赏
  • 举报
回复
再请问一下各位,在中断中你们都设置了哪几个中断,有哪些要要求要复位SJA1000的,
piaoyu8 2008-04-02
  • 打赏
  • 举报
回复
线缆长度和质量


我们采用的是0。5MM的线,不过是用平行,不是双绞形式的,
getit911 2008-04-02
  • 打赏
  • 举报
回复
线缆长度和质量都会造成这个问题。
aaronstone 2008-04-02
  • 打赏
  • 举报
回复
关注中。。。
aaronstone 2008-04-02
  • 打赏
  • 举报
回复
关注中。。。
piaoyu8 2008-04-01
  • 打赏
  • 举报
回复
怎么没有人回答呢???
piaoyu8 2008-04-01
  • 打赏
  • 举报
回复
while((REG_MOD&0x01)==0x00)
{
REG_MOD=REG_MOD|0x01;
if((++i)>200)
{
restart=1;
break;
}
}
REG_CDR=0x88;
REG_IER=0XCF;
REG_ACR0=0X00;
REG_ACR1=0X00;
REG_ACR2=0X01;
REG_ACR3=0X0F;
REG_AMR0=0xff;
REG_AMR1=0xff;
REG_AMR2=0xff;
REG_AMR3=0Xff;
REG_BTR0=0x01;
REG_BTR1=0x1C;
REG_OCR=0xAA; //1A
REG_RBSA=0;
REG_ECC=0;
REG_EWLR=0X60;
REG_TXERR=0; REG_RXERR=0; REG_MOD=0X08;

void CAN_REST(void)
{
uint i ;
EA=0;
EX0=0;
Can_Rsting=1;
CAN_RST=0;
for(i=0;i<100;i++)
{
}
CAN_RST=1;
for(i=0;i<150;i++)
{
}
init_sja1000();
EA=1;
EX0=1;
Can_Rsting=0;
}
以上是我的一些程序,懂行的帮忙看看,谢谢了

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧