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.

[参考译文] TMS320F280049:CANB 仅在测试模式下正常工作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1367336/tms320f280049-canb-works-properly-only-in-test-mode

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

工具与软件:

我使用 syscfg 生成驱动程序代码、我在例程中参考了 Ex1、Ex2和 Ex5、预期的效果是当我从外部 CAN 分析仪发送数据时、CANB 收到中断并回复消息。 但实际效果是使用逻辑分析仪直接观察 CANB 收发器引脚(引脚12和引脚13)、只有处于外部环回模式的发送引脚可以观察传出数据、只有在静音模式下接收引脚上的数据才会导致接收中断。

在这里、我插入 syscfg 和我的一些代码:

/**
 * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
 * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
 * @cliArgs --board "/boards/LAUNCHXL_F280049C" --context "system" --product "C2000WARE@4.03.00.00"
 * @versions {"tool":"1.20.0+3587"}
 */

/**
 * Import the modules used in this configuration.
 */
const can  = scripting.addModule("/driverlib/can.js", {}, false);
const can1 = can.addInstance();

/**
 * Write custom configuration values to the imported modules.
 */
can1.$name                   = "myCAN0";
can1.enableInterrupt         = true;
can1.registerInterrupts      = true;
can1.interruptFlags          = ["CAN_INT_IE0"];
can1.interruptLine           = ["CAN_GLOBAL_INT_CANINT0"];
can1.msgObjsUsed             = [1,2];
can1.can.can_rxPin.$assign   = "boosterpack1.3";
can1.can.can_txPin.$assign   = "boosterpack2.51";
can1.can0Int.enableInterrupt = true;
can1.msgObj1.$name           = "msgObj0";
can1.msgObj1.msgType         = "CAN_MSG_OBJ_TYPE_TX";
can1.msgObj1.flags           = ["CAN_MSG_OBJ_TX_INT_ENABLE"];
can1.msgObj1.msgLen          = 4;
can1.msgObj2.$name           = "msgObj1";
can1.msgObj2.flags           = ["CAN_MSG_OBJ_RX_INT_ENABLE"];

/**
 * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
 * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
 * re-solve from scratch.
 */
can1.can.$suggestSolution = "CANB";

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

    遗憾的是、您对这个问题的描述不清楚。 请下载最新版本的 https://www.ti.com/tool/C2000WARE?keyMatch=c2000ware 、并在不进行任何修改的情况下"按原样"尝试示例。 这将验证您的硬件。 如果该步骤不成功、请下载我的应用报告 http://www.ti.com/lit/SPRACE5 并仔细阅读调试提示。 通过查看此检查清单、可以解决大多数 CAN 问题。

    我已经创建了一个视频来帮助使用 DCAN 的第一个通信项目: https://training.ti.com/getting-started-dcan-module。 请看一下。

    综合资源列表: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1033069/faq-what-kind-of-resources-does-ti-provide-to-help-with-can-and-canfd

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

    您好!

    我使用逻辑分析仪直接观察 CANB 收发器引脚(引脚12和引脚13)

    您正在使用哪些币种进行测试? F280049 Launchpad 上的 CAN 收发器为 SN65HVD23 4DR、仅具有8个引脚。 您是否探测 CANH 和 CANL、或者 CANTX 和 CANRX?

    在静音测试模式下、CAN_TX 始终为高电平、但它可以检测到接收到的消息。  

    在环回测试模式下、TXed 消息可由 CAN 分析仪监控。  

    您是否运行了5号示例? 它应该适用于 F280049 LP 上的发送和接收。

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

    您好!

    我没有使用 Launchpad、我正在使用自己的板、它可能是一种类似280049-adum1281-TJA1044的模式、我使用逻辑分析仪来检测连接 ADum1281中间的线路280049、我可以尝试 Ex5、无需修改或根据您的建议很少修改

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

    谢谢!我会尝试您提供的信息、我想知道如何更清楚地描述问题?

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

    您好!

    1.您的电路板是否具有用于 CANA 和 CANB 的 CAN 收发器?

    2.您的 CAN 网络是否包含端接电阻器(120欧姆)?

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

    每个 CAN 控制器(CAN-A 和 CAN-B)都需要收发器

    CAN 控制器具有用于 TX 和 RX 的 TXD 和 RXD 引脚。 这些引脚与 CAN 收发器相连、用于将数字信号转换为差分信号、以便在总线上传输消息、反之亦然以实现接收。  

    2.两端都需要一个120 Ω 端接电阻,防止信号反射到总线上。  

    3.如果 CAN 节点位于具有不同电源和接地电位的不同 PCB 板上,则 应使用地线为总线上的节点设置公共地。

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

    您能否在此公布您的 CAN 电路原理图? 即 CAN 引脚与收发器的连接等。  

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

    是的、我的电路板上有一个 CAN 收发器和端接电阻器、由于涉及的商业秘密、我只能截取 CAN 器件的原理图、如下所示:

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

    好了、这是 CAN 部分的示意图:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    我使用逻辑分析仪直接观察 CANB 收发器引脚(引脚12和引脚13)、

    我在您的原理图中没有看到引脚12和引脚13,

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

    您的原理图显示 U12 (STB)的引脚8未连接(悬空)。 为了实现正常运行、这个引脚需要被连接至 GND。

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

    请更正 Hareesh 消息中所述的示意图。

    TJA1044收发器支持两种工作模式:正常和待机。 当 STB 被拉至低电平时、它在正常模式下运行。 由于它有一个内部上拉电阻器、因此 STB 在未连接且收发器处于待机模式时会被拉高。

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

    我们不能在 e2e 上支持对代码进行调试。

    我们已经为您提供了足够的指导来解决该问题(尤其是收发器上的 STB 连接)。

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

    好的、谢谢! 我将考虑 STB 的连接、并尝试在 TINA-TI 中