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.

[参考译文] DRV8711:DRV8711 STEP 脉冲可能会在启用 ENBL 之前被忽略

Guru**** 2652475 points

Other Parts Discussed in Thread: DRV8711, DRV8711EVM

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1584064/drv8711-drv8711-step-pulses-may-ignored-before-enbl-enable

器件型号: DRV8711

尊敬的 TI E2E 社区:

我使用 DRV8711  在 1/256 微步进模式下驱动 1.8°两相步进电机。 我已经成功实现了电机的基本旋转。 我的目标是使用外部绝对编码器实现零抖动启动 。

正如数据表中所预期的那样、 启用 ENBL 输出后、电机会立即表现出明显的急冲。 这确认芯片内部 分度器在 45°电角处正确复位为初始状态(分度器 = 128、以 1/256 微步进方式)。 电机的转子物理角度不匹配、从而导致跳变。

为了实现零抖动启动、我需要在 ENBL = 1 之前发送 N STEP 脉冲来更改分度器。

但是、尽管在 ENBL = 1 之前发送了 N STEP 脉冲、电机仍会显示  同样明显的急冲 。 和编码器数据确认电机锁定到初始状态。 无论 发送的 STEP 脉冲数量如何、都会始终发生这种情况。  

因此、我想确认只有当 ENBL = 1 时、才能通过 STEP 脉冲可靠地更改内部分度器? 或者是否有办法实现这一目标?

感谢您的见解和支持。

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

    您好、Lucas:  

    感谢您的提问。  

    复位状态为 45°、在上电或应用 RESETn 时进入该状态。   

    在 STEP 输入的每个上升沿、或每次将 1 写入 CTRL 寄存器中的 RSTEP 位时、分度器都会传输到表中的下一个状态。 方向通过 DIR 引脚为高电平、CTRL 寄存器中的 RDIR 位设置为 0 或 DIR 引脚为低电平且 RDIR 位设置为 1 来显示。 如果 DIR 引脚通过 RDIR 位 0 为低电平、或者 DIR 引脚通过 RDIR 位 1 为高电平、则序列相反。 正电流定义为 xOUT1 =相对于 xOUT2 为正

    以下捕获显示了 2 种不同条件下的电流。  

    1: 首先启用器件、然后施加 STEP 脉冲。 启动电流  

    2 — 使用 RSTEP 位应用 6 步、然后启用器件并开始应用 STEP 脉冲。  

    如图所示、分度器移动、电流开始寻找另一个值。 可以根据 表 4 检查当前值。 阶跃方向

    此致、  

    Mojtaba.

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

    尊敬的  Mojtaba:

    感谢您的回复、感谢您确认标准的主状态和 STEP/RSTEP 功能。

     但是、提供的信息不能解决核心问题、即当 ENBL =时、索引器为何无法通过外部步骤信号更改  0.

    我的测试是在 RESET 引脚悬空 nSLEEP 拉至高电平且输出禁用 (ENBL=0) 的情况下进行的。 操作完成后设置 ENBL = 1。结果 由编码器和相电流验证。

    1. SPI 写入  RSTEP= 1. 、 分度器 状态  已成功更改并且不再处于主状态。 (注意:生成的分度器值似乎仍与我的计算有所偏差,但它正在更改)  。

    2. STEP 引脚的外部脉冲 。  分度器状态  更改并保持锁定在主状态。 经确认脉冲信号干净且在时序规格范围内。

    和 新发现的 SPI 通信异常!!! 当 nSleep = 1 时、 SPI 对寄存器的写入始终成功。 但如果  nSleep = 0、 SPI 会写入寄存器 是否发生故障 。 (例如,写入该值,但后续读回验证会显示旧值。 重写通常会成功 即使电机完全断开连接、也会发生这种情况。CLK 频率从 10k Ω 测试到 3MHz。 数据表 显示 数字电路仍在睡眠 模式下运行。

    此致、

    Lucas

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

    您好、Lucas:

    [引述 userid=“672054" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1584064/drv8711-drv8711-step-pulses-may-ignored-before-enbl-enable/6103882

    我的测试是在 RESET 引脚悬空 nSLEEP 拉至高电平且输出禁用 (ENBL=0) 的情况下进行的。 操作完成后设置 ENBL = 1。结果 由编码器和相电流验证。

    1. SPI 写入  RSTEP= 1. 、 分度器 状态  已成功更改并且不再处于主状态。 (注意:生成的分度器值似乎仍与我的计算有所偏差,但它正在更改)  。

    2. STEP 引脚的外部脉冲 。  分度器状态  更改并保持锁定在主状态。 经确认脉冲信号干净且在时序规格范围内。

    [/报价]

    在 DRV8711 中、当 ENBL 禁用时、分度器不会通过 STEP 引脚运行。 它在 ENBL 被禁用之前保持在最后一个位置。 RSTEP 用于手动推进分度器。 它覆盖 ENBL 的任何内部门控并使分度器前进一步。  

    为了实现零急冲启动、我需要在 ENBL = 1 之前发送 N 个 step 脉冲来更改索引器。

    这只能通过 RSTEP 实现。 RSTEP 在写入 RSTEP = 1 后自动清零、并根据 DIR 引脚和 RDIR 设置将分度器前进一个位置以实现正向或反向。   

    和 新发现的 SPI 通信异常!!! 当 nSleep = 1 时、 SPI 对寄存器的写入始终成功。 但如果  nSleep = 0、 SPI 会写入寄存器 是否发生故障 。 (例如,写入该值,但后续读回验证会显示旧值。 重写通常会成功 即使电机完全断开连接、也会发生这种情况。CLK 频率从 10k Ω 测试到 3MHz。 [/报价]

    如数据表中所述、无论 SLEEPn 引脚如何、SPI 通信均处于活动状态。 当器件从睡眠状态唤醒时、分度器将复位到初始位置。 这已被验证为正确。 如果您有其中一个 DRV8711EVM、您可以尝试它。   

    此致、Murugavel