首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]MC33388的MSCAN消息发送不出去~~~

[求助]MC33388的MSCAN消息发送不出去~~~

片子是MC9S12DP256B,收发器是MC33388,现在就是想发送消息,然后在上位机接收。


16M晶振做时钟源,波特率是125K,下面是程序:


void CANInit(void) {


    CAN0CTL0 = 0x01;          /* 进入初始化模式


    while (!(CAN0CTL1&0x01)){}; /* 等待初始化模式确认


    CAN0CTL1 = 0x80;          /* 使能MSCAN模块


    CAN0BTR0 = 0xC7;         


    CAN0BTR1 = 0x3A;         


    CAN0IDAC = 0x10;  


    CAN0CTL0 = 0x00;        /* Exit Initialization Mode Request */


    while ((CAN0CTL1&0x01) != 0){}; /* Wait for Normal Mode */


}


void CAN_Transmit(void)


{
  
  CAN0TBSEL= 0x01;
        
  CAN0TXIDR0  = 0x00;   
  CAN0TXIDR1  = 0x08;  //扩展桢
  CAN0TXIDR2  = 0x00;
  CAN0TXIDR3  = 0x04;   //发送ID=2
 
  CAN0TXDSR0  = 200; 
  CAN0TXDSR1  = 212;
  CAN0TXDSR2  = 111;
  CAN0TXDSR3  = 23;
  CAN0TXDSR4  = 89;
  CAN0TXDSR5 = 155;
  CAN0TXDSR6  = 199;
  CAN0TXDSR7  = 0;
 
  CAN0TXDLR  = 0x08; 
       
  CAN0TXTBPR  = 0x00;
        
  CAN0TFLG = 0x01;        
}


#pragma CODE_SEG DEFAULT
void main () {   


    CANInit();               
 
    for (;;) {
        CAN_Transmit();
 
  }


}


运行后,测到的波形不正确。请各位指点指点

加油
这是我做的MC33388电路,是不是有什么不对的地方???
[upload=image/pjpeg]uploadImages/MC33388.jpg[/upload]
加油
自己顶一下,呵呵
加油
大家给点意见吧~~~我的电路是按照飞思卡尔MC33388文档中最简电路画的
加油
MC33388和82C250的作用是一样的吗?
飞思卡尔带我走进神奇的单片机世界
上位机是怎样监控的,总线电阻保证60欧姆,如果上位机接收选的波特率应和发出去的相同否则不会发送成功,也就看不到波形,你也可以监控一下发送状态位。
CANBUS 电液控制汽车电子,希望和大家交朋友! http://www.51mcu.cn
两个收发器必须都是低速CAN的收发器
波特率可以设低点试试,62.5K
回复yjbmtc :主要功能是的,不过MC33388主要是针对低速CAN总线

[此贴子已经被作者于2006-10-31 17:32:44编辑过]

加油
回复cxj16888:终端电阻120欧,波特率也设置相同了。关键在下位机板卡发不出来,示波器看不到正确的波形
加油
回复yunfeng:恩,下位机板卡是MC33388,低速的。用一个USB转CAN的模块与电脑相连,模块里用的什么收发器不太清楚。
那我把波特率设置的低些再试试吧
多谢
加油
没有调试,俺过了一个愉快的周末,呵呵

周一了,又要开始WORKING了~~~~

现在问题好象不是出在波特率的设置上,因为根本发不出来东西,CANH、CANL上都是高电平
加油
各位兄弟,救命啊~~~~~~~拜托
加油
检查Tx 有无信号
强调:
如果收发器和物理层硬件都没弄清楚的话,就不要做CAN!
低速CAN,高速CAN,不仅速率不同,而且硬件电路也不同!!!!!!
谢谢楼上的教诲。
但谁学东西都需要一个过程吧,尤其头一次用飞思卡尔的东西,难免有这样那样的问题。
CAN不是头一次做,去年用AVR和82C250做过,觉得基本通讯部分没什么难的。
这次卡住了,但我觉得很正常,调试嘛。
身边没有人能帮忙,只好到论坛求助。
加油
把120欧的电阻去掉。如果你上位机用的是高速CAN的话,那肯定通不了。因为MC33388是低速CAN收发器,TJA1050,1041, 82C250都是高速CAN收发器。
但是两个MC33388之间是可以通讯的
返回列表