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.

[参考译文] DRV8873-Q1:Linux 内核更新后出现 SPI 问题

Guru**** 2482215 points
Other Parts Discussed in Thread: DRV8873

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1185133/drv8873-q1-spi-issue-after-linux-kernel-update

器件型号:DRV8873-Q1
主题中讨论的其他器件:DRV8873

您好!  

客户正在使用4个菊花链 DRV8873SPWPRQ1。 几年来、他们一直在使用该器件、现在没有任何问题。 他们正在努力更新他们的 Linux 内核、但遇到了一些问题。

在更新之前、它们没有问题。 更新后、它们会看到奇怪的 SPI 数据。 具体而言、SPI 数据在逻辑分析仪上朝着驱动器芯片(MOSI)方向显示是正确的、但总线上的响应(MISO)不是预期的那样。 大量重复值、而不是预期的响应结构。

是否有任何关于客户可以在此处查看哪些内容的想法?

Tyler

以下是客户的原始消息:

我在使用较新的 Linux 内核进行 DRV8873 SPI 菊花链通信时遇到了问题、我希望能够帮助确定哪些电气条件可能会影响电路板上这些芯片的 SPI 输出。 简而言之、较新的 NXP 内核在逻辑分析仪上显示的 SPI 数据与驱动器芯片(MOSI)方向是正确的、但总线上看到的响应(MISO)不是预期的那样。 大量重复值、而不是预期的响应结构。 因此、我想知道硬件中是否还有其他可能导致这种情况的条件。 菊花链中有4个驱动器、具有单个共享 CS 引脚。   

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

    您好!

    感谢您的提问。 我知道它运行良好、但他们的系统更新不再如此。 让我尝试猜测一下可能相关的项目。

    - DVDD 和 nSLEEP:最好在 SPI 通信时仔细检查这些电压电平是否正常(与之前相同)且无压降。

    -最好查看 SPI 时序图(与以前相同? 频率更快、设置/保持裕度更小等)

      

    -最好检查 SPI 命令内容。

     菊花链需要独特的 SPI 命令协议、如 HDR1/HDR2等 数据表第31-32页。

    此致

    Shinya Morita

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

    您好、Shinya、  

    感谢您的回复。 关于睡眠模式的理论是相当合理的。 器件在睡眠期间将如何工作? 睡眠模式期间是否禁用 SPI?

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

    您好、Tyler、

    SPI 处于非活动状态。 请参阅数据表7.4.1.1。

    谢谢、

    此致

    Shinya Morita

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

    感谢您迄今提供的帮助。 客户在从处理器发送信息后发现 FAULT 引脚标记。 在发送 SPI 消息后、哪些情况会导致故障标志?

    客户提供的最新信息:  

    我刚刚使用具有任何 FES 服务的特殊启动映像对新内核运行了测试。 所有故障线路都读为1以启动、然后我手动发送了以下消息:

     # spidev_test -D /dev/spidev2.0 -v -cpha -s 500000 -b 8 -输入 test1-10.bin SPI 模式:0x1位/字:8最大速度:500000Hz (500kHz) TX | 84 80 44 88 00 00 00 00 ___________________ ________ ________ ________ __ |。。DD。。。 | RX | C0 C0 C0 C0 C0 C0 C0 C0 C0 ___________ ________ ________ ________ __ |......... |

     

    然后所有故障线路读为0。

     

    旧版内核也是如此:

     

    这里的故障线路在之前和之后读取为1。

     # spidev_test -D /dev/spidev2.0 -v -cpha -s 500000 -b 8 -输入 test1-10.bin SPI 模式:0x1位/字:8最大速度:500000Hz (500KHz) TX | 84 80 44 88 00 00 00 00 __________________ ________ ________ _________ __|.. DD ... | RX | C0 C0 C0 84 80 51 51 40 40 ______________ ________ ________ ________ __ |…… QQ@@||

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

    您好、Tyler、

    感谢您的更新。 客户发现 nFAULT=低电平的良好进展。  

    如果客户读回状态寄存器、它将告知故障情况。

    该表还有助于了解 nFAULT=低电平条件。

    更好的方法是确保 nSLEEP 引脚保持高电平并且无压降。

    顺便说一下、很难从他们的注释中了解要发送的命令。 我认为客户可以缩小创建 nFault =低电平的 SPI 命令的范围。

    此致

    Shinya Morita

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

    您好、Shinya、  

    客户无法获取 C0字节以外的任何内容来响应使用新内核进行的 SPI 传输。 对于之前的内核、由于没有将执行器电机连接到电路板、它们确实会得到 D8的响应。

    此外、客户已确认 nSLEEP 引脚保持高电平。

    是否有任何其他方法可以在没有 SPI 通信的情况下了解故障情况?

    Tyler

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

    您好、Tyler、

    感谢您分享此更新。 因此、当它们连接执行器电机时、问题会发生。 则它们在 DRV 上具有故障条件。  

    可能更好的方法是首先使用标准 SPI 通信(而不是菊花链)对电机故障情况进行调试。

    读取 SPI 命令是了解故障原因的简单方法。 否则需要手动检查每个可能性(OCP、VMUV)。 无需转向标准 SPI 通信即可快速检查 VM、VCP 稳定性。

    我可以查看他们的原理图以进行检查。

    此致

    Shinya Morita

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

    Tyler、

    这里是否有任何进一步的更新?

    此致、

    Ryan

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

    事实证明、此问题是新 NXP 内核的问题。

    SPI 驱动器未在整个传输过程中按住 CS、一次仅为8位、因此 TI 驱动器芯片不知道它在菊花链中、只返回其状态(C0)。

    客户现在已完全解决问题。 谢谢!

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

    您好、Tyler、

    感谢您的更新。 知道这个问题已解决。

    此致

    Shinya Morita