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.

[参考译文] DRV8244-Q1:启动序列和 EN 高电平后无法驱动电机

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1300837/drv8244-q1-unable-to-drive-motor-after-startup-sequence-and-en-high

器件型号:DRV8244-Q1
主题中讨论的其他器件:DRV8244H-Q1EVM

我一直在尝试让 DRV8244HQRYJRQ1电机驱动器芯片与我们当前的 PCB 设计以及与其相连的电机驱动器一同工作。 我有一块评估板、当我连接电机并为其供电时、可以使用 TI 提供的 GUI 控制电机。 因此我能够确认电机工作正常。

当我尝试将其与我们的 PCB 设计连接时、我获取我的 MCU (MSP430FR2433IRGET)并按照文档中的定义将启动序列编程到其中。 我对睡眠线施加脉冲、并且 nFault 和 nSleep 都变为高电平、这是预期的结果。 然后、我将 EN 引脚推至高电平、并期望电机开始旋转、但事实并非如此。 我有点坚持下一步该做什么、因为我觉得我已经竭尽所能了、而且我真的不确定下一步该做什么测试。

该器件的理想配置为:
模式:1级

SR:1级

DIAG:1级

IPROPI:510欧姆与100nF 电容器并联、最大电流为21安

ITRIP:1级

示波器输出:

电路 (注意:R21、R22、R23不放置在电路上)

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

    您好、 Cameron、

    我认为原理图没有任何问题。 您能否确认 DRVOFF 引脚= 0V、以启用输出电桥?  

    此致、Murugavel

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

    尊敬的 Murugavel:

    是的、DRVOFF 引脚为0v。 我甚至尝试在 EN 为高电平时将其接地短路、以确保准确无误。 仍然没有驱动器。 当我回到办公室时、我将根据该表格查看 IO。

    谢谢。

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

    您好、Cameron、

    感谢您的确认。 另请尝试在 tREADY (数据表中指定)之后对 nSLEEP 脉冲、如以下片段所示。 请按照上面提到的时间进行操作。

    如果仍然无法正常工作、请尝试使用另一个器件。 您是否已准备好 DRV8244H-Q1EVM?

    此致、Murugavel

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

    尊敬的 :  

    我发现了几个与启动序列时序有关的错误。 此后我修复了该错误并能够启动驱动芯片、但出于某种原因(我现在要尝试了解)、我一完成复位脉冲、OUT1和 OUT2线路都将变为高电平。

    根据 PH/EN 表、OUT1和 OUT2都为高电平的原因是已触发 ITRIP。 我不确定在我的电路板上禁用 ITRIP 并使线路从驱动芯片悬空时的情况如何。 当我探测 ITRIP 和 SR 线路时、可以在万用表上看到6V。 为清楚起见、nFAULT 和 nSLEEP 均为高电平、我也尝试切换 PH 线路、但没成功。

    是的、我们有一个 EVM 板、但它上面有一个短路、因此我们已经订购了一个替换微控制器以在板上换掉、然后再使用它。

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

    您好、Cameron、

    感谢您的更新。 我很高兴您现在能够启动该驱动程序。  

    您说"但出于某种原因(我现在正在尝试确定)、我一完成复位脉冲、OUT1和 OUT2线路都将变为高电平"。 我假设您完成复位脉冲 EN 引脚为逻辑低电平。 如表中所示、OUT1和 OUT2都将变为高电平、输出在负载两端为零。 因此、如果 EN 为= 0、这是默认状态下的预期行为。 电流检测仅适用于 HS FET。  

    现在、若要驱动电机、LS FET 中的一个将会打开、具体取决于 PH 输入所需的方向。   

    此致、Murugavel

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

    尊敬的 :  

    我明白了。 我只是在执行复位脉冲之前尝试将 EN = 1置为有效、但仍然使 OUT1和 OUT2处于高电平(PSU 的16v8)。 这是我的主要函数启动顺序。 我首先设置 EN = 1和/sleep = 1。 然后针对 tWakeUp、TCOM 和 tReady 运行一些延迟。 然后、我以10us 的延迟执行复位脉冲。

    void main(int argc, char* argv)
    {
        __disable_interrupt();
    
        WDT_A_hold(WDT_A_BASE);                // Stop watchdog timer
    
        PMM_unlockLPM5();                       // Disable the GPIO power-on default high-impedance mode
                                                // to activate 1previously configured port settings
        /*  HARDWARE INIT   */
        PortSetup();                            // Configure GPIO
        XTAL_init();                            // Configure clock signals
    
        // init seq
        DRIVE_EN_HIGH();                        // EN HIGH,     GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN3);
        DRIVE_DFRV_OFF_LOW();                   // DRVOFF LOW,  GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN0);
    
        DRIVE_SLEEP_DISABLE();                  // WAKE MODULE - 1ms = 16,000 (LO->HI), GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN1)
    
        __delay_cycles(160);                    // tWakeUp = 10us
        __delay_cycles(6400);                   // tCom = 400us
        __delay_cycles(16000);                  // tReady = 1ms
    
        // RESET PULSE
        DRIVE_SLEEP_ENABLE();                   // RESET PULSE START, GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN1)
        __delay_cycles(160);                    // HOLD RESET LOW FOR 10us
        DRIVE_SLEEP_DISABLE();                  // GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN1)
    
        // __enable_interrupt();
    
            while(1)
        {
            // do stuff
        }
    }

    在我的调试器中、代码暂停时、我正在打开和关闭 EN、PH 和 DRVOFF 线路、但无法观察到电机侧的任何情况。 切换 DRVOFF 引脚会将 OUT1和 OUT2电压驱动为0、然后重新启用驱动器至16v8。

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

    您好、Cameron、

    我将在明天以类似的输入条件使用我的 EVM 进行检查、并在明天提供更新。 谢谢。

    此致、Murugavel

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

    您好、Cameron、

    我有机会使用我的 EVM 进行检查。 当 DRVOFF = 1时、OUT1和 OUT2在唤醒后立即接近0V、实际测量值约为0.39V。当 nSLEEP = 0时、 两个输出读为0V。在 DRVOFF = 0时唤醒后、两个输出都处于 VM 电压电平、这与 EN = 0时的预期情况相同。 当 EN = 1时、其中一个输出为 VM 电压、另一个输出为0V、PH = 0。 当 PH = 1时、两个输出的输出状态按预期翻转。  

    要清除故障条件、BTW nSLEEP 脉冲必须为 tRESET max 和 tSLEEP min。 根据数据表规格、这在20us 到40us 之间。 30us 脉冲将执行清除故障、而不重置器件中的任何其他逻辑。

    此致、Murugavel

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

    尊敬的

    感谢您关于睡眠脉冲的建议。 此后我已将其更改为30us 脉冲、但当设置 DRVOFF = 0和 EN = 1时、OUT1和 OUT2仍各自输出16.8V。

    在将 EN 线路驱动为1之前、我得到的结果几乎与您相同。

    当 nSleep = 0时:OUT1和 OUT2 = 0V

    当 DRVOFF = 1时:OUT1和 OUT2 = 0.38V

    当 DRVOFF = 0时、EN = 0、OUT1和 OUT2 = VM

    当 DRVOFF = 0 EN = 1时、OUT1和 OUT2 = VM (不翻转)

    以下是示波器输出:

    黄色= nSLEEP

    绿色= nFAULT

    唤醒:

    tWakeup = 10us (典型值)

    TCOM = 133us

    tReset:

    tRESET 脉冲=~30us

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

    您好、Cameron、

    我怀疑器件未处于 PH/EN 模式或因某种原因损坏。 在原理图中、我注意到 MODE 引脚通过0欧姆接地。 您是否可以再次将其检查为0欧姆(必须为10欧姆或更低)。  

    此致、Murugavel

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

    尊敬的 Murugavel:

    是的、确认 MODE 引脚连接到0R0电阻器。  

    在此阶段、我们将等待评估套件的替换微控制器并再次在那里进行测试、然后查看是否交换驱动器芯片。

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

    Cameron、

    感谢您的更新。  穆鲁加维尔今天出去,所以代表他回答。  现在我将关闭此文件、但请重新发布任何更新、它将打开备份文件。

    此致、

    瑞安