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.

[参考译文] TMS320F28388D:TMS320F28388D:运行时动态 CAN 波特率切换 (250kbps 至 500kbps) 的过程

Guru**** 2862700 points

Other Parts Discussed in Thread: TMS320F28388D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1639289/tms320f28388d-tms320f28388d-procedure-for-dynamic-can-baud-rate-switching-250kbps-to-500kbps-during-runtime

器件型号: TMS320F28388D
主题: C2000WARE 中讨论的其他器件

我目前正在使用  TMS320F28388D 并已成功实现了一项功能 CAN A 频率范围 250kbps

我希望实现一项允许系统将波特率切换至的特性 500kbps 处于运行时(动态)、而无需完全系统复位。

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

    您好、Tushar、

    遗憾的是、我们没有 CAN 自动缓冲器示例、但有一个测试功能可将 CAN 置于静音模式。  在该模式下、CAN 将能够接收帧、但不会发送 ACK 或错误帧、本质上仅使节点处于侦听模式。

    您可以按照以下伪代码实施例程:

    a.系统初始化(类似于设置器件时钟的 C2000Ware 示例中的 Device_Init ())

    b.为 CAN TX/RX 配置 GPIO 引脚(请参阅 CAN 示例,了解如何实现此操作)

    c.使用 API can_initModule() 初始化 CAN

    d.使用 API CAN_enableTestMode 设置静音模式 (CANbase、can_test_silent)

    d.使用 API can_setBitRate () 设置 CAN 位时序 — 为不同的比特率(如 250kbps、500kbps、1Mbps 等)设置标志/选项、因为这将在一个循环中调用

    e.设置 CAN 中断路由(如果您决定使用 ISR)-请为此遵循 CAN 示例

    f.使用 API can_setupMessageObject() 设置 MessageObject — 请参见不同的 CAN 示例作为参考。  您可以设置消息过滤、ID 以及 ISR 是否已激活

    g.使用不同的波特率设置在每个循环中循环遍历步骤 c 到 f、并通过 ISR 或循环检查是否接收到与 can_setupMessageObject () 中设置的内容相匹配的有效消息。  消息对象应与发送到 CAN 总线的 CAN 帧的属性(控制,ID、DLC)相匹配。

    在接收到有效帧时、使用 API can_disableTestMode (CANbase) 关闭静音模式

    希望这将帮助您开始设计。

    此致、

    Joseph