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.

[参考译文] TCAN4551-Q1:数据传输错误

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/991060/tcan4551-q1-error-in-data-transmission

器件型号:TCAN4551-Q1

大家好、

我的客户正在测试 CANBUS 传输功能、并发现以下问题。

每 20ms 发送一系列连续 CAN ID、有时其中一个 CAN ID 出错、此 CAN ID 数据与上一个相同。  

例如:客户通过 SPI 发送0x02160801,0x02160802,0x021608003,0x02160804,0x02160805,但捕获 CANBUS 数据,则日期变为 0x02160801,0x02160802,0x021608003,0x02160803,0x02160805。

客户使用 SPI"TCAN4x5x_MCAN_WriteTXBuffer()"发送正确的 CAN ID、但 CANBUS 中的数据错误、如下所示。

(左侧是对数数据、右侧是在 CANBUS 差分线路上捕获的 CANBUS 数据)

国家团队提供命令和我们可以尝试的任何实验?

非常感谢。

Vincent Chent

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

    文森特

    CAN 总线波形正确还是不正确时、是否可以捕获它们? 中断寄存器(0x0820)是否可以在传输前和传输后读取?

    此致、

    Eric Hackett  

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

    尊敬的 Eric:

    由于它是一个数据传输序列、客户很难捕获错误的波形之一。 我们将继续尝试。

    还有两个问题。

    1. 在 tcan4551接收数据时,是否会更改引脚电平以通知 MCU?

    我们目前正在关注 TI 的演示,使用轮询寄存器来检查新数据,但这会占用太多的 CPU 时间。

    2. tcan4551是否具有关闭自动恢复功能的硬件总线? 如何启用它?

    非常感谢。

    陈文森

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

    文森特

    明白了、让我知道客户是否也可以读取中断寄存器。

    1.是的、用户可以将 GPO1或 GPO2指定为 MCAN 中断、以便在收到消息时切换。 对此有几个步骤、让我们以使用 GPO1的示例为例。 在寄存器0x0800中、可以写入位11:10以配置 GPO1的工作方式。 向这些位写入01会将 GPO1引脚配置为 MCAN_INT 1输出。 配置后、用户需要分配哪个中断将是 MCAN_INT1。 这是通过写入寄存器0x1058来完成的。 通过向该寄存器中的任何位写入1、用户将分配哪个中断将作为 MCAN_INT1输出。 FIFO 中新消息的中断、FIFO 满、水印已到达等都在该寄存器中、因此对于这种特殊情况、用户可能希望将新消息中断分配给 MCAN_INT1。 完成此操作后、用户将需要通过向寄存器0x105C 中的位1写入1来启用 MCAN_INT1。

    2.作为 Bosch MCAN 定义的一部分,此功能始终处于打开状态,并且始终处于启用状态。 可以使用协议状态寄存器0x1044并查看 LEC 位来检查其状态。 Bit0ERROR 指示在总线关闭自动恢复功能期间发送11个隐性位。

    此致、

    Eric Hackett  

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

    尊敬的 Eric:

    客户在使用此器件方面取得了一些进展、并且以下问题很少、您能否帮助评论此器件?

    我的器件现在处于脱离总线状态、我们想询问以下问题:

    1. TCAN4551的脱离总线自动恢复功能在进入脱离总线后自动恢复、还是需要用户的 MCU 清除 cccr.init 以触发自动恢复功能?
    2. 对于 tcan4551、从脱离总线状态恢复的完整步骤是什么? 是否有任何示例代码可供参考?
    3. 我已将新的消息中断 Rx FIFO 0分配给 INT1行、如果我也为其分配了总线关闭中断、我如何知道接收到中断时是哪个中断? 正在查询寄存器1050?
    4. 寄存器1050中的25位(脱离总线状态改变/不变)是什么意思? BUSOFF ->正常和正常-> BUSOFF 都意味着变化?

    非常感谢。

    陈文森