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.

[参考译文] DRV2605L:ERM 310-118 (精密微驱动器)自动校准失败

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/687023/drv2605l-auto-calibration-failed-with-erm-310-118-precision-microdrive

器件型号:DRV2605L
主题中讨论的其他器件:TCA9517DRV2605

您好!

设置:请参阅图片 erm_board_setup。

我使用 Arduino mega2560发送 I2C、使用 TCA9517将 I2C 从5V 转换为3V。 VCC 为3.3V (通过测量确认)。

我的代码如下:(注意:目的是控制 PWM 输出、不是开环的、而是设置 RTP 寄存器占空比并让 drv2605L 处理 PWM)


void setup(){

Serial.begin(9600);
延迟(250);//等待 Arduino
Wire.begin();//设置 I2C

DRV.ratevolt (0x8E);//工作电压为3V
DRV.CLAMP (0x99);//钳位电压3.3V

DRV.Mode (0x07);//设置自动校准模式
DRV.GO ();//开始校准
while (bitRead (drv.readDRV2605L (GO_REG)、0));//等待 GO 位清零
bool calibOK = bitRead (drv.readDRV2605L (STATUS_REG)、3);

if (!calibOK){
serial.println ("校准成功。");
}否则{
serial.println ("校准失败");//这是我获得的输出


DRV.cntrl2 (0x75);//设置单向模式
DRV.cntrl3 (0x88);//设置闭环模式
DRV.Mode (0x05);//mode RTP
DRV.RTP (127);

两个主要问题:

1 -自动校准始终失败

2 - PWM 输出为50%、但似乎有另一个信号重叠。 (请参阅图片 PWM_示 波器)  

感谢你的帮助

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

    这些迹线是否在+/-? 如果您处于 ERM 模式、则一个输出将处于~1%占空比、这看起来像底部信号、另一个输出将处于转换为您设置的额定电压的任何占空比。
    我已联系 Precision Microdrives、询问该电机是否具有任何集成电子器件。 我过去看到这是某些 ERM 的一个问题。

    如何安装电机? 为了使来自 ERM 的 BEMF 信号稳定、应该有一个稳定的机械接地。 这通常意味着将 ERM 安装到~50g 质量(或更重)、然后执行校准。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我将示波器的接地端放置到 OUT -加号放置到 OUT+、这是我获得的输出。

    我不明白为什么一个输出应该为1%占空比、而另一个输出应该设置为占空比(这里接近50%)。 不应该在 GND 端输出、在 PWM 50%占空比时输出+? 我将我的电机连接到 OUT-和 OUT+。 是这样吗?

    电机受到机械约束。

    感谢您的帮助、

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

    您好、Zeid、

    很抱歉造成混淆。 这不是连接示波器的正确方法。 您应该将每个探针从 OUT+连接到 GND、将 OUT-连接到 GND、然后使用数学函数执行 OUT+- OUT-。
    有特殊的差分探头、可以跨接 OUT+/-进行连接、但不应将探头 GND 节点连接到输出端。

    我的错误是、一个输出在驱动阶段将完全关闭、另一个输出将是相应的占空比。 但是、当器件检测到 BEMF 信号时、您将在波形的闭环部分看到两个输出上的脉冲。 ERM 模式下 BEMF 感应的间隔由 DRIVE_TIME 寄存器确定。 默认情况下、这只应每~4.8ms 发生一次。

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

    您好!

    感谢您的解释。

    是输出到 GND。 测量的频率为205Hz、为4.87ms。

    这是输出至 GND、但我放大了一个脉冲:

    这是 OUT+到 GND 的值、有时会有脉冲。

    BEMF 感应似乎正常工作。  

    我还进行了差分测量。 黄色 OUT+表示 GND、蓝色 OUT-表示 GND、红色表示两个信号之间的差异。 我期望 PWM 为49.8%、因为我在 RTP 寄存器中写入了127。 但是、我测量 的是52.42%。 这是因为自动校准失败了吗?

    最后但同样重要的是、如果我大幅缩小差分、我会看到:  

    为什么 PWM 在一段时间内突然变为负?

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

    PWM 占空比不应导致校准故障。
    这些波形在最后一个波形之前看起来是正确的。 该器件看起来像是切换到 LRA 模式并驱动交流信号。 是否还有其他 I2C 写入操作? 您能否发布完整波形以进行自动校准?
    典型的 ERM 自动校准将驱动两个不同的电平:第一个是过驱、第二个更接近额定电压。 不应存在任何负电压。
    当您播放波形时、会出现负电压、以便更快地停止 ERM。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    没有写入其他 I2C 信号。 运行的代码是我放入第一个帖子中的代码(loop()为空)。

    这是校准的波形。 我将代码的最后一行更改为 drv.rtp (0):

    1Div = 2V。 时间以秒为单位。


    我发现、成功校准的一种方法是降低线 drv.ratmolt (0x8E);并将其更改为最大 drv.ratmolt (0x75);

    有3.3V 电压进入驱动器、电机的额定电压为3V。 根据数据表、要执行的计算为:

    对于3V 的额定电压、该寄存器应设置为141.64。 我选择0x8E = 142、但实际工作值为0x75 = 117、根据公式、该值仅对应2.47V。

    这是否意味着由于校准、我的电机将以较低的电压运行?

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

    电机可能没有足够的余量来使用3.3V 电源轨以3V 电压驱动 ERM (通常余量为~0.4V)。 因此、它可能永远不会达到校准水平、从而导致校准失败。 您能否尝试增大电源电压以查看问题是否出在这里?

    是的、如果您在2.47V 下校准电机、它将在100% RTP 模式下以2.47V 的电压驱动。 此外、如果您使用单向模式、则 RTP 模式中的最大输出 将为0xFF 或255 (数据表中的图27)。

    您的计算似乎正确。 供参考、我们提供 一个工具来简化寄存器设置。 下面是典型的 ERM 校准图像;您可以看到过驱电压和两个电压电平。

    很难判断在校准结束后附加 RTP (0)的波形会发生什么情况。

    此外、我还听说过精密微驱动器、该 ERM 应与 DRV2605兼容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 我尝试使用5V 电源和5V I2C。 在额定电压为0x8E 的良好值下、校准成功。
    • 我似乎不再遇到切换至 LRA 模式和具有负极部分的问题。

    使用3V 电源时(校准失败):

    使用5V (校准成功):

    这解决了我的所有问题。

    非常感谢 Kelly Griffin!