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.

[参考译文] CCS/TMS320F280049:无法在高波特率下工作

Guru**** 2540720 points
Other Parts Discussed in Thread: ISO1050

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/696523/ccs-tms320f280049-can-not-working-at-high-baud-rate

器件型号:TMS320F280049
主题中讨论的其他器件:ISO1050

工具/软件:Code Composer Studio

我们的时钟设置与 MCU009A (001)_Sch. 我们的外部振荡器不完全相同、但具有10ppm 的相同频率稳定性。 我们使用的是 ISO1050 CAN 收发器。 我们正在使用两种不同的软件、总线主控和 PCAN-View 通过与计算机的峰值 USB 连接来读取 CAN 消息。 我们正在运行 TI 的示例代码 CAN_ex3_external_transmit。 总线主控显示错误、 PCAN-View 不显示任何消息。 如果我们将波特率从500k 降低到250k 或50k、一切都很好。 我们在 CANH 和 CANL 之间有一个120欧姆的端接电阻器。 这是我们在下面的原理图中的 R11、尽管它标记为"请勿组装"。 此外、用于内部时钟源的 R51也已被删除。  

提前感谢您的帮助。

Ian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ian、

               似乎存在终止问题。 请提供以下内容:

     

    CAN 总线的草图、清楚地显示节点数和端接电阻器的位置。 (手绘正常)

     

    F280049的 CANRX 引脚上的波形示波器捕获。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的位定时参数可能不正确。 请下载 SPRAC35并为您的网络找出正确的参数。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ian、

      感谢您关闭该帖子。 您是否会为他人的利益考虑分享错误?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我必须对 TI 的示例代码 CAN_ex3_external_transmit 进行一次更改。 使用 TI 提供的 CAN 位时序计算器、我们在下面的屏幕截图底部看到位时间为20。

    所以我们改变了  

    CAN_setBitRate (CANA_base、DEVICE_SYSCLK_FREQ、50000、16);

    更改为

    CAN_setBitRate (CANA_base、DEVICE_OSCSRC_FREQ、50000、20);

    您还可以看到、我们通过 PLL 更改了所选时钟、使其不再变得更松散。

    这就是我们必须执行的操作、才能使代码以500kBaud 的速率工作。  我可以看到代码是如何为 TI 工作的、因为 CANA 和 CANB 的设置方式是相同的。  
    CAN_setBitRate (CANA_base、DEVICE_SYSCLK_FREQ、50000、16);和  
    CAN_setBitRate (CANB_BASE、DEVICE_SYSCLK_FREQ、50000、16);  

    因为它们被设置为相同、所以它们可以相互读取消息。 但是、如果您使用软件来读取诸如 busmaster、MATLAB 或 PCAN-View 之类的消息、它将不起作用。 我们正在使用这些不同的程序截取消息。  


    谢谢

    Ian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否提供 X1和 SYSCLK 的值以及您解决问题之前/之后 CAN_BTR 的值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    100MHz SYSCLK  CAN_setBitRate (CANA_base、DEVICE_SYSCLK_FREQ、50000、16);100

    BRP=11 ;

    BRPE = 0;

    SJW = 3;

    TSEG1=8;

    TSEG2 = 5;

    20MHz X1 CAN_setBitRate (CANA_base、DEVICE_OSCSRC_FREQ、50000、20);  

    BRP=1 ;

    BRPE = 0;

    SJW = 3;

    TSEG1=10;

    TSEG2 = 7;