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.

DRV8824: Reducing the motor winding current

Part Number: DRV8824
Other Parts Discussed in Thread: DRV8825,

Hi Team,

Can you please help us with our customer's inquiry below.

I am working on a project where the driver DRV8824 and DRV8825 are used to control stepper motors.
Our application requires to reduce the motor windings current value (this is the holding current) when the STEP signal stops (no more rising edges). Therefore, after the STEP signal stops, we provide a xVref_hold smaller than the xVref_run. We expected to have the winding currents reduced in the same proportion, but this does not happen: the winding currents “freeze” at the levels corresponding to the xVref_run (the voltage applied before the STEP signal stopped).

We need your help to understand this behavior and potential solutions. We do not have control or early warning on the STEP signal stoppage

Regards,

Danilo

  • Hey Danilo, sorry for my slow response.  

    Does the same thing happen if you use different decay modes?  I wouldn't expect that to change anything, but something to try.  I also wonder if momentarily toggling the DIR pin could trigger the device to check the VREF value and if toggling DIR after steps stop could be a (not ideal) solution for you.  

    It looks like the DRV8824 chip was released in 2014, I wonder if a more recent chip would have this problem solved.  I recommend looking at the DRV8434A

    Let me reach out to my team and see if they have any further thoughts on if this is expected behavior of the DRV8824/25 or not.  

    Cheers,

    Jacob

  • Hello,

    STEP and DIR signals are coming from the system. The board doesn’t have any mean to predict when STEP will stop coming.

    Here is a solution that we implemented, and it seems that is working.

    We are detecting the moment when STEP stop coming and issue a short nRESET. The driver goes “home” (45deg) and takes as DAC reference the lower Vref – causing lower winding holding current. Right now, the nRESET is 3ms long. This could be a problem, since during nRESET = low, the driver is disabled and there is no holding current.

    Please advise what is the minimum time nRESET need to be low in order to be effective. This timing is not documented in the data sheet.

    Thanks,

    Adrian

  • Hey Adrian,

    50us should be long enough to hold nRESET low to overcome the deglitcher. Then it should take about 20us for the outputs to enable after the release.  So looking at a total time of 50-100us.  

    Cheers,

    Jacob

  • We are required to provide a "holding" current (0.8A) when the motor doesn't run (the STEP pulses are not present). The microstepping mode is1/4. To minimize motor vibration we are using the mixed decay mode.  

  • We are required to provide a "holding" current (0.8A) when the motor doesn't run (the STEP pulses are not present). The microstepping mode is1/4. To minimize the motor vibrations, we are using the mixed decay mode.  Here are several issues:

    1. We found out that when Vref changes in the absence of STEP pulses the motor winding current doesn't change. To resolve this we are applying a short nRESET that that is bringing the driver at 45deg (electrical) and it seems that the resulting current amplitude is 0.8A (the currents in A and B  windings are about 0.57A). Please confirm that we are understanding this correctly.

    2. When motor stops as described  above, it is vibrating and produces unacceptable noise. We found out that if the motor stop at an electrical angle  where one winding current is 0 (the other is max) the motor doesn't vibrate. 2 STEP pulses (5us High, 5us Low each - this is 100KHz fast, we believe that the motor will not rotate) are bringing the motor at 90deg (electrical). Here we have the desired situation; one winding current is 0 (the other is max) and the motor doesn't vibrate. We pass system preliminary tests with these settings.

    With the settings described at 2, we noticed that the resulting holding current is 0.8A (per the lower Vref) only for a short period (less than 1.5ms); then, the current oscillates and stabilizes at about 1A. we experimented with smaller Vref values and determined that the 1A is independent of the Vref value. Also, we used a different model motor and got a higher holding current for the same Vref. For the new motor the running current is correct: 1A according to the Vref=1.8V, Rsense=0.36ohm.

    Please help us to understand what is happening and advise a solution.

    Thanks,

    Adrian

  • Hey Adrian, thanks for the detailed writeup of behavior!

    Can you explain why you want to do this?  Is it just to reduce power consumption or heat when motor is stopped?  Or is this a self-implementation of stall detection or coasting?  

    If possible, could you post an oscilloscope shot of the behavior when the motor stops?  The vibration is very curious, wondering what the motor driver is doing at that time.  

    Lastly, can you post a schematic diagram so we can look at it and see if there is anything concerning in circuit schematic that could be affecting this?  

    Regards,

    Jacob

  • We want to reduce the windings' current to reduce the heat when motor is stopped. Most of the time the motors are stop and they must be held precisely in the stop position (the position caused by the last  STEP pulse). That's why we need the holding current. 

    Would be possible to arrange a remote meting (MS Teams) to discuss this issue?

  • Thanks Adrian, makes sense.  

    Can you post or privately send me your schematics and some oscilloscope screenshots of the event and behavior?  

    Regards,

    Jacob Thompson