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 SPI 写入 FIFO 溢出

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1031545/tcan4550-tcan4550-spi-write-fifo-overflow

器件型号:TCAN4550

大家好、

我收到了客户的问题。

当我使用 SPI 写入数据时、0x0820寄存器显示 SPIERR。

非常感谢你的帮助。

此致、

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

    您好、Zhonghui、

    报告此 SPIERR 后、状态寄存器(h000C)的值是多少? 状态寄存器可以告诉我们 SPI 错误的性质、因此我们可以查看导致此错误的原因。  

    此写入尝试是否始终显示此错误? 还是发生不一致? 您是否能够提供 SPI 信号的示波器截图、以便我们验证是否满足电气参数?

    是否可以共享此设计的原理图? 我想了解所有数字引脚和 CAN 总线是如何连接的。

    此致、
    Eric Schott

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

    尊敬的 Eric:

    感谢你的帮助。

    spierr 之后的状态寄存器(h0000c)的值为 h01000004。 在第一次和第二次写入后、该错误将在写入和读取期间发生。 写入期间不能写入数据、读取期间可以正常读回数据(h0000)

    SPI 直接连接到 MCU 硬件、无需其他操作。

    此致、

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

    您好、Zhonghui、

    在此测试期间、您能否确认40MHz 单端时钟信号是否存在且稳定? 任何大于 h000C 的地址都必须激活此时钟信号才能访问。  

    您是否能够捕获 SPI 线路的模拟示波器截图以验证电气参数?

    是否在报告 SPIERR 后在 h0820中设置了任何其他中断?

    此致、
    Eric Schott

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

    尊敬的 Eric:

    感谢你的帮助。

    我刚刚获得了客户端的验证结果、并确定晶体振荡器40M 已导出到芯片。

    问题仍然存在。

    如图所示、第一次写入后、返回00、第二次写入返回88错误。

    请再次帮助分析、谢谢。

    此致、

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

    Zhonghui、

    您从0x000C 寄存器中提到的错误是 WRITE_Fifo_overflow 中断。 不过、SPI 通信是否通常正常工作、或者 SPI 通信是否不能同时出现这些错误? 我知道您提到写入不起作用、但读取会起作用、情况是否仍然如此? 是否可以共享 SCLK、SDI、SDO 和 NCS 的放大波形? 我想确保计时正确。

    此致、

    Eric Hackett  

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

    尊敬的 Eric:

    感谢你的帮助。

    这很有用。

    此致、

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

    Zhonghui、

    没问题、当时是否仍然存在问题?  write_fifo_overflow 通常是传输比 SPI 帧长度部分中声明的更多数据的结果(请参阅数据表的第43页)。 不过、在您的波形中、您似乎只定义长度为1、 发送一个字、那么我很好奇 SPI 时序是否会导致传输的数据溢出 SPI FIFO 并触发中断、因为它会看到第二个数据字的开始。

    此致、

    Eric Hackett