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通信1Mbps波特率遇到的问题



我用28335做CAN通信,作为通信的主站,波特率设置为500kbps时没有问题,设置为1Mbps时观察总线没有数据,

500Kbps设置寄存器为:

ECanaShadow.CANBTC.bit.BRPREG = 9;
ECanaShadow.CANBTC.bit.TSEG2REG = 2;
 ECanaShadow.CANBTC.bit.TSEG1REG = 10; 

1Mbps设置寄存器为:

ECanaShadow.CANBTC.bit.BRPREG = 4;
   ECanaShadow.CANBTC.bit.TSEG2REG = 2;
   ECanaShadow.CANBTC.bit.TSEG1REG = 10;

为什么在Ti提供的例程中注释第一种方式的波特率为1Mbps?

按照Datasheet介绍CAN时钟不是应该为75MHz吗?

请大家指点,谢谢

  • 请问tingting,你的芯片晶振多少M,系统时钟SYSCLKOUT多少M,28335的确可以跑到1M,你可以把eCAN的初始化代码copy上来,以及初始化完成后使用eCAN发送数的代码也copy上来。

  • 您好  我的系统时钟是150M  

    ECanaShadow.CANBTC.bit.BRPREG = 9;
    ECanaShadow.CANBTC.bit.TSEG2REG = 2;
    ECanaShadow.CANBTC.bit.TSEG1REG = 10;

    此时CAN波特率是500M  收发正常 

    ECanaShadow.CANBTC.bit.BRPREG = 4;
    ECanaShadow.CANBTC.bit.TSEG2REG = 2;
    ECanaShadow.CANBTC.bit.TSEG1REG = 10;

    波特率改成1M   上位机就不能向下发数  上位机能收到下位机给的数  但CAN收发器指示灯是红的 而且上位机一直收数都不停   会是什么问题  谢谢