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.

[参考译文] DRV2625:自动校准和波形

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1285099/drv2625-auto-calibration-and-waveform

器件型号:DRV2625

您好!

我有一个具有以下规格的 LRA 电机:

频率:100Hz

电阻:6.5E

额定电流:300mA

额定电压:2Vrms

根据数据表、驱动时间应为5ms。 但最大驱动时间为3.6、可以使用。

额定电压为90、OD 钳位为138。 自动校准所需的其余设置使用默认值、并尝试更改消隐时间和 电感器放电时间。 自动校准设置为1000毫秒

当我启动自动校准时 、我没有看到任何情况发生。 当我读取 寄存器0x21、0x22和0x23时、这些值没有改变。 它们与默认值相同。

然而、我确实设置了 GO 位、 但看起来它被立即清除。 并且根本不会设置任何状态、即使对于 processDone 也是如此。

我使用外部触发使能(TRIG_PIN_FUNC[1]= 1)来启动和停止电机。 我想知道是否仍然可以使用 GO 位启动自动校准。 但我还尝试设置 TRIG_PIN_FUNC[1:0]= 0并设置了成功的 GO 位。

电阻低于规定值、但我想知道这是否是问题所在。 因为我在驱动器的输出端没有看到任何情况。 我还尝试添加一个电阻器和一个串联的额外电机、但仍然成功。

如果没有自动校准、我仍然可以运行电机。 因此、我使用 RTP 模式、每当我为电机提供可启动的外部触发信号时电机就会运行。 但是、 如果我使用波形序列、当外部触发器为高电平时、电机并不总是启动。 电机启动时没有顺序、电机看起来是随机的。 我已使用外部触发器1秒高电平、1秒低电平测试了电机。 如果电机将运行、它当然 始终位于外部触发器的低侧至高侧。 但大约在 触发器出现的25-50%的时间内、电机未运行。

我根据规格订购了其他一些电机。 当我收到它们时、我会对它们进行测试。

我做错了什么? 还有其他可以尝试的东西吗?

谢谢!

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

    您好!

    感谢您与我们联系。 所有进程(RTP、波形序列发生器、校准和诊断)遵循以下流程。 我建议在触发前先检查是否已正确设置自动校准模式(请参阅下图、位1-0的说明)。 对于触发、这可以通过 GO 位完成、但在  TRIG_PIN_FUNC[1]= 1时不能(请参阅下图、位3-2说明)。  

    另外、您提到过您要将额定电压设置为90、将 OD 钳位设置为138、但您的 LRA 额定电压仅为2VRMS。 请注意、自动校准会根据额定和 OD 钳位电压向 LRA 发送满量程信号。

    希望这对您有所帮助!

    此致、
    悉尼诺斯卡特  

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

    感谢您的回答!

    自动校准现在开始工作。 我当时以为我清除了 TRIG_PIN_FUNC[1]、但似乎我清除了错误的位。 我还稍微改变了钳位电压。 现在驱动器正在进行校准、在三个寄存器中、我得到比默认值还要高的其他值。

    自动校准后、我将 TRIG_PIN_FUNC[1]改回值1 ->外部触发器、但我仍然遇到这样的问题:每次触发器出现时波形都没有激活。  

    从寄存器0x0F 至0x19的波形的设置为:

    0x01
    0x00
    0x00
    0x00
    0x00
    0x00
    0x00
    0x00
    0x00
    0x00
    0x00

    因此、我只使用一个波形、并将其设置为第一个序列、不等待、不循环。 我已尝试了外部触发器(启用)和外部触发器(脉冲)。 都无法正常工作。 大约是波形未激活的25-50%。

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

    您好!

    很高兴听到校准正在工作。 当被拉至高电平时、您的触发器设置为多大的幅度? 最小数字高电平输入电压为1.41V。低于该电压的任何电压都可能具有您所描述的结果。

    此致、
    悉尼诺斯卡特  

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

    您好!

    触发高电压为5V。 但是当我不使用外部触发器而是使用 GO 位时、每次都会执行波形。

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

    您好!

      当您看到此问题时、您能否向我提供有关您正在使用的寄存器的更多信息? 我正在努力获取 DRV2625 EVM、以便尝试重现此问题/找到解决方案。  

    此致、
    悉尼诺斯卡特  

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

    您好!

    假设我使用的是默认值、我按如下方式写入所有寄存器。 从寄存器0x00开始。

    drv_reg.chipId.r = 0x13;
    drv_reg.status.r = 0x00;
    drv_reg.intzMask.r = 0x18;
    drv_reg.diagZResult.r = 0x00;
    drv_reg.vbat.r = 0x00;
    drv_reg.lraPeriodMSB.r = 0x00;
    drv_reg.lraPeriodLSB.r = 0x00;
    drv_reg.ctrl1.r = 0x44;
    drv_reg.ctrl2.r = 0x88;
    drv_reg.vbatMonitor.r = 0x00;
    drv_reg.vbatThreshold1.r = 0x92;
    drv_reg.vbatThreshold2.r = 0x8D;
    drv_reg.go.r = 0x00;
    drv_reg.libCtrl.r = 0x00;
    drv_reg.rtpInput.r = 0x2F;
    drv_reg.waveformSeq1.r = 0x01;
    drv_reg.waveformSeq2.r = 0x00;
    drv_reg.waveformSeq3.r = 0x00;
    drv_reg.waveformSeq4.r = 0x00;
    drv_reg.waveformSeq5.r = 0x00;
    drv_reg.waveformSeq6.r = 0x00;
    drv_reg.waveformSeq7.r = 0x00;
    drv_reg.waveformSeq8.r = 0x00;
    drv_reg.waveformSeqLoop1.r = 0x00;
    drv_reg.waveformSeqLoop2.r = 0x00;
    drv_reg.waveSeqMainLoop.r = 0x00;
    drv_reg.odt.r = 0x00;
    drv_reg.spt.r = 0x00;
    drv_reg.snt.r = 0x00;
    drv_reg.brt.r = 0x00;
    drv_reg.null1.r = 0x00;
    drv_reg.ratedVoltage.r = 0x43;
    drv_reg.overdriveVoltage.r = 0x62;
    drv_reg.aCalCompResult.r = 0x0D;
    drv_reg.aCalBEMFResult.r = 0x6D;
    drv_reg.feedbackControl.r = 0x3A;
    drv_reg.ratedVoltageClamp.r = 0x64;
    drv_reg.overdriveVoltLvl1.r = 0x80;
    drv_reg.overdriveVoltLvl2.r = 0x00;
    drv_reg.ctrl3.r = 0x9F;
    drv_reg.ctrl4.r = 0x11;
    drv_reg.ctrl5.r = 0x0C;
    drv_reg.ctrl6.r = 0x02;
    drv_reg.null2.r = 0x00;
    drv_reg.ctrl7.r = 0x00;
    drv_reg.null3.r = 0x00;
    drv_reg.LRAOLPeriodMSB.r = 0x00;
    drv_reg.LRAOLPeriodLSB.r = 0xC6;
    drv_reg.currentCoefficient.r = 0x00;

    在这些值之后、我启动自动校准例程。

    我使用的是 VL32158H 电机。

    自动校准例程之后执行校准。 我将寄存器 drv_reg.waveformSeq1.r 设置为0x01、将所有其他 wareformSeq 设置为0x00、并将 drv_reg.ctrl1.r 设置为0x45、以启用波形序列。

    然后只需使用外部触发器启动序列、电机不会每次都运行。

    我更改了代码、不再使用外部触发器、而是使用 GO 位通过波形序列启动和停止电机。 这按预期工作。

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

    您好!

    棒极了、感谢您提供这些信息。  

    很高兴听到您使用 GO 位。 收到 EVM 后、我就能够调试外部触发问题。 我将在这一周结束之前向您提供最新情况、因为 EVM 需要几天时间才能抵达。 感谢您的耐心!  

    此致、
    悉尼诺斯卡特  

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

    您好!

    感谢您的耐心。 我拥有 EVM 并完成了一些测试。 对于脉冲触发器、我每次都会运行波形回放。 不过、对于电平触发器、我看到同一个问题、波形不会每次都播放、但对于某些波形而言会更好、而对于另一些波形则更差。 我仍在调试、这是否是时序问题或波形可能存在的问题。  

    此致、
    悉尼诺斯卡特  

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

    您好!

    我们已经发现了可导致触发器每次都无法播放波形的错误。 触发信号需要在自动制动期间变为低电平,该周期由 Playback_interval * 10 +1ms 决定。 如果触发器超出波形、它会卡在某种状态、导致无法播放下一个波形。

    此致、
    悉尼诺斯卡特

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

    您好、Sydney:

    感谢您的反馈!

    现在我将保持它在 GO 位上触发、因为这可以正常工作、并且在选择波形时我不必更改触发时间。

    此致

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

    您好!

    好的。 我要将该主题标记为已结束。

    此致、
    悉尼诺斯卡特