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:SPI 通信问题(SPIERR)

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1112919/tcan4551-q1-spi-communication-problem-spierr

器件型号:TCAN4551-Q1

您好!

我尝试通过 SPI 将 TCAN4551用作 CAN 控制器。

SPI 通信已设置、时序看起来正确。 尽管如此、TCAN 始终以0x88作为响应、根据数据表、这是一个 SPIERR。

所附的图像显示了 SPI 通信、我在其中未发现问题。

那么、为什么 TCAN 始终以0x88进行响应?

提前感谢。

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

    尊敬的 Marco:

    这是一个有趣的案例。 此处的波形显示 TCAN4551报告中断寄存器的0x88状态、但它不会对 SPI 消息的其余部分使用任何数据进行响应。 我希望通过 SPI 命令器的此波形、器件将使用其 ID 进行响应。 除了中断状态的第一个字节之外、有没有其他测试使 TCAN4551返回任何数据? 如果是、请尝试读取错误状态寄存器(h000C)。 这将使我们更深入地了解器件识别的 SPI 错误。  

    如果您根本无法从器件读取任何数据、我建议仔细检查 SDI 输入。 如果该信号未连接且 TCAN4551的输入保持高电平、则会将其识别为无效形式、并使其以无数据的方式以 SPI 错误进行响应。  

    让我知道您还能找到什么。  

    此致、
    Eric Schott

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

    尊敬的 Eric:

    我还接收到用于 h000C 寄存器的0x88。

    如果我移除 SDI 输入、则信号保持在0V。

    我真的很喜欢这个:/

    此致、

    Marco

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

    Marco、

    您在此应用中的 VIO 电压是多少? 我提出这一要求是因为您的 MISO 和 MOSI 为2.2V、但您的 NCS 和 SCLK 高于5V。 这似乎不正确、可能是您的问题的一部分。

    此致、

    Eric Hackett

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

    尊敬的 Eric:

    我们已经可以解决此问题。 我们有一个缺陷 TCAN。 更改后、所有信号均为5V。

    否、我们能够正确读取器件 ID、但0x88仍在消息中。

    读取0x000C 寄存器会导致0x0330 0006。 根据数据表、仍然存在未屏蔽的 SPI 错误和无效 SPI 消息。

    FIFO 似乎也有一些问题、但实际上不会发送或接收 CAN 消息。

    在没有连接 OSC1/OSC2时钟的情况下、寄存器0x000C 是否可靠可读?

    感谢您迄今提供的帮助和致以最诚挚的问候、

    Marco

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

    尊敬的 Marco:

    是的、当外部时钟不可用时、可访问0x000C 寄存器。  

    如前所述、该寄存器的值表示先前的 SPI 命令已注册为无效。 这包括 SPI_END_ERROR 标志、指示 SPI 事务未在字节边界上结束。 这意味着 SPI 帧(一个 nCS 脉冲)不包含32 位的整数倍。 请检查所有 SPI 帧是否都符合此要求。 我建议在初始上电时检查这些信号线、因为有时启动条件会导致 nCS 脉冲产生无效数据。 如果是这种情况、请确保在启动后清除这些中断、以便捕获到任何后续中断条件。  

    或者、当一个较高的地址(>= h0800)而外部振荡器不稳定时、有可能发生这个错误。 如果中断在 SPI 事务之后似乎被设置、但在范围上没有可识别的问题、我们可能需要进一步研究。  
    您是否将外部晶体振荡器用于 OSC1/2引脚或单端时钟? 如果使用晶体、请查看下面的应用手册、了解有关此类设计需要考虑的不同注意事项的更多信息。  
    https://www.ti.com/lit/an/slla549/slla549.pdf?ts=1656532573184&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTCAN4550-Q1 

    此致、
    Eric Schott