DSP

CAN通讯电路设计

2019-07-13 12:31发布

1 CAN通讯设计
    选用的DSP TMS320LF2407A芯片集成了CAN控制器
  的功能模块,简化了CAN的硬件电路设计E3】。集成的CAN
  控制器支持CAN2,0B协议,有6个数据长度为0一-8个字节
 的邮箱,可通过软件灵活设计接收和发送功能。该接口电路
 设计利用高速光电耦合器件6N137,将CAN的收发信号
  (CANTX和CANRX)与CAN总线隔离,同时隔离后的电路
  部分单独供电,避免CAN总线对DSP的干扰,提高了系统的
  电磁兼容性。CAN总线与DSP的连接如图所示        

CAN总线接口电路设计注意事项

  :http://blog.ednchina.com/piae/153518/message.aspx    2.故障分析: 以前我做了一个小板子,使用mega16 芯片 +sja1000+82c250+4位数码管 做了一个Can节点,
使用zlg Canbus2.0 的 zlgcantest 通讯成功!
于是我又将此板子升级,在can部分增加了光耦隔离,和电源隔离
变为:mega16+sja1000+6n137+82c250+4位数码管+dc0505
结果就是通讯不成功!最后没办法,就又写了一个can自收自发的自检测程序
结果原先的小板子,速度非常快的就可以得到自己发送的数据,
而通过改进的光耦隔离板子,在发送的时候需要3秒才能得到自己发送的数据 
 while(!(read_sja(SR) & 0x08));//检测SR.3位,判断发送是否完成
一直在这个循环中3秒才行!
目前,使用的芯片为贴片的,并且都焊在pcb上啦.
在准备拆除6n137测试前,我想请教大家是否遇到过此类问题!
另外,sja1000自检测(自收自发)是否走了82c250的接收和发送?

昨天晚上,找了个朋友帮忙解决,告诉我说可能是cpu运行慢,这让我想到我的晶振换成
16M的,于是下载程序时设置了下熔丝,结果,锁住一块板子,今天吃完饭还要去解锁!

备注: 原先板子  mega16L 8MAU
      光耦板子  mega16  16MAU 积分:19
派别:
等级:------
来自:
各位老大,老师们,感谢大家的建议!!
问题已经解决啦!
原因是我的 sja1000 的晶振电容 用的是 100nf,改为 22pf 一切OK ,速度飞快 ,与Can Bus 通讯正常,!!
谢谢!现在结贴,也算给大家一个交代!!
真乃晕菜也!!
100nf ,卖电容的伙计估计是喝多了,给标成 20pf!太离谱啦
转自:    http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4434342&bbs_page_no=2&bbs_id=1003     CAN-bus网络电缆与插座的选择.pdf: http://www.vdisk.cn/down/index/7505953A3255      3.while ( (CANTFLG & TxBuffer) != TxBuffer) 程序运行到此处程序不能往下运行了,(调试MC9SDZ60的CAN程序用的是1040CAN收发器) 故障未解决