Can难道加上光耦隔离通讯就变慢了??
以前我做了一个小板子,使用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
光耦板子mega1616MAU 用示波器看看呀。也许6N137你没有调好导致信号不好所以can自动重试了好多次还成功?不懂can的飘过,呵呵。。 6N137 的LED限流\输出上拉电阻 最好都用360欧姆,不然速度跟不上。 CAN速度,一是和你距离有关,二是和你节点有关。
当然,你用光藕隔离,你用的是高速光藕吗? 昨天没在,没能及时回帖!
其实我也是想学Can才搞小板和这块升级版(光耦隔离),做了小板才对Can有所了解.
孟老师的建议加电阻,我是加啦,都是390的
使用示波器还没有测,关键是没有示波器,也不知道怎么测,今天看看找朋友帮帮忙测一下吧
现在这块光耦隔离的节点,还没有接到总线上,只是做了一个自检测程序(自收自发),速度就很慢,而将这个自检测程序下载到原先那个不带光耦隔离的版子上,则自检测程序运行飞快,这样就排除程序的问题啦.
是不是,我的6n137(高速光耦)有毛病啊还是其他问题,我先检查一下,如果各位老师有建议请指点!
电路原理图:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602628MOAH8X.JPG
(原文件名:6n137.JPG) 请老师帮我看看原理图啊!!应该是标准的Can光耦隔离啦 学习 can 学习中,急需帮助! 建议使用TI的ISO1050 带隔离的can驱动芯片
avrvsarm@163.com 回复楼上的,r29,r31 已经改为4.7K,问题依旧!
请问 sja1000 的自首自发 经过 82c250 了吗? 一个收,一个发不能通讯(程序是正确的) 以前那个小板(不带光耦隔离的)一个发一个收可以通讯速度也快! 现在正在积极的找问题,真不信这个邪,等找到答案一定让大家知道.
带光耦的版子 ,和不带光耦的版子,使用同一个程序!!
----------------------------------------------------------------------------------------------
一个收,一个发不能通讯(程序是正确的) 以前那个小板(不带光耦隔离的)一个发一个收可以通讯速度也快!
---------------------------------------------------------------------------------------------- 关注中... 6n137假的很多的
最好还是找个示波器 找问题之怪现象之一:
sja1000 自发自收
为了验证sja1000自发自收是否通过收发器(82c250),于是将小板(不带光耦隔离)的82c250拆掉,结果sja1000的自发自收不工作!
确定sja1000自发自收通过了82c250收发器.
奇怪事件:
顺手将82c250反过来接到pcb上,运行sja1000的自发自收程序(程序一样),结果是什么?
哈哈,sja1000的自发自收工作正常.不明白其中道理!
谁能解释?
(顺便,借了个示波器,不会用,正在找资料,可惜穷搜google,baidu,bing,关于示波器测量Can的资料太少.现在依然在努力...懵) 斜率电阻 Rs 在不同波特率下,阻值有所区别。 6N137假货很多,楼主小心哈 最好找个示波器量一下光耦的输入输出,一目了然 以前的同事搞过,用6N137,有几十米的距离,can的速度好像可以到10m的,和没隔离没有区别的
检查你的6N137吧 MARK 各位老大,老师们,感谢大家的建议!!
问题已经解决啦!
原因是我的 sja1000 的晶振电容 用的是 100nf,改为 22pf 一切OK ,速度飞快 ,与Can Bus 通讯正常,!!
谢谢!现在结贴,也算给大家一个交代!!
真乃晕菜也!!
100nf ,卖电容的伙计估计是喝多了,给标成 20pf!太离谱啦 mark mark 关注一下 mark 6n137 SJA1000对电容确实很敏感
在CAN总线中加隔离器就不会影响速率了。这个无源的CAN隔离器把我惊呆了。
页:
[1]