Part Number: DRV8834
I am facing the following issue with DRV8834
We are driving a stepper motor with it,
The inputs are :
Indexer Mode with M0, M1 = 0
STEP pulses: 15 PWM pulses, 208Hz frequency,
VM = 3.7 ~ 4.2V
Enable pins driven low during the PWM inputs.
I measured the output waveform across Aout1 and Aout2 and i found one spike after all counts it makes an extra count for my stepper motor.
Please suggest a way to remove this spike.
Your time is highly appreciated.
Please let me know if you need any other information.
Adecay and Bdecay pin is connected to ground by 51kohm resistor. So, the decay mode should be slow decay (both low side FETs are on). That can make the winding current slowly drop to zero. But, if Enable pins turns off the low side FET, the winding current will go through the high side FET's body diode and push the xOUT high. That is what you see in your waveform.
To avoid this issue, you could hold enable signal a little bit longer until the winding current drops. Or, would you try mix or fast decay to make the winding current drop faster? So, you won't need to hold the enable signal too long.
Motor Drive Solutions
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to Wang5577:
Thank you for your valuable reply, I appreciate your time.
My further questions are,
1) Can the spike in the waveform be a possible reason to miss steps of stepper motor in my application?
2) Also if we keep the same firmware and same hardware with different-different motors then the results vary(means in some cases we are getting steps missing problem and in some case we are not), is it because of different motors?
3) If we use a simple MOSFET circuit then there is no problem. please find this circuit below:
In the DRV8834 circuit,
We don't need the mix decay mode as we require the same speed to run a stepper motor.So kindly suggest the resistor values to use fast decay mode suitable to our stepper motor.
Please find the attached stepper motor datasheet and kindly verify our schematic according to the same.
The major parameters are:
Operating voltage = 3.6V
Inductance per phase = 2.7mH
Resistance per phase = 7.5 E
Power consumption = 3.46W
I appreciate your valuable help.
In reply to MIT SHAH:
Please find the motor 20DAM20D10-K (PS)_C.PDFdatasheet here.
Here are some more observations as per your suggestion.
- We added more time for Enable/disble pin around 100 ms but still we are getting spike after 100 ms of time.
- Then we tried to keep Enable/disable pin as low and checked Waveforms , we found that spike is still there. Please check below image for your reference.
I didn't do any changes in hardware side right now. I have added code for your reference. Please suggest to me what I can do for next.stepper_motor.c
It would be highly appreciated.
Adding some more observations:
We have configured the EN pin low and SLEEP pin high by default at the initiation of code as shown below:
HAL_GPIO_WritePin(GPIOC, ENDS_PIN_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(SLEEP_PIN_GPIO_Port, SLEEP_PIN_Pin, GPIO_PIN_SET);
By doing it the spike is removed and we are not getting problem of missing steps now but the motor is getting very hot and consuming more power.
Our application is based on battery so it is also needed to reduce power consumption so please suggest regarding the same.
"We added more time for Enable/disble pin around 100 ms but still we are getting spike after 100 ms of time."
If DRV8834 is kept in slow decay (ADECAY and BDECAY) at end of step, we should not see the spike because two low side FETs are on.
Please monitor the STEP pin, Enable pin, ADECAY pin and AOUTx on same scope picture.
Thank you for the inputs.
Please give inputs on the power consumption issue as well as it resolves my steps missing an issue and we are stuck badly.
CONFIG pin is connected to VINT: Logic high to put the device in indexer mode. In indexer mode, ENABLE pin Logic low enables all outputs.
Is the above setting what you want? In indexer mode, ENABLE pin Logic low enables all outputs. That give inputs the power consumption. If we want to reduce the input current, we should set enable pin high or pull nSLEEP pin low.
"To avoid this issue, you could hold enable signal a little bit longer until the winding current drops." I mean hold enable pin logic low a little bit longer after STEP pulse is finished. But, in your 2nd waveform, I saw more STEP pulses. That may not give slow decay after STEP pulses.
Thank you for your response.
We held the enable pin low a little longer after the step pulses but the spike is now coming when i pull enable high.
The sleep pin is high continuously during this.
Please find waveform for your reference.
Please help us on this.
We will share the waveforms of STEP pin, Enable pin, ADECAY pin and AOUTx soon.
When we stop sending the step signal to the motor drive and let the winding current to decay, the winding current won't quickly drop with slow decay mode (both low side FET is on). When all FET's are off, the winding inductor energy needs sending back to input capacitors. That is why you see the output voltage is up. It should be just one body diode voltage higher than the input voltage.
In such case, we typically add enough input capacitance (100uF or 200uF) to absorb this energy.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.