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: Unable to drive motor after startup sequence and EN high

Part Number: DRV8244-Q1
Other Parts Discussed in Thread: DRV8244H-Q1EVM

I have been trying to get the DRV8244HQRYJRQ1 motor driver chip working with our current PCB design and the motor driver attached to it. I have the evaluation board which when I connect the motor to and power it, I am able to control the motor with the GUI provided by TI. So I am able to confirm that the motor works.

When I try to interface it with our PCB design, I take my MCU (MSP430FR2433IRGET) and program the startup sequence into it as defined in the documentation. I pulse the sleep line, and the nFault and nSleep both go high which is expected. I then push EN pin HIGH and would expect the motor to start spinning, however it does not. I'm kind of stuck on what to do next here as I feel I have done all I can and am really not sure what test next.

The desired configuration of the device is:
MODE: Level 1

SR: Level 1

DIAG: Level 1

IPROPI: 510 ohms in parallel with 100nF capacitor for 21 amp max current

ITRIP: Level 1

Scope output:

Circuit (Note: R21, R22, R23 are NOT placed on the circuit):

  • Hi Cameron,

    I do not see any issues with the schematic. Can you please confirm DRVOFF pin = 0V for the output bridge to be enabled? 

    Regards, Murugavel

  • Hi Murugavel,

    Yes the DRVOFF pin is 0v. I even tried shorting it to ground while EN was high to make sure. Still no drive. I'll check the IO's against that table when I am back in the office.

    Thanks.

  • Hi Cameron,

    Thanks for the confirmation. Also please try pulsing nSLEEP after tREADY (specified in the datasheet) as shown in the below snippet. Please follow the timings mentioned.

    If it still does not work please try with another device. Do you have a DRV8244H-Q1EVM with you?

    Regards, Murugavel

  • Hi 

    I found a couple of bugs relating to the timing of the startup sequence. I've since fixed that and am able to start the drive chip, however for some reason (which I am trying to figure out now) the OUT1 and OUT2 lines both go high as soon as I complete the reset pulse.

    According to that PH/EN table, the reason for OUT1 and OUT2 being both high is if ITRIP has been triggered. I'm not sure how this is the case when ITRIP has been disabled on my board with line floating from the drive chip. When I probe the ITRIP and SR lines, I can see 6V on my multimeter. And for clarity, nFAULT and nSLEEP are both high, and I have tried toggling the PH line as well but no luck.

    and yes we have a EVM board, but something shorted out on it so we've ordered a replacement micro to swap out on the board before using it again.

  • Hi Cameron,

    Thanks for the update. I'm glad you're able to start the driver now. 

    You said "however for some reason (which I am trying to figure out now) the OUT1 and OUT2 lines both go high as soon as I complete the reset pulse". I am assuming when you completed the reset pulse EN pin was logic low. As shown in the table both OUT1 and OUT2 will go high, across the load the output is zero. So if EN was = 0 this is expected behavior for default state. The current sense is available only with the HS FET. 

    Now to drive the motor one of LS FET would be turned on depending on the direction required based on the PH input.  

    Regards, Murugavel

  • Hi 

    I see. I just tried asserting EN = 1 before doing the reset pulse but al still getting OUT1 and OUT2 high (16v8 from PSU). Here is my main functions start sequence. I begin by setting EN = 1, and /SLEEP = 1. then run some delays for tWakeUp, tCom, and tReady. Then I execute the reset pulse with a 10us delay.

    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
        }
    }

    In my debugger as well with the code paused, I was turning the EN, PH, and DRVOFF lines on and off but could not observe anything on the motor side. Toggling the DRVOFF pin drives the OUT1 and OUT2 voltages to 0, and re-enabling drives then to 16v8.

  • Hi Cameron,

    I'll check with my EVM tomorrow with similar input conditions and give you an update tomorrow. Thanks.

    Regards, Murugavel

  • Hi Cameron,

    I got a chance to check with my EVM. When DRVOFF = 1 both OUT1 and OUT2 are close to 0 V immediately after a wakeup, actually measured about 0.39 V. When nSLEEP = 0, the two outputs read 0 V. After waking up with DRVOFF = 0 both outputs are at VM voltage level as expected when EN = 0. When EN = 1 one of the outputs is VM voltage and the other at 0 V with PH = 0. When PH = 1 the output status on both outputs flipped as expected. 

    BTW to clear a fault condition nSLEEP pulse must be tRESET max and tSLEEP min. Based on the datasheet specs this is between 20 and 40 us. A 30 us pulse would do a clear fault without resetting any other logic in the device.

    Regards, Murugavel

  • Hi ,

    Thank you for the advice on the sleep pulse. I've since changed that to a 30us pulse, however when setting DRVOFF = 0 and EN = 1, OUT1 and OUT2 still output 16.8V each.

    I get practically the same results as you up until driving the EN line to 1.

    With nSleep = 0: OUT1 and OUT2 = 0V

    With DRVOFF = 1: OUT1 and OUT2 = 0.38V

    With DRVOFF = 0 EN = 0, OUT1 and OUT2 = VM

    With DRVOFF = 0 EN = 1, OUT1 and OUT2 = VM (do not flip)

    Here is my scope output:

    YELLOW = nSLEEP

    GREEN = nFAULT

    Wakeup:

    tWakeup = 10us typical

    tCom = 133us

    tReset:

    tReset pulse = ~30us

  • Hi Cameron,

    I suspect the device is not in PH/EN mode or somehow damaged. In your schematic I noticed MODE pin is connected with a 0 ohms to GND. Can you double check this to be 0 ohms ( it must be 10 ohms or less). 

    Regards, Murugavel

  • Hi Murugavel,

    Yes, confirmed that the MODE pin is connected to a 0R0 resistor. 

    At this stage we're just going to wait for the replacement micro's for the eval kit and test there again, and then look at swapping the drive chip out.

  • Cameron,

    Thank you for the update.  Murugavel is out for today, so responding on his behalf.  I will close this for now, but please just repost with any update and it will open back up.

    Regards,

    Ryan