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.

[参考译文] TMS320F280039C:通过 Simulink 进行 LaunchPad MCAN 速度和设置

Guru**** 670150 points
Other Parts Discussed in Thread: TCAN332, TCAN332G, TMS320F280039C, TMS320F280037C
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1257683/tms320f280039c-launchpad-mcan-speed-and-setup-via-simulink

器件型号:TMS320F280039C
主题中讨论的其他器件: TMS320F280037C、TCAN332、TCAN332G

我们有一些 TMS320F280039C Launchpad、我想知道如何通过 Simulink 使用 MCAN 模块。 在 C2000电机控制 Blockset 中、我只能查看 CAN FD PACK 和解包块。 之前、我使用了具有 eCAN 接收和 eCAN 传输块的经典 CAN、但我看不到更改这些块的选项。 当我尝试运行代码时、我收到一个错误、因为预期的输入数据类型不是 CAN FD (它被设置为 CAN 消息)。 是否有办法通过 Simulink 利用 CAN FD?  

我的第二个问题是 TMS320F280037C MCU CAN FD 的速度有多快。 我们得到了  TMS320F280039C Launchpad、因为它是离我们计划使用的 MCU 最近的 MCU、但其板载 CAN 收发器为1Mbps (与传统 CAN 相同)。 如果具有更快的收发器、这些 MCU 中的任何一个能否以更快的速度运行 MCAN?

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

    你好、Joshua、

    关于您的 Simulink 问题、请查看以下链接中的 MathWorks 常见问题解答:

    如果您还有其他问题、获取有关 MathWorks 产品支持的最佳方式是 联系  MathWorks 现场技术支持。

    您还可以在  MATLAB Answers C2000论坛上搜索答案或发布问题。 此外、还在 "文档 和 示例"中提供了有关 MathWorks 支持 C2000的信息

    此致、

    阿米尔·奥马尔

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

    你好、Joshua、

    对于第二个问题、当前 Launchpad 不使用修订版 G TCAN。  它使用1Mbps 版本。  如果您能够将 Launchpad 上的收发器替换为与 TCAN332封装兼容的 TCAN332G、您应该能够在 MCAN 上实现5Mbps 的速率。  使用下面的位时序设置来达到5Mbps:

         //
        // Configure the divisor for the MCAN bit-clock
        //
        SysCtl_setMCANClk(SYSCTL_MCANCLK_DIV_2); // This should give you 60 MHz input to the MCAN module
    
    
        //
        // Initialize bit timings.
        //
        bitTimes.nomRatePrescalar   = 0x2U; // Nominal Baud Rate Pre-scaler.
        bitTimes.nomTimeSeg1        = 0x9U; // Nominal Time segment before SP
        bitTimes.nomTimeSeg2        = 0x8U; // Nominal Time segment after SP
        bitTimes.nomSynchJumpWidth  = 0x4U; // Nominal SJW
        bitTimes.dataRatePrescalar  = 0x0U; // Data Baud Rate Pre-scaler.
        bitTimes.dataTimeSeg1       = 0x7U; // Data Time segment before SP
        bitTimes.dataTimeSeg2       = 0x2U; // Data Time segment after SP
        bitTimes.dataSynchJumpWidth = 0x4U; // Data SJW

    此致、

    约瑟夫

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

    我要说明的主要问题是该库没有用于 CAN FD 的 eCAN 接收的块、或者至少我在 C2000电机控制 Blockset 中看不到它。 但是、我确实看到了用于解包和打包的 CAN FD。  

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

    谢谢你,约瑟夫! 我们正在计划在设计中使用其他收发器、但只是想确保我了解 MCU 的功能。 再次感谢您

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

    你好、Joshua、

    有关 Simulink 主题、请参阅 Omer 的帖子。

    此致、

    约瑟夫

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

    我看过了 Omer 的博文、但没有看到有关如何在 TMS320f280039C Launchpad 上为 Simulink 设置 MCAN 消息的信息。 我在 C2000电机控制 Blockset (针对28003x 部分)中没有看到任何 MCAN 接收块。 如果我使用 CAN FD 解包来自28003x Blockset 的 eCAN 接收器、则会出现错误、因为消息为"CAN NOT CANFD"。 我看到2838x 部分的 MCAN 接收块。 我已经下载 Simulink 编码器、嵌入式编码器、C2000附加以及其他第三方软件以生成代码。 我可以正常使用 CAN 消息、但现在我们需要 CANFD。 如果有其他专门用于 CANFD 的软件、请告诉我

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

    你好、Joshua、

    您是否因此问题尝试联系 Matlab 支持?

    此致、

    约瑟夫

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

    我刚刚和他们一起开了一张票。 感谢您的支持。

    TMS320F28003x 的 C2000 MCAN 代码- MATLAB 答案- MATLAB 中心(mathworks.com)

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

    你好、Joshua、

    不用担心。  希望 MATLAB 支持团队帮您解决这个问题、

    此致、

    约瑟夫