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.

[参考译文] BOOSTXL-DRV8301:控制寄存器1复位为0、电机停止旋转

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/684435/boostxl-drv8301-control-register-1-resets-to-0-and-motor-stops-spinning

器件型号:BOOSTXL-DRV8301
主题中讨论的其他器件:DRV8301DRV8305controlSUITE

问题:当尝试在 F28379D LaunchPad 上使用 DRV8301 BoosterPack 运行电机控制代码时、电机最初会旋转、控制寄存器1变为值0 (控制寄存器2保持在其性能状态)、然后所有三个电机相位开始输出接近 Vdc 电压的电压。  

目标:请帮助我确定如何解决此问题。

  • 注:
    • 我看不到任何状态指示灯亮起表示出现故障、当读取状态寄存器时、我读取0。  
    • 我不认为 drv8301 booster pack 复位并进入无响应状态、因为我仍然能够以值9正确读取控制寄存器2。
    • 如果要检查正确的分配、请查找所附379D 的 IO 分配

  • 可能的原因
    • 379D LaunchPad 本身
    • 别这么认为
    • DRV8305 BoosterPack 具有与 drv8301几乎相同的引脚、  可与379D launchpad 搭配使用。
    • 已尝试不同的379D LaunchPad、但问题相同
  • drv8301 BoosterPack
    • 别这么认为
    • 已尝试不同的 drv8301 BoosterPack 和相同的问题
    • DRV8301 BoosterPack 可在377S launchpad 上工作
  • 软件
    • 别这么认为
    • 8301 Booster Pack 可与377S launchpad 配合使用
      • 因此只要 GPIO 分配正确、软件就不是问题
    • 我检查了代码 GPIO 分配
      • 将8305 BoosterPack 与379D launchpad 搭配使用时可正常工作、其引脚排列与8301几乎相同
      • 唯一的区别是:
        • 重新排序 Vsense 引脚
        • 8301的 DC-Cal 替代8305的 WAKE 引脚
        • 用于8301的额外八引脚
        • 8305上的额外 PWRGD 引脚
      • 因此、只有分配错误的来源是 octw 引脚

e2e.ti.com/.../F2837xS_5F00_IO_5F00_assignment.h

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

    您是否正在使用 DRV8301 BoosterPack 随附的软件、或者您是自己编写的? 遇到问题时、电机是否已连接? 发生这种情况时、寄存器0x00中存储的值是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1) 1)正在使用"C:\ti\controlSUITE\development_kits\TIDM-SERVO-LAUNCHXs\MonoMtrServo_377s_v1_00_00_00_00"中的电机控制代码、并进行修改以允许用户切换 377S/379D launchpad 和 DRV8301/DRV8305 BoosterPack 的配置。 379D launchpad 的 GPIO 分配发生了主要变化、因为它们不同于377S launchpad。

    2) 2)我在连接和断开电机的情况下都遇到了此问题。 379D 器件十六进制寄存器0x00中存储的值为0040 9FCD。  

    3) 3)当我通过 SPI 读取 DRV8301的寄存 器时、存储在 DRV8301寄存器0x00 (状态寄存器1)和寄存器0x01 (状态寄存器2)中的值均为0。

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

    如果电机未连接、并且所有相位都变为 Vdc、我猜是 GHx 引脚都驱动高电平、而 GLx 引脚都驱动低电平。 如果是这种情况、那么 INHx 引脚必须为高电平、INLx 引脚必须为低电平。 您能否检查情况是否如此?

    此外、您能否在调试模式下运行软件并暂停软件/单步运行软件、以查看软件是否卡在某些子例程中、从而使电机驱动器处于该状态?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我测量了 bootstxl-DRV8301上的 PWM_AH、BH、CH 引脚、这些引脚直接连接 到 INH_A、B、C 引脚、并在信号上放置示波器低通滤波器时查看下面的 PWM 波形。  INL_A、B、C 引脚按预期接地。

    然而  、GHx 引脚全部处于几乎直流电平、而 GLx 引脚为 GND。

    因此、有些东西告诉 drv8301忽略 INH/L 输入、只在 GHx 引脚上发送恒定直流电压。 这可能是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、关于您在检查代码是否滞留在某个子例程中的问题、如果看到 PWM 信号转至 DRV8301的 INX 引脚、我认为这证明了代码未滞留在某个子例程中、我还通过在调试模式下运行检查了自己。

    我想让您列出器件将重置其配置寄存器或将所有三个 GHx 引脚输出为高 VDC 信号的情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Sanmesh、

    我现在将对此进行研究。 当器件与379D 板处于无响应状态时、您能告诉我所有 GHx 和 GLx 引脚上的电压吗? 我猜 GHx 引脚是高电平、GLx 引脚是低电平、但我想确认。

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

    以下是 DRV8301数据表中的一些信息、可帮助进行调试。

    UVLO (由于 SPI 关闭、可能不是您的问题)

    在一个完整的 µs µs 周期前、一个从13 μ A 到15 μ A 的特定 PVDD1欠压瞬态欠压欠压欠压保护会导致 DRV8301对外部输入无响应。 瞬态 µs µs 包括 PVDD1大于 PVDD_UV 电平、然后 PVDD1在13 μ s 至15 μ s 的特定周期内降至 PVDD_UV 电平以下。 µs 13至15 μ s 的瞬变不会影响欠压保护的正常运行。 可向 PVDD1添加额外的大容量电容、以减少欠压瞬态。

    EN_GATE 瞬态

    不应向 EN_GATE 引脚→→µs 10至20 μ s 的 EN_GATE 复位脉冲(高电平低电平高电平)。 DRV8301具有从快速复位模式到完全复位模式的转换区域、可导致器件在整个下电上电周期之前对外部输入无响应。 如果预计在 EN_GATE 引脚上会出现具有此周期的复位脉冲、则可以在引脚外部添加 RC 滤波器。

    栅极驱动器上电排序勘误表

    当 EN_GATE 在 PVDD1加电(PVDD1 > PVDD_UV)后变为逻辑高电平(启用器件)时、如果任何 SH_X 引脚上存在大于8.5V 的电压、DRV8301栅极驱动器可能无法正确加电。 通过 EN_GATE 启用 DRV8301时、应确保 SH_X 引脚上的电压电平小于8.5V、从而避免该序列。

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

    GHx 引脚为17V、Vdc = 20V。 GLx 引脚为0V。

    我认为 EN_GATE 引脚上的噪声导致了该问题。 我在 EN_GATE 引脚上放置一个示波器信号、并将捕捉模式设置为在电压低于2.7V 时触发。 当我检测到配置 reg1复位为0时、示波器在以下捕获上触发、黄色通道= EN_GATE、蓝色通道= INH。 电压低至2.329V。

    需要注意三个方面:

    1) 1) DRV8301 BoosterPack 在377S launchpad 上工作、但不在379D launchpad 上工作

    2) 2)将379D launchpad 与具有相同 EN_Gate 引脚的 DRV8305 BoosterPack 配合使用可正常工作、并且我不会看到 EN_GATE 随时低于2.9V。

    3) 3)当两个电机都连接和断开时会发生问题、但在连接电机时会更频繁地发生问题。

    根据这3个事实、我认为出于某种原因、DRV8301 BoosterPack 存在为379D Launchpad 提供足够电流的问题、以及电路板兼容性问题。 这是否是正确的扣减、您是否会推荐其他东西?

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

    Sanmesh、

    我不确定我们是否有足够的数据得出这一结论。 我们需要检查几件事情来确认电源不够好。 如果您想检查它们、这里是一个列表。

    • 如果电路板电源出现问题、则您应该会在3.3V 线路上看到较大的压降。
    • 此振铃信号的时序为纳秒级。 我通常不相信纳秒级的示波器噪声/振铃测量值、因为它们通常是由探头耦合引起的。 要正确测量纳秒范围内的信号、您需要使用尽可能小的接地环路作为示波器探针。

    如果 EN_GATE 上的噪声确实是问题所在、数据表建议添加一个电容器。 您可以在 EN_GATE 上放置一个0.1uF 或1uF 电容器。 您可能可以将其与 R6并联焊接。

    即使测量来自探头耦合、您的示波器图片确实告诉我们的一件事是系统中的某个部件在该时间切换。 在实验中、您如何将0x00的控制寄存器1读取值与该 EN_GATE 振铃相关联?

    如果振铃和寄存器变化之间有良好的相关性、则需要查看其他一些调试项。

    • 您的代码中是否有任何与此噪声相关的内容?
    • 此噪声是否定期发生? 您可以探测电路板上是否有其他信号来关联此噪声?
    • 377 LP+DRV8301 BP 设置或397D LP+DRV8305 BP 设置是否存在此振铃?