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.

DRV8837: Does it make sense to apply a PWM to the sleep pin?

Part Number: DRV8837

Hi E2E

We have a product that uses a DRV8837 (part marking looks like "837 OAI CHJF") to control a DC motor.

I've taken over the project and am trying to understand how the motor control was implemented.

The data sheet says "Standard PWM Interface (IN1/IN2)", so I assume it's some kind of an H-Bridge standard, but I cannot find anything about it on line or on your site.


For our project, an STM32F103 microcontroller controls the motor by applying a ramping PWM up to 100% to IN1 and 0V to IN2 to move CW; the opposite to move CCW.

Would there ever be a reason to apply a PWM to both IN1 and IN2 at the same time?

When stopping, both IN1 and IN2 are brought high for a short time and then brought low and I understand now that this is a "brake sequence".

The thing that I'm still struggling with is that there is a PWM being applied to the sleep pin also.

The data sheet does not mention anything about doing this, and there are no comments in the code explaining why this was done.

Does it make any sense to do this?

Is there an application note or are on your site where I can detailed explanation, various scenarios that demonstrate how to control the DRV8837?

I appreciate any help you can provide!

Thanks,

Gordon S.

  • Gordon,

    Please see the following video:

    https://training.ti.com/motor-interfaces-and-pwm-frequencies

    Also, in section 7.3 of the datasheet there is a truth table.  I would recommend operating the motor in either a drive state (CW or CCW) or a BRAKE state to maintain maximum torque.  This would mean that one input can be held at a DC level of "logic high" and the other input is PWM controlled.  

    I see absolutely no reason why the nSLEEP pin would be PWM'ed.  This would result in long wake up times and a free-wheeling operation of the motor while in sleep that would result in loss of torque....similar to the "0 0" state on the inputs which we call "COAST".  Please reference the truth table.  

    Finally, we have an EVM for the device that is $25 that can be used as a reference.  If you don't want to pay that, reference code on the same link below is available and can be used as a model.  

    https://www.ti.com/tool/DRV8837EVM

    I hope all this helps move you in the right direction...pun intended. Slight smile

    Regards,

    Ryan

  • Hi Ryan,

    Thank you very much for your fast response!  The video was very informative, and I realize that I really need to purchase an EVM and tinker with this a bit.

    My understanding from some project notes is that the sleep pin was toggled in an effort to maximize the torque.

    You said: "one input can be held at a DC level of "logic high" and the other input is PWM controlled."

    If we have a heavy load and want to start the motor with a maximum amount of torque, I understand from what you said, that we should start with both pins at logic 1, and decrease the PWM on one of them from 100% towards 0 to increase the speed, correct?

    Thanks again!

    Gordon.

  • Gordon,

    Per your last sentence, your understanding is exactly correct.  

    Toggling nSLEEP pin has the exact opposite effect of maximizing torque as the outputs are HIZ in sleep and current will decay quickly thru the internal diodes of the FETs.  This is the same as COAST.  

    Regards,

    Ryan