http88688 发表于 2010-12-5 09:24:01

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

zhiwei 发表于 2010-12-5 10:42:25

用示波器看看呀。也许6N137你没有调好导致信号不好所以can自动重试了好多次还成功?不懂can的飘过,呵呵。。

erxun 发表于 2010-12-5 11:06:00

6N137 的LED限流\输出上拉电阻 最好都用360欧姆,不然速度跟不上。

bbs2009 发表于 2010-12-5 11:21:09

wgjwgj 发表于 2010-12-5 11:58:26

CAN速度,一是和你距离有关,二是和你节点有关。

当然,你用光藕隔离,你用的是高速光藕吗?

http88688 发表于 2010-12-6 09:16:46

昨天没在,没能及时回帖!
其实我也是想学Can才搞小板和这块升级版(光耦隔离),做了小板才对Can有所了解.
孟老师的建议加电阻,我是加啦,都是390的
使用示波器还没有测,关键是没有示波器,也不知道怎么测,今天看看找朋友帮帮忙测一下吧
现在这块光耦隔离的节点,还没有接到总线上,只是做了一个自检测程序(自收自发),速度就很慢,而将这个自检测程序下载到原先那个不带光耦隔离的版子上,则自检测程序运行飞快,这样就排除程序的问题啦.
是不是,我的6n137(高速光耦)有毛病啊还是其他问题,我先检查一下,如果各位老师有建议请指点!
电路原理图:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602628MOAH8X.JPG
(原文件名:6n137.JPG)

http88688 发表于 2010-12-6 13:11:04

请老师帮我看看原理图啊!!应该是标准的Can光耦隔离啦

eworker 发表于 2010-12-6 13:28:17

学习

http88688 发表于 2010-12-6 22:44:31

can 学习中,急需帮助!

yaya001 发表于 2010-12-6 22:57:36

建议使用TI的ISO1050 带隔离的can驱动芯片

avrvsarm@163.com

bbs2009 发表于 2010-12-6 23:20:49

http88688 发表于 2010-12-7 11:39:33

回复楼上的,r29,r31 已经改为4.7K,问题依旧!

请问 sja1000 的自首自发 经过 82c250 了吗?

bbs2009 发表于 2010-12-7 12:14:14

http88688 发表于 2010-12-7 17:59:43

一个收,一个发不能通讯(程序是正确的) 以前那个小板(不带光耦隔离的)一个发一个收可以通讯速度也快!

bbs2009 发表于 2010-12-7 18:17:17

http88688 发表于 2010-12-7 19:23:05

现在正在积极的找问题,真不信这个邪,等找到答案一定让大家知道.
带光耦的版子 ,和不带光耦的版子,使用同一个程序!!
----------------------------------------------------------------------------------------------
一个收,一个发不能通讯(程序是正确的) 以前那个小板(不带光耦隔离的)一个发一个收可以通讯速度也快!
----------------------------------------------------------------------------------------------

Trylin 发表于 2010-12-7 19:33:26

关注中...

wychao 发表于 2010-12-7 22:55:07

6n137假的很多的
最好还是找个示波器

http88688 发表于 2010-12-8 13:27:03

找问题之怪现象之一:
sja1000 自发自收
为了验证sja1000自发自收是否通过收发器(82c250),于是将小板(不带光耦隔离)的82c250拆掉,结果sja1000的自发自收不工作!
确定sja1000自发自收通过了82c250收发器.
奇怪事件:
顺手将82c250反过来接到pcb上,运行sja1000的自发自收程序(程序一样),结果是什么?
哈哈,sja1000的自发自收工作正常.不明白其中道理!
谁能解释?
(顺便,借了个示波器,不会用,正在找资料,可惜穷搜google,baidu,bing,关于示波器测量Can的资料太少.现在依然在努力...懵)

erxun 发表于 2010-12-9 11:15:59

斜率电阻 Rs 在不同波特率下,阻值有所区别。

arndei 发表于 2010-12-9 11:51:18

6N137假货很多,楼主小心哈

xiaoerge 发表于 2010-12-9 12:30:39

最好找个示波器量一下光耦的输入输出,一目了然

kite2006 发表于 2010-12-9 12:38:18

以前的同事搞过,用6N137,有几十米的距离,can的速度好像可以到10m的,和没隔离没有区别的
检查你的6N137吧

bbs2009 发表于 2010-12-9 15:41:53

skyline1982 发表于 2010-12-9 22:20:42

MARK

http88688 发表于 2010-12-20 15:35:16

各位老大,老师们,感谢大家的建议!!
问题已经解决啦!
原因是我的 sja1000 的晶振电容 用的是 100nf,改为 22pf 一切OK ,速度飞快 ,与Can Bus 通讯正常,!!
谢谢!现在结贴,也算给大家一个交代!!
真乃晕菜也!!
100nf ,卖电容的伙计估计是喝多了,给标成 20pf!太离谱啦

ece123 发表于 2011-12-5 15:29:47

mark

whtwhtw 发表于 2011-12-5 16:58:52

mark

taojie 发表于 2011-12-9 12:05:02

关注一下

ysu533 发表于 2011-12-13 18:16:51

mark 6n137

zzzzzzzzz2 发表于 2011-12-25 09:45:25

SJA1000对电容确实很敏感

1431897797 发表于 2014-11-23 14:44:48


在CAN总线中加隔离器就不会影响速率了。这个无源的CAN隔离器把我惊呆了。
页: [1]
查看完整版本: Can难道加上光耦隔离通讯就变慢了??