关于can总线调试,我用51单片机和sja1000还有82c250组成的can总线,原理图照着书上画,现在调试的情况如下

关于can总线调试,我用51单片机和sja1000还有82c250组成的can总线,点对点发送。原理图照着书上画,现在调试的情况如下:1,先能对sja1000初始化,对s... 关于can总线调试,我用51单片机和sja1000还有82c250组成的can总线,点对点发送。原理图照着书上画,现在调试的情况如下:
1,先能对sja1000初始化,对sja1000的初始化的寄存器读写都可以实现,初始化完成后读取状态寄存器SR的值为0x0c,视为正确初始化。
2,发送数据,第一次发送数据过程SR寄存器的值都为0x0c,数据也能赋给发送寄存器,第一次数据发送完成,在对sja1000CMR发送数据发送命令后,SR.6=1,出现计数器满的错误,并导致中断寄存器IR值为0xe0,报警中断,并关闭总线。此时SR.3=0,上次数据仍在发送,未能进入下一次发送。
3,硬件82c250在发送出错之后也发热,发热较为严重,并烫手。CANH和CANL之间接120欧电阻。

个人见解:单片机能对sja1000进行读写操作,初始化模式MOD=0x08,并初始化返回的SR为0x0c,个人认为单片机与sja1000的链接是正确的,能够操作,说明sja1000不存在硬件问题。而82c250部分电路较为简单,测试保证电路没错,斜率电阻为47k,CANH和CANL均有30P接地小电容滤杂波,调试几天,查到网上一测试82c250的方法,得一下结果,给82c250接5v电,Vref对地为1.18V,CANH和CANL均为2V。
望高手给予解答,谢谢!!
简单来说,单片机可以对sja1000初始化,读取数据,当给CMR=0x01发送数据就会计数器满,中断寄存器为e0,总线因错误过多关闭

请问chinaku2005 sja1000自收发的时候需要接上82c250吗?我手上有5块82c250是在华强北买的 单独给5V电 Vref对地为1.18V,CANH和CANL均为2V 都伴有发热现象 另外在发送数据错误的时候SR读值为f4 can为单工 SR4和SR5不能同时为1的 电路我检查了多遍 应该没错 现在猜测为收发器问题 有人告诉我悬空sja的rx0和tx0时发送数据sr也会是乱码
展开
 我来答
巨季雅d0
2011-02-21 · TA获得超过1365个赞
知道小有建树答主
回答量:1101
采纳率:0%
帮助的人:635万
展开全部
我是业余搞CAN通信的,你说的这种情况我没有遇到过,不过给你一些建议

1、你用一个CAN块,设置为自收发模式,看看能否正常通信,如果还出现你的这种现象,这说明你的电路有问题或者软件某些参数没设置好。
2、我开始自己焊接了两块CAN,有一块自收发没问题,另一块不行,当时没有经验,也不知道怎么回事,后来才发现有一块SJA1000是坏的,所以,你也应给考虑是不是硬件芯片本身有问题,建议焊接三块测试一下。
3、书上或网上下载的一些程序电路,不一定可靠,有些人很坏的,故意把程序中关键的部分参数改动一下,建议你看芯片的说明书比较可靠。
4、你说的斜率电阻47k,30p电容120欧电阻根本不用要,斜率电阻那个管脚(8)直接接地即可。Vref直接接sja1000的RX1(20)就行了,CAN_H和CAN_L一般是2.5V(实测的)显性是3.5V隐性是1.5V
5、你说芯片发烫现象,我也遇到过,最近我做了五十几块电路板,焊接几块后,发现不工作,感觉82c250烫的厉害,我把82c250焊掉,换上我以前面包板调试的82c250,一切正常,这说明我买的82c250是有问题的。我在淘宝网上买的,人家承认有问题就退货了。

你说的 有些地方,比如你说可以初始化,并不见得,程序能走到那一步,但是可能会是错误的执行,并不一定执行正确。

结论:
1、如果确定硬件电路连接和软件程序没问题,一定要检查芯片,便宜的不一定好,
2、可以程序发过来,一起交流

OK
追问
CDR  = 0xc0;// CDR.3=1--时钟关闭, .7=0---basic CAN, .7=1---Peli CAN CBP=1没被激活 RX1电阻接地 clkout和rxinten没用 置0
BTR0 = 0x31;//Tscl=2/16M*(32+16+1)
BTR1 = 0x1c;//总线波特率设定 时钟数Tscl*(8+1) 采样点位置Tscl*(0+0+1)
IER = 0xfd;// .0=1--接收中断使能; .1=0--关闭发送中断使能
OCR = 0x1c;// 配置输出控制寄存器
CMR = 0x0c;//释放接收缓冲器 清溢出位
这是我初始化
追答
下面是我的初始化
//**********SJA1000初始化***********//
void Init_SJA1000(void)
{
uchar state;
uchar ACRR[4]={0XAA,0XFF,0X22,0X11};// 接收代码寄存器
uchar AMRR[4]={0xff,0xff,0xff,0xff};// 接收屏蔽寄存器
//uchar AMRR[4]={0x00,0x00,0xff,0xff};// 接收屏蔽寄存器

do// 使用do--while语句确保进入复位模式
{
MODR = 0x09; // 设置MOD.0=1--进入复位模式,以便设置相应的寄存器
state = MODR;
}
while( !(state & 0x01) );

// 对SJA1000部分寄存器进行初始化设置
CDR = 0x88; // CDR为时钟分频器,CDR.3=1--时钟关闭, CDR.7=0---basic CAN, CDR.7=1---Peli CAN
BTR0 = 0x04;//0x31; // 总线定时寄存器0 ;总线波特率设定
BTR1 = 0x1c;//0x1c; // 总线定时寄存器1 ;总线波特率设定
IER = 0x01; // IER.0=1--接收中断使能; IER.1=0--关闭发送中断使能
OCR = 0xaa; // 配置输出控制寄存器
CMR = 0x04; // 释放接收缓冲器

ACR0 = ACRR[0];// 初始化接收代码寄存器
ACR1 = ACRR[1];
ACR2 = ACRR[2];
ACR3 = ACRR[3];

AMR0 = AMRR[0];// 初始化接收屏蔽寄存器
AMR1 = AMRR[1];
AMR2 = AMRR[2];
AMR3 = AMRR[3];

do// 使用do--while语句确保退出复位模式
{
MODR = 0x08; //MOD.3=0--双滤波器模式
state = MODR;
}
while( state & 0x01 );
}//////////////////////////////////////

我的晶振严格按照参考书16M的
我建议你参考 说明书 好好看下,可以参考一下 周立功的资料。
自收发 要加上82C250否则 不能通过的(我测试过)
初始化选用固定模式即可,网上有的是,我那一段就是网络上改的

自收发有个地方要改动一下,好像 CMR = 0x0*,我忘记多几了,说明书上有的。

测试的时候,最好加上printf语句,以便串口能获取信息。

刚刚我测试了一下,我的CAN_H电压是2.4V,L是2.6V,电源电压是4.97V,属正常

我的Vref直接接sja1000的RX1(20),我不知道为什么这么接,人家都是这么做的。

芯片问题是最让人头疼的事

你可以把电路程序发过来,一起交流

OK
lo175987
2011-02-20
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
新华网洛杉矶5月19日专电(记者高原)美国科学家最新研究发现,健尔马足疗机价格 吸烟的人应该多吃哪些食物?,健尔马足疗机好用吗,男性酗酒会增加罹患胰腺癌风险。
这项研究是由分别来自美国得克萨斯大学西南医学中心和加利福尼亚大学旧金山分校的研究人员共同完成的,健尔马价格。研究成果19日刊登在《癌症成因和控制》杂志的网络版上。
研究人员对旧金山地区的532名胰腺癌患者和同等数量的健康人的生活习惯进行了比较研究。
在患者组,被调查对象在1995年至1999年期间被诊断患有胰腺癌,年龄在21岁至85岁之间,其中55%的人为男性,体重正常。研究人员将这些胰腺癌患者和另一组年龄、性别和居住地相同但没有患胰腺癌的研究对象进行了比较。
研究发现,酗酒的男性患胰腺癌的风险要比不饮酒的人高出1.5倍至6倍。饮酒量越大、饮酒频率越高,健尔马足疗机价格,男性患胰腺癌的风险越高。
胰腺癌是消化道常见的恶性肿瘤之一。由于胰腺位于腹膜后,因此胰腺癌不易在患病早期被发现。(完)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友89518be
2011-02-19 · TA获得超过209个赞
知道小有建树答主
回答量:623
采纳率:0%
帮助的人:391万
展开全部
你先查下datasheet看吧 soiseek有中文版的
英文原版:www.soiseek.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式