本帖最后由 warden 于 2011-4-29 09:58 编辑
在大众车上找到低速容错CAN,BAUD为100K,用分析仪取数据时,可以收到很多组ID的数据;
我的板子只要求接收,收发器用的是:TJA1054,设计的时候把MCU的TXD断开了,中途也采过几次数据,一直都没有发现这个问题(采数据时挂了CAN分析仪);
现在东西做得差不多了,模具也开了,突然发现把板子接上去时没有接TXD收不到数据了,现象如下:
1。总线上挂接CAN分析仪时,我的板子把TXD断开时可以正常接收数据;
2。把分析仪拿掉,我的板子的TXD断开时却收不到任何数据,TJA1054的TXD接了10K上拉;把MCU的TXD与TJA1054的TXD接上后可以正常接收数据;
这种现象感觉像是没有形成正常网络一样,但总路线上确实有好多组ID的数据呀,怎么可能没有形成网络呢?
3。在办公室时模拟时,先用两组节点组成一个正常网络,然后把第三个节点接上去(TXD断开),第三个节点是可以收到数据的;
4。还有一种很奇怪的现象:把TXD接上后,CANH CANL不论正接还是反接都可以收到数据,
刚刚把1054换成1055试了一下,还是一个样
5。在办公室模拟一个正常的网络,然后把我的节点再加进去,发现只能用CAN_Mode_Normal才能正常接收,而用CAN_Mode_Silent模式却收不到数据
下面是1054收发器的电路图:
请各位帮忙分析一下可能问题在哪?
1》电路有问题吗?我的分析上的收发器也用的是这个电路
2》软件CAN配置有问题吗,用的STM32,CAN配置如下:
CAN_InitStructure.CAN_TTCM=DISABLE;
CAN_InitStructure.CAN_ABOM=DISABLE;
CAN_InitStructure.CAN_AWUM=DISABLE;
CAN_InitStructure.CAN_NART=DISABLE;
CAN_InitStructure.CAN_RFLM=DISABLE;
CAN_InitStructure.CAN_TXFP=DISABLE;
CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
//时钟:9M BAUD:100K
CAN_InitStructure.CAN_Prescaler=5;
CAN_InitStructure.CAN_BS1=CAN_BS1_15tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_2tq;
搞了很久没搞定,心急如焚,大伙帮我看看吧,半年多来天天加班到十一二点,通宵也是经常的事,只差最好一步了; |