This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335 CAN通信 TX引脚无信号

使用官方例程V133版本的ecan_a_to_b_xmit

无法实现can通信,发送一直卡在红色区域

for(i=0; i < TXCOUNT; i++)
   {
       ECanaShadow.CANTRS.all = 0;
       ECanaShadow.CANTRS.bit.TRS25 = 1;             // Set TRS for mailbox under test
       ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;

       do
     {
       ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
    
  } while(ECanaShadow.CANTA.bit.TA25 == 0 );   // Wait for TA25 bit to be set..


       ECanaShadow.CANTA.all = 0;
       ECanaShadow.CANTA.bit.TA25 = 1;               // Clear TA25
       ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;

       loopcount ++;
    }

针对这个问题已经做过以下的检测:

1、利用GPIO已验证CAN收发器能正常工作,另外一端连接的CAN测试仪也能正常工作

2、通过示波器发现CANTX引脚输出电平似乎没有变换过,因此怀疑是CANTX不能正常工作,导致CAN收发器不能给DSP发送成功的确认

3、检查过寄存器、GPIO(GPIO19,功能脚3)的设置应该没问题

采用的CCS5.2,仿真器XDS510PLUS,win10系统

搜索过这个问题,发现8年前就有人遇到过,但似乎不能解决我这个问题,希望遇到这个问题的前辈能给一些思路,谢谢

  • 请问您的硬件是怎么连接的呢?最好能够给出您的原理图。
    该例程通过CAN盒可以通过测试吗?
  • 您好,请问可以给一个联系方式吗,我图片发不上来。

  • 您点击右下角的 使用高级编辑器编辑文本后,进入下图界面,然后通过红线标注的窗口可以将图片传上来。

  • 还有一些说明:

    1、1Mbps时,通过示波器看到总线上有一段数据(没能抓拍下来),但是测试仪没有收到数据,之后总线上一直没信息CANTA一直没置位,

           500kbps及以下,就会出现图1那样的情况,我无法解释这个现象,我想问一下CANTA没有置位之前,CANTX会一直重新发送数据吗?

          还有CANTA在什么情况下会置位。

    2、这个发送器的运放可能有点差,不知道是不是这样影响到了CANRX的监听,从而使得CANTA无法置位。

  • 刚刚忘记说了一点,这次的测试稍微改了一下例程,就是TA不置位,我就不管他了,其他没变
    do
    {cnt++;
    ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
    } while(ECanaShadow.CANTA.bit.TA0 == 0 && cnt<100); // Wait for TA0 bit to be set..
  • 1.是的,需要接受到ACK信号后置位,一般 导致TA位不置位的原因是CANA与CANB在硬件上连接出现了问题。
    2.确保连接没问题的情况下下,波特率设置低点是否可以呢。
  • 另外这边有个基于F28335 ecan测试的总结文档,您也可以参考下:
    www.ti.com/.../spra876b.pdf
    若您还有问题可以继续讨论。
  • 谢谢您的回复,我还想再问一下:

    1、CANA与CANB不是独立的模块的吗?两者需要硬件连接?

    2、试过50kbps,也不行,不至于这么低吧?

    3、其他的我先看看您提供的文档

  • 有一些进展了:
    1、昨天图片里的tx发送的一个是CAN的错误帧
    2、我想知道在什么情况下28335会一直发送错误帧,这个过程我没找到详细的说明
    谢谢您
  • 问题最后解决了,这款开发板的CAN模块设计有问题,45 46 51三个电容导致了输出波形不是标准的方波所以总线一直发送错误帧。希望我这个问题能够为以后的人提供一些参考
  • 感谢分享,很高兴您能解决问题。