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.

[参考译文] DRV8434S:方向改变问题

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1487018/drv8434s-direction-change-issue

器件型号:DRV8434S

工具与软件:

您好!

我使用的是 DRV8434S 电机驱动器、在改变方向时会遇到问题。 当正向步进时、我写入控制寄存器3 (例如0x70)。 当 I 切换方向时、我写入0xF0、但电机在第一个周期中不会反转方向。 它会向原始方向移动、只有在写入寄存器第二次后、它才会切换到正确的方向。

下面深入了解、在我第一次进行方向切换时、Ctrl 3寄存器显示了之前的值、第二次写入时仅更新。 例如、如果我使用0xF0 (CW)命令执行多个步骤、然后发送0x70 (CCW)以进行方向切换、则寄存器将在写入0x07后一步返回0xB0并移动 CW (错误方向)。 另外、当我第一次发送命令时发送0x70、SDI 显示0xB0。 然后、后续的命令返回正确的值(0x30)、电机沿正确的方向移动、直到我再次进行方向开关。 请查看下图。 当切换方向以清除先前的值时、是否需要执行任何特殊操作?  我的主要问题是、当我发送新的方向和步进命令时、为什么在一个写入周期内锁存至旧值。

我使用全步进模式。

如果您对这一现象有任何见解、我将不胜感激。

谢谢!

Vusa.




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

    您好 Vusal、

    感谢您在论坛中发帖。

    为了进一步了解、Ctrl 3寄存器显示了我第一次进行方向切换时的前一个值、仅在第二次写入时更新。 例如、如果我使用0xF0 (CW)命令执行多个步骤、然后发送0x70 (CCW)以进行方向切换、则寄存器将在写入0x07后一步返回0xB0并移动 CW (错误方向)。 [报价]

    这是预期行为。 寄存器中的更新值将仅 在写入寄存器帧结束时 nSCS 的上升沿锁存。 因此、SPI_DIR 变化期间发出的 STEP 脉冲将沿电流方向继续执行一步。 为避免这种情况、您可以在不发出 SPI_STEP 脉冲的情况下发送单独的 SPI_DIR 更改帧、然后继续进行 SPI_STEP 写入。  

    [报价 userid="646189" url="~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1487018/drv8434s-direction-change-issue "]此外、当我第一次发送命令时、SDI 显示0xB0。 然后、后续的命令返回正确的值(0x30)、电机沿正确的方向移动、直到我再次进行方向开关。 请查看下图。 [报价]

    这也是预期行为。 当前帧的 SDI 将包含寄存器中的现有值、而不是写入的值。 写入的值在写入帧的 nSCS 的上升沿被锁存。 第二次读取或写入将显示最后写入的内容。  

    此致、Murugavel