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.

[参考译文] DRV8889-Q1:写入和读取 DRV8889中的 SPI 寄存器时出现问题

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1280609/drv8889-q1-issue-with-write-and-read-the-spi-register-in-drv8889

器件型号:DRV8889-Q1

团队、您好!

在设置失速检测寄存器时、我们使用 DRV8889面临 SPI 通信问题。

是始终需要更改步进驱动器的 NSLEEP 引脚的状态以读取/写入 SPI 寄存器。

我也参考了无传感器失速检测应用手册、并根据需要设置了所有参数、但寄存器仍然没有得到正确更新。

希望您能提供有关这方面的解决方案。

此致、

Agnideep。

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

    您好!

    无需针对 SPI 通信循环 nSLEEP。  通信本身有问题。  您是否有 EVM 或自己的电路板?  请以高分辨率共享所有 SPI 信号的示波器捕获、以便我们可以检查时序。

    此致、

    瑞安

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

    感谢您的深入理解。 我已根据要求检查了所有 SPI 信号的时序、现在我能够读取和写入 SPI 信号。  

    您可以确认、TRQ_CNT 寄存器会根据失速条件下电机的线圈电流持续更新

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

    嘿、Agnideep、

    是的、它将持续更新。 但是、在失速条件下、TRQ_COUNT 将为0或接近0 (低于失速阈值)请查看   数据表中的7.3.11.5失速检测功能、了解 TRQ_CNT 的完整说明。

    您可能还需要 借助 DRV8889-Q1了解无传感器失速检测

    此致、

    雅各布

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

    你好,雅各布!

    我查阅了应用报告、这有助于我开始实施。 但是、当我运行电机时、我会得到 TRQ_COUNT。 我将详细说明我的实施情况。
    1.我已经将步进电机设置为 微步进模式 此标准与 1/4 所以我配置了 CTRL 3寄存器为0x74
    2.设置 智能纹波 寄存器的设置已完成、因此 CTRL 2寄存器为0x0F

    3. CTRL 5寄存器 已配置为 0x38  (设置为失速学习模式)我也完成了 无失速学习模式 当时我已经将其配置为 0x18。  因此、当我当时还没有设置自学习模式时、我已经设置了 STALL_TH ( 寄存器0x08 )到 0xA0  (这种情况未显示任何故障或我的失速位未设置为1)

    4.配置完此寄存器后、我已经写入了使步进电机旋转的代码。

    5.旋转结束后、我读取 TRQ_CNT ( 寄存器0x09 )该值以稳定状态产生0xB0

    6.在此之后、我再次运行步进电机并使用一些外部力使其失速、在这种情况下、TRQ_CNT 寄存器应以不同的值更新、但在0xB0上出现相同的值。

    因此、我在上面的步骤中是正确的、或者我是否有其他一些方法来持续更新 TRQ_CNT 寄存器。

    此外、示例代码将帮助我获得解决方案。

    此致、

    Agnideep。

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

    您好!

    感谢您的提问。 由于 Jacob 是 OOO、请延迟几天。

    此致

    森田真也

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

    您好、Agnideep、

    如果您通过计数值或在寄存器页面寄存器0x09中查看 GUI 中的寄存器值、您将无法获得实时值、因为更新速率是每秒一次或更长时间。 为了更快地可视化计数更新、您可以在下图红色箭头所示的测试点上使用 EVM 上提供的模拟输出。 此 TP 上的3.3V 等于扭矩计数255、0V 为0。 如果您正在 PCB 上的 MCU 以足够快的速度读取扭矩计数寄存器、请忽略此建议。  

    根据您分享的信息、电机失速与正常旋转之间的扭矩计数似乎没有变化。 能否提供有关所用的步进电机的更多信息? 如果数据表可用、请分享每个绕组的线圈直流电阻和电感、VM 的电源电压、电流设置 I 满量程和阶跃输入频率。  

    此致、Murugavel

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

    您好, Murugavel!

    感谢您对此的深入理解。 我们没有 EVM、而是在基于应用的 PCB 中实现扭矩计数。

    以下是您所需的有关我们应用的电机和 PPS 设置的详细信息。

    1.线圈直流电阻:58欧姆

    2.线圈直流电感: 51.4mH

    3.电源电压 Vm:12V

    4.电流设定 I:100%(满量程)

    5.步进输入: 3334us (300 PPS)

    我附上了现成参考的电气规格。 kindy 指 D2B 双极列

    您能给我们更多关于扭矩计数更新寄存器所需时间的信息吗?

    或者如何在我们自己的 PCB 应用中检查相同的内容。  

    此致、

    Agnideep。

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

    您好、Agnideep、

    感谢您提供有关申请的更多详细信息。 根据我们使用各种步进电机的基准实验、我们发现 DCR > 10 Ω 的步进电机无法生成足够的反电动势振幅、从而导致失速检测模块无法可靠运行的 SNR 较差。 较低的步进率增加了对这种情况的影响。  遗憾的是、具有高 DCR 和 L 的 D2B 电机不适合与 DRV8889-Q1配合使用来进行失速检测。 这就是您无法使用该步进电机检测到失速情况的原因。 D3B 最好适合、然后是您分享的规格表上的 D1B 的潜在可用性。  

    我所说的"读取速率"是指对 TRQ_CNT 寄存器进行采样的频率。 特别是、如果您使用微控制器在外部与阈值进行比较、那么您可能必须在电流波形的每个电气半个周期内至少进行一次采样。 对于内部失速检测、这无关紧要。 您需要等待 nFAULT 引脚状态改变。

    此致、Murugavel