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:当 TRQ_COUNT <STALL_TH 时未检测到失速

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1369853/drv8434s-stall-not-detected-when-trq_count-stall_th

器件型号:DRV8434S

工具与软件:

您好!

我已设置  DRV8434S 来驱动1.5A 步进电机。 我启用了 TRQ_SCALE 位、通过测试、我发现电机在大约200 TRQ_COUNT 处失速。 我已将 STALL_TH 设置为255并启用 EN_STL、但当电机失速且 TRQ_COUNT 低于255时、STL、STALL 和 nFault 引脚不会改变。

以下是在 TRQ_COUNT 降至255以下时、在失速期间获取的寄存器转储:

Stall detected
Register dump:
0x00: 0b0000 0000
0x01: 0b0000 0000
0x02: 0b0000 0000
0x03: 0b1100 0000
0x04: 0b1000 1111
0x05: 0b0000 1000
0x06: 0b0011 0000
0x07: 0b0001 1000
0x08: 0b1111 1111
0x09: 0b0011 0000
0x0A: 0b1111 0000
0x0B: 0b0000 0000

如果我读正确、衰减模式为 智能调优纹波控制、EN_STL 位为1、则不会出现失速检测所需的故障。

TRQ_COUNT 为240、STALL_TH 为255、因此应满足失速条件、但是不会设置 STL 和 STALL 位。

我尝试了几个不同的方法、包括使用不同的微步进级别、关闭 TRQ_SCALE、更改电机转速和电流限制、但没有任何方法可以解决这个问题。

非常感谢您提供任何建议、

谢谢

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

    George、您好!

    您是否在 TI DRV8434SEVM 上执行了这些测试? 使用的 VM 电压是多少? 根据您设置为1.5A 的目标电流的帖子、是吗? 在扭矩缩小和增大的情况下、步进器在无负载的情况下运行时的扭矩计数是多少? 1/8至1/64设置是实现良好失速检测的最佳微步进设置区域。 您能否分享 A 绕组或 B 绕组的电流波形? 测试期间使用的阶跃输入速率是多少。 如果存在阶跃到阶跃时间段、则不会检测到失速变化、例如正在进行加速度配置。 我假设在测试失速检测时电机以稳定状态目标速度运行。   

    您是否也尝试了低得多的失速阈值、以确保检测不受噪声计数的影响? 寄存器转储看起来并不异常。 谢谢。

    此致、Murugavel

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

    尊敬的  Murugavel:

    这是在 Pololu 驱动器板上运行的、VM 为12V。

    我已将 Vref 等效值设置为1.5A 目标电流、但已将 TRQ_DAC 设置为25%、以使电机更容易失速。

    在 TRQ_SCALE 开启的情况下、空载 TRQ_COUNT 约为500、在 TRQ_SCALE 设置为0的情况下、该值约为80。

    我使用的是1/64微步进。

    下面是电流波形:

    我的阶跃到阶跃时间为~78us /~13kHz 稳定状态。 每64个步长暂停~1ms、同时读取寄存器以进行调试。 我已经尝试删除此暂停并仅监控 nFault 引脚、但这无法解决我的问题。

    我已尝试设置非常低和非常高的失速阈值、但无法设置 STL 位。

    谢谢。

    乔治

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

    您好、George、

    感谢您提供更多信息。 电流波形看起来以及空载扭矩计数都合理。 您说过"每隔64个步长、在读取寄存器以进行调试时有~1ms 的暂停。 我已经尝试删除此暂停、仅监控 nFault 引脚"。 这是否意味着您正在使用固件 GPIO 切换来生成 STEP 输入脉冲? 我已经看到这种方法会导致阶跃周期、脉冲到脉冲之间发生变化、从而阻止失速检测。 可以使用计时器 PWM 输出(基于硬件)或外部信号发生器来测试它吗?  

    此致、Murugavel

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

    尊敬的 Murugavel:

    是的、阶跃脉冲是通过 GPIO 切换生成的、我看过 STEP 信号、结果看起来相当一致、但我明天会使用信号发生器去。

    谢谢、George

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

    您好、George、

    听起来不错、谢谢。 我采用了类似的设置、采用了1.5A 步进 NEMA17和采用24V 电源的 DRV8434S。 使用 EVM 的 GUI 检测失速时没有任何问题。 我将电流设置为0.5A、以便可以轻松地使电机失速。 STEP 脉冲由 EVM MCU 中的计时器生成。 供您参考。  

    此致、Murugavel

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

    尊敬的  Murugavel:

    使用信号发生器解决了我的问题、我将转到为阶跃脉冲使用硬件计时器。 在每80us 步进脉冲中、时钟偶尔会出现抖动、4us 左右、我没有意识到失速检测对此非常敏感。

    谢谢、George

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

    您好、George、

    使用稳定的步进输入可以解决您的问题。 是、如果阶跃输入脉冲周期存在变化、则会自动屏蔽失速检测。 这有助于在加速或减速过程中造成错误检测。 请将此帖子标记为已解决、并在结束时关闭。 谢谢你。

    此致、Murugavel