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.

DRV8818: Dears ,My customer use drv8818 as stepper motor driver , Positive and inversion , there is a error occasionally , Set the driection then give the DRV8818 PWM ,delay 20ms , Set the opposite driection then give the DRV8818 PWM , in this case ,the

Part Number: DRV8818

Dears ,My customer use drv8818 as stepper motor driver , Positive and inversion , 
there is a error occasionally ,  Set the driection then give the DRV8818  PWM ,delay 20ms , Set the opposite driection then give the DRV8818  PWM , 
in this case ,the motor will be error :could not change the driection some times, The motor run time is 13ms , 
when delay time  prolong 50ms ,the error less ,but still happen ,the applicatin need 20ms ,please help to check the sch ,if any wrong there ? many thanks ~

  • Hi Andrew,

    The best way to understand what is happening to the motor is to take oscilloscope pictures of the with a current probe to see the current from one of the AOUT or BOUT pins. Also, check the current waveform where the motor runs normally and does not change direction. Then, start to change direction again and see how this impacts the current in the coils.

    If you are switching directions every 20 ms, that may be too fast for the motor and its load to respond. You may also not have enough torque for quick direction changes. To increase torque in your stepper motor, try increasing the voltage on VREF to increase the full-scale current level of your stepper currents.
  • Hi James,

    I am also looking into this issue. As i known the stepper was operated in this mode: each time when the motor needs to be active the MCU will: 1. Pull DIR high, send 40 pulses to STEP (twh(step) ~ 50us, minimum period ~ 200us), and wait 50ms. 2. Pull DIR low, and send 40 pulses to STEP pin. See below for detailed operation waveform, in which the red is DIR, yellow is motor current, and green is STEP. After this kind of operation, as expected, the motor should back to the start point. However, the problem is the motor cannot always turn back to start point. Below waveform shows the condition in which the motor did not turin back.

    As my understanding the motor current should reverses its sequence as DIR is reversed. However below picture shows as if the current sequence does not change as DIR toggled. Is it the reason why the motor did not turn back?

    However, more strangely, when we observe the working waveform when the motor action properly (turn back to start point), we observed similar waveform as below. You can find the current sequence does not change as DIR toggled as before, while the motor direction is indeed changed this time. Why? Why the current sequence does not change as DIR?

    Thank you,

    John

  • Hi James,

    This issue is not closed yet. Could you please give us more support?

    Thank you,
    John
  • John and Andrew,

    Thank you for the further information, and I apologize for the delay.

    The schematic indicates you are using 1/8 microstepping. When I compare your waveforms, it looks like the current level during the 50-ms wait time is different between the two cases. The position of the rotor and the final current level at the end of the set of pulses may impact whether the motor reverses or not.

    Also, the current trace in the waveforms indicates to me that your step rate may be way too high for your motor. I would expect to see something more like Figure 10 in the DRV8818 datasheet. The current waveforms look distorted, so I believe that the step rate is too high for the motor to respond. You may have better success with full stepping and fewer step pulses. This will give the coils more time to charge and the rotor more time to move.