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.

[参考译文] TCAN4550:申请 TCAN4550

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1400916/tcan4550-inquiry-for-tcan4550

器件型号:TCAN4550

工具与软件:

嗨、团队:

客户正在将 TCAN4550 EVM 连接到其系统中、他们正在进行调试。 获得的以下问题  

1.发送:根据联机演示、调用 TCAN4x5x_MCAN_WriteTXBuffer 和 TCAN4x5x_MCAN_TransmitBufferContents 发送数据时、发现该函数只调用一次、但 tcan4550不断发送。 此时、再次调用上述函数以修改发送内容、但发现其不起作用、并且仍然发送第一次调用的消息。
2.接收:使用独木舟向 TCAN 发送 CAN 消息,没有 ACK 响应。 tcan4550配置是否错误?

您能帮助分享对上述两个问题的评论吗?

抄送列表中的客户。

谢谢、此致、

会的

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

    您好、

    TCAN4550将尝试持续发送一条消息、直到 CAN 总线上的另一个节点成功确认该消息。  无论 CAN 总线上连接到 TCAN4550的任何器件都需要确认该消息、或者该缓冲区中的消息将保持在"Pending Status"中。  您可以通过将 Control 寄存器中的 DAR 位设置为1 (0x1018[6]= 1)来禁用自动重新传输功能、这将导致器件每次都仅发送一次消息、无论是否收到 ACK。

    如果发送到 TCAN4550的消息没有从 TCAN4550生成 ACK、则 TCAN4550和 CAN 总线上的其他器件的配置设置可能存在问题。  CAN 总线上的所有器件应具有相同的配置设置。

    在以下用户指南中可以找到有关如何配置位时序和消息的更多信息。

    TCAN45xx 软件用户指南 (链接)

    M_CAN 用户手册 (链接)

    请检查器件设置、并确保它们与 CAN 总线上的所有节点匹配。  如果存在不兼容的位时序参数、则 TX 和 RX 错误计数器可能会增加、并且监控错误计数器寄存器(0x1040)和协议状态寄存器(0x1044)可能有助于提供额外信息。

    此致、

    Jonathan

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

    Jonathan、您好:

    让我们更新这种情况下的一些新问题;

    最近,我们验证了我们的产品 PCB 板,其中包括 TCAN4550, 发现板上电后,我们可以从0x0820寄存器读取0x4a0值。 您能帮助介绍有关此错误指示的可能原因吗? 有什么方法可以解决此问题?

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

      TCAN4550‘s TX 消息无法接收 ACK、请继续发送

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

    尊敬的 Jeff:

    在 TSILENCE 计时器到期(0.6至1.2s)之前、器件未检测到 CAN 总线活动。  这将设置 CANSLNT (位10)、这也是该器件设置 CANERR (位5)和 GLOBALERR (位7)的原因。

    每次总线上看到显性到隐性或隐性到显性转换时、tSILENCE 计时器都会复位。  如果总线上没有足够的活动消息来确保至少每0.6s 传输一次 CAN 消息、那么这些位可能会被置位。  这在早期开发阶段很常见。  可以屏蔽或禁用中断启用寄存器0x0830中的 CANSLNT 位。

    如果存在 CAN 总线活动、但 CANSLNT 位仍在设置中、则器件与 CAN 总线的连接可能存在物理问题或一些其他与硬件/元件相关的问题、我建议尝试使用示波器探测 CANH 和 CANL 引脚、以确保信号到达器件、 或者使用器件的测试模式之一(如收发器测试模式)将 TXD_INT 和 RXD_INT 信号从收发器路由出去、以验证收发器是否反映了 CAN 总线数据。

    此致、

    Jonathan

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

    您好、 Jonathan:á lez

    感谢您的 建议;请帮助您进一步检查以下问题:

    1. 我们试图通过控制寄存器0x0830来禁用 CANSLNT 位、但即使寄存器0x0830的值变成了 0x80962cff、 CANSLNT 仍然存在。

    2.我们发现一个奇怪的问题是,如果我们将 DAR 位设为1 (禁用自动重新传导),我们的 tCAN TX 消息可以接收 ACK 信号,但当我们 将 DAR 位设为0时,TCAN TX 消息无法接收 ACK。

    3.如 下面的屏幕截图所示,我们发现 tcan 的 CAN H 信号值保持相同的水平。

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

    尊敬的 Jeff:

    1.  我们尝试通过控制寄存器0x0830来禁用 CANSLNT 位、但即使寄存器0x0830的值已更改为 0x80962cff、 CANSLNT 仍然出现;[/QUOT]

    CANSLNT 是位10、仍使用寄存器值0x80962cff 设置为1。  另外、很抱歉、我在上一次关于该主题的回答中没有完成。  禁用寄存器0x0830中的 CANSLNT 位将阻止 nINT 引脚响应该中断位。  但它不会改变已检测到 CAN 总线静默的事实。

    2. 我们发现一个奇怪的问题是、如果我们将 DAR 位设置为1 (禁用自动重传)、我们的 tCAN TX 消息可以接收 ACK 信号、但当我们 将 DAR 位设置为0时、TCAN TX 消息无法接收 ACK;

    我不确定我是否正确理解您。  您是否说当 DAR = 1时、您传输的消息从总线上的另一个 CAN 设备接收到 ACK 信号、但当 DAR = 0时、您传输的消息未从总线上的另一个 CAN 设备接收到 ACK?  CAN 消息 ID 或数据字段是否有任何差异?

    MCAN 将至少发送一次消息。  如果消息未接收到 ACK 且 DAR = 0、则 MCAN 将再次尝试传输消息、直到其接收到 ACK。  但是、如果 DAR = 1、则不会再次尝试传输消息。

    因此、DAR 位设置不应决定 CAN 消息的第一次传输是否接收到 ACK。  

    在我的第一个响应中、我建议监视错误计数器寄存器0x1040)和协议状态寄存器(0x1044)以获得与 CAN 消息状态相关的额外信息。

    3.如 以下屏幕截图所示、我们发现我们的 CAN H 的信号值保持相同的水平。

    这一切可能与硬件问题或电路板上的器件或元件损坏有关。  您是在监视 TCAN4550的 CANH 引脚本身、还是在信号路径中是否存在任何其他可能损坏并阻止信号的元件。  我会检查信号路径上的焊接连接是否不良以及元件是否损坏。  如果没有信号从 TCAN4550 CANH 引脚发出、则该器件可能已损坏、需要更换。

    此致、

    Jonathan

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

    您好、Jonathan:á lez

    谢谢、从不同的角度进行检查后、 我们发现上述问题的根本原因是我们的产品 PCB 的 A 电阻器引起的。 我们的 EE 工程师更换了 PCB 的电阻器、可以开始正常工作。

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

    尊敬的 Jeff:

    感谢您让我知道、我很高兴它现在可以正常工作。

    此致、

    Jonathan