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.

[参考译文] TMDSCNCD280039C:CAN 初始化问题

Guru**** 2845830 points

Other Parts Discussed in Thread: SN65HVD230, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1633967/tmdscncd280039c-can-initialization-issue

零件号: TMDSCNCD280039C
主题中讨论的其他器件: SN65HVD230C2000WARE

 

您好、

我正在尝试在 CAN 模块 (CANA) 上建立通信、但在初始化过程中遇到问题。

CAN_CTL.Init = 1 位保持连续设置。 我使用外部 CAN 收发器 (SN65HVD230)。 我的目的是将 CAN 消息从电路板传输到独木舟、但由于初始化问题、我无法这样做。

您能否指导我执行初始化 CAN 模块所需的必要步骤?

image.png

另外、请确认以下硬件连接是否正确:

  • CAN DB 连接器 CANH 和 CANL 通过 120 Ω 寄存器进行连接
  • CAN 收发器的 CANH 和 CANL 通过 120 Ω 寄存器连接、收发器的 CAN TX 和 RX 引脚与扩展坞的引脚 80 和 82 连接、CAN 收发器的 CANH 和 CANL 通过 CAN db 连接器 CANH 和 CANL 和连接
  •  电路板的 GND、试验电路板和 Can db 连接器的 GND 是公共连接的

image.pngimage.pngimage.pngimage.png

image.png

我期待您的答复。

 

 

谢谢你

PD。

 

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

    尊敬的 PD:

    因此、我可以获取更多信息、您是运行自定义代码还是从 C2000Ware 运行任何示例?  此外、您是否可以访问任何具有 CAN 功能的 CAN 分析仪 (PeakCAN) 或示波器?  这些工具将使调试变得更简单。

    此致、

    Joseph

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

    您好、Joseph:

    我使用的是自定义代码、而不是内部编译示例。

    否、使用独木舟进行测试。

    此致、

    PD

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

    尊敬的 PD:

    那么、您能否在 C2000Ware 中运行示例 (can_ex5_transmit_receive)?  这是一项基本测试、可检查器件和 CAN 模块是否配置正确、并让我们了解设置中可能发生的情况。  解决设置问题后、您可以恢复为自定义代码。  如果可以运行该示例并检查 CAN_initModule 函数是否正常运行、  现在不要担心 CAN 通道分配、只想看看初始化是否正常运行。

    此致、

    Joseph

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

    您好、Joseph:

    根据您的建议、我测试了 CAN_EX5_TRANSMIT_RECEIVE 工程。

    我将分享下面的寄存器详细信息以供您参考。 请查看并指导我执行后续步骤或进行任何必要的更改。

    期待您的指导。

    谢谢你

    PD。

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

    尊敬的 PD:

    好的、感谢您查看。  我可以看出 CAN 模块已正确初始化。  它尝试传输帧、但由于 CAN 通道未根据您的硬件设计正确设置、因此发生了传输错误并累积到触发总线关闭的程度。  这是预期结果。  现在、您有两个选项:

       1.) 通过以下方式使 can_ex5 示例在您的设置中正常工作:

              -通过将 DEVICE_GPIO_CFG_CANRXA 和 DEVICE_GPIO_CANTXA 的定义分别更改为 GPIO33 和 GPIO32、更改通道以匹配您的硬件。

              -更改独木舟以匹配当前设置为 500kbps 的 5 波特率示例

              -运行示例 5 和 CANoe 应该能够接收从 f28003x 和收发器以 500kbps 的速率发送的帧

       2.) 加载原始代码并逐步执行、以查看可能错过了哪些会阻止正确初始化的设置。  您可以使用示例 5 作为基础。

    我建议采用#1、因为它将证明您的硬件设置是否正常工作、然后我们可以返回您的原始代码并继续调试。

    此致、

    Joseph

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

    您好、Joseph:

    我根据测试了设置 选项 1 、如建议。 但是、我仍然无法接收 CAN 帧。

    您还可以确认我的 与 CAN 收发器的硬件连接正确

    谢谢、

    PD

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

    尊敬的 PD:

    硬件配置似乎正确。  您能否在运行示例后在 f28003x 端转储 CAN 寄存器内容?  如果您获得与之前共享的寄存器内容相同(显示相同的 BUSOFF 错误)、则可能意味着 CANoe 尚未收到任何帧、也没有发出确认、从而导致传输错误并最终关闭总线。

    此致、

    Joseph