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.

DRV8462: achieving a current sine wave approaching 2000RPM

Part Number: DRV8462
Other Parts Discussed in Thread: , DRV8962

Hi , in a prior thread i was attempting to create a sinusoidal current wave with the setting you had shared.  in using the eval board (full step at 6667 steps, using 1/256 automicrostepping), i was not able to create a wave that looked nearly as clean (sine wave) as what you had shown in the past thread.  you had emphasized that the acceleration needed to be linear.  you had also mentioned that you had removed a jumper to input the pulses separately.  i was confused as full step/auto-microstep allows the GUI to input steps.  you had mentioned that there should be no difference.  would you explain again why you had removed the jumper and input pulses to the eval board?  i used this motor (for example) and was not able to run this to 2000rpm. https://us.nanotec.com/products/375-st4118l3004-a .  i'm not sure if i should try to snippet from the previous thread but i will and moderators can remove if needed.

thanks Murugavel.  

  • (i'm not sure why this post looks corrupt but i'll post my message again)

    Hi , in a prior thread i was attempting to create a sinusoidal current wave with the setting you had shared.  in using the eval board (full step at 6667 steps, using 1/256 automicrostepping), i was not able to create a wave that looked nearly as clean (sine wave) as what you had shown in the past thread.  you had emphasized that the acceleration needed to be linear.  you had also mentioned that you had removed a jumper to input the pulses separately.  i was confused as full step/auto-microstep allows the GUI to input steps.  you had mentioned that there should be no difference.  would you explain again why you had removed the jumper and input pulses to the eval board?  i used this motor (for example) and was not able to run this to 2000rpm. https://us.nanotec.com/products/375-st4118l3004-a .  i'm not sure if i should try to snippet from the previous threa

    d but i will and moderators can remove if needed.

    thanks Murugavel.

  • (here is the snippet from the prior thread)

    • TI__Expert 5585 points

      Hi Chris,

      The current waveforms could differ due to differences in the decay modes used but if the motor is capable of delivering the necessary torque at the target velocity with the given supply voltage and target, IFS it should spin with high RPM in the range you highlighted. I have a NEMA17 Moons' stepper with me, https://www.moonsindustries.com/p/am-series-standard-hybrid-stepper-motors/am17hdb410-01n-000004611110011162. I connected this to the DRV8462EVM with the following settings. VM = 48V, IFS = 0.5A, 256 uSteps, STDD decay mode with default TOFF and no load. Below are the current waveforms at 500RPM, 1000RPM and 2000RPM. The EVM GUI cannot generate higher than 65535PPS. So I removed the jumper short for the STEP input at the header and input 3V external STEP input with a linear ramp for acceleration. Linear ramp acceleration is critical to achieve higher speeds else inertia will stall the motor.

      500 RPM:

      1000 RPM: (loading the stepper improves this waveform)

      2000 RPM:

      I could consistently run the motor at 2000 RPM with no issues. Whether you'd be able to achieve the same depends on your motor characteristics and acceleration profile. The DRV8462 is capable of driving the stepper I used for this test all the way to 2000 RPM with no issues. I did notice a resonance behavior around 1330 RPM which resulted in lower current amplitude but still generated enough torque. The reason for this is the back EMF amplitude and phase beating with the drive current waveform. When I loaded the motor there was improvement with this waveform at these specific speeds. 

      Like you mentioned sophisticated FOC type of stepper driver could get you better current waveforms throughout the speed range of your interest. Of course this would involve complex algorithm. For this purpose you should consider a driver device without the internal indexer. DRV8962, quad half-bridge driver would be a good candidate. Please refer to this E2E post, https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1250105/closed-loop-stepper-driver?tisearch=e2e-sitesearch&keymatch=DRV8962%2525252525252520stepper%2525252525252520motor%2525252525252520field%2525252525252520oriented%2525252525252520control#.

      I hope this helps. Thank you.

      Regards, Murugavel   

    • Prodigy 20 points

      Hi Murugavel, 

      Thanks for putting this last reply together, that helps to see another eval board run these waveforms (insert Roger Bannister effect).  With our prior testing, we've always run full-step (6667pps) and then used auto-microstepping 1/256 to perform 256 step rate @2000RPM.  Is there a performance difference in using auto-microstepping vs running a very fast step rate into the STEP input?  I believe we came across a max spec for 100Khz input to the STEP pin.  Would you mind further describing your setup for running 256uStep?

      I'm looking into the DRV8962 and have an eval board on the way, thanks for that lead.  if that allows for greater current control at a finer individual increment, i believe that's what we're looking for.  ideally, we'd like a driver that would handle the current feedback and run the PID loop based on our STEP input..but perhaps that's too much to ask for in a packaged driver?  for the DRV8962 it looks to also be new and i don't see anyone having stock.  we'll demo based on stock being fulfilled soon.

      Regarding your comment on 'loading' to improve the waveform, was that in code or mechanical load?

      Thanks again Murugavel.  You've been instrumental with your responses.

      TI__Expert 5585 points

      Hi Chris,

      You're welcome. You're correct. The maximum spec for fstep is indeed 100 kHz. You said "With our prior testing, we've always run full-step (6667pps) and then used auto-microstepping 1/256 to perform 256 step rate @2000RPM.". Yes this is correct approach. "Is there a performance difference in using auto-microstepping vs running a very fast step rate into the STEP input?". Performance will be identical.

      As I had the previous setup still at my lab I ran the EVM with the GUI settings as per the below screen shot. STDD decay mode was used. The performance was identical to my previous experiment.

         

      Here's the current waveform at 2000 RPM. 

      I hope you'll be able to work on your PID algorithm with the DRV8962. Yes these are recently released products. "Regarding your comment on 'loading' to improve the waveform, was that in code or mechanical load?". I referred to mechanical load.

      Could you please mark this post as resolved at your end? For future queries you can always post a new question with suitable subject title. I'm hoping the discussions we had in this post will be useful several other users of this forum. Thanks!

      Regards, Murugavel  



  • Hi Chris,

    Kindly ignore my comment on removing the jumper short and feeding an external STEP input. That was not needed. As well as STEP input exceeded its specification of 100 kHz in that exercise which I do not recommend using. Like I mentioned in my final post using auto microstepping with Full-step mode and 6667 PPS is the way to go, to achieve 2000 RPM using the DRV8462. I did mention this approach of using auto microstepping vs. using the 1/256 mode should work exactly the same way with no difference in performance in general (STEP input must be <= 100 kHz). I hope this makes sense.

    The motor I used for testing was a https://www.moonsindustries.com/p/am-series-standard-hybrid-stepper-motors/am17hdb410-01n-000004611110011162. If you look at the Torque Speed curve of this motor you'll notice it generated the rated torque at much lower current compared to the Nanotec motor you used for testing at 48 V. Also note, I set the current to 0.5A although the motor can support up to 1.8 A peak. This is because the back EMF generated at 2000 RPM is significant enough to reduce the available voltage across the phases A and B to the level where it won't be possible to drive > 0.5 A current through the coils. Another solution to overcome this issue would be to use a higher motor supply voltage like 55 or 60V. 

    Regards, Murugavel  

  • Hi Murugavel, 

    thanks for confirming your setup.  that answers any doubt of our scenarios being different.  since we've not created the same current waveforms, i'm left to order a motor from China.  it'll arrive in 2 weeks and i'll set it up as you noted.  i'll expect to see the same and if i don't i'll have to look into other reason for why the eval boards would output different measurements.  i'm really looking to see that we can create a sine wave at those higher rpms.  

    i did compare the motor torque curves and i would've thought that our 3A motor would've faired well since it's resistance was 0.63Ohms and inductance was 1.03mH...even as i moved the current from 0.5A to rated current, i didn't see promising sinusoidal results.  over this course, i've tried so many different motors at various voltages and current levels with different inductances and i've not created something as clean as you show.  so, i'll have to wait for this moons motor...time will tell.  

    thanks for the continued help.  if anyone has any ideas to share, i'm very open to what you have.

  • Hi Chris,

    Thanks for the update. I have to mention the waveform I got for the Moons motor was not perfect either at 2000 RPM. However I was able to achieve 2000 RPM operation using the Moons stepper with reasonable torque output. The back EMF constant of the motors also contribute to current distortion at high RPMs. The higher the back EMF the worse its effect at high RPMs.

    May I ask what is the end application that requires this high RPM? In my experience with industrial motor drives at such high RPMs a BLDC motor with encoders would be the right solution for reliable position control. Steppers are designed for primarily open loop position control usually at few hundreds of RPM. 

    Regards, Murugavel

  • Hi Murugavel, 

    Understood that the waveform isn't ideal although at least by the image you shared, your test bench scenario sounds like it ran better.  What i'll share below is the 3A, 70oz-in, 1uH motor.  The settings were the same although i wasn't able to achieve speed at 0.5A (3A vs 2A comparison).  I had to raise to 2A to be able to achieve 2000RPM at 1/256th step.  


    I then placed a 2A, 113oz-in motor on the output and ran at a current setting of 0.5A.  The result is below. 


    In both cases, I have to manually increment the target speed to 6667.  Typically, i can reach speed with the user settings up to about 4000 target speed.  After that, i have to incrementally change the target speed (4500, 5000, 5300, 5700, 6000, 6300, 6500, 6667)...not too strategic but i cannot place 6667 in the target speed and have the GUI ramp to that speed without stalling.  You had mentioned that it needs a linear acceleration ramp so this has me to believe that the GUI does not ramp in a linear fashion?

    To your last question, we know that the speeds i've been speaking of for some time are on the extreme use for a stepper.  Our company deploys stepper motors across our leased product and we have use cases where we run a stepper more like a bldc and choose so because the operation on the module is very case specific and we do not justify incorporating a different motor for the engineering, costing, inventory, customer support, etc. 

    What we are after though is a very clean sine wave for phase current throughout the speed range and we have certain module applications where we'll benefit with this clarity.  Good question though and i appreciate you asking.  

    For now, i ordered the Moons motor and will expect that in a couple of weeks...as well as a current probe that is greater than 4Mhz.  What's your opinion on being able to view the minute-waveform of a 1/256 step without being drowned out by noise?

    -cheers

  • Hi Chris,

    I appreciate you sharing these details. Thank you. 

    You said "After that, i have to incrementally change the target speed (4500, 5000, 5300, 5700, 6000, 6300, 6500, 6667)...not too strategic but i cannot place 6667 in the target speed and have the GUI ramp to that speed without stalling.  You had mentioned that it needs a linear acceleration ramp so this has me to believe that the GUI does not ramp in a linear fashion?". Indeed the GUI does a linear ramp. Speed is updated every 32 ms based on the acceleration parameter. The acceleration parameter in PPS /s can be set very low to achieve a profile similar to your manual profile setting. Perhaps an update within 32 ms was too quick for the motor you tested.

    "What we are after though is a very clean sine wave for phase current throughout the speed range" This is going to be a technical challenge at high RPM using conventional chopper regulated switching drives. This is going to be your trade-off between cost vs. performance.

    "as well as a current probe that is greater than 4Mhz.  What's your opinion on being able to view the minute-waveform of a 1/256 step without being drowned out by noise?". I'm using a 2.5 MHz current probe and I'm able to capture 256 ustep current waveform switching. The motor inductance is in the mH range so I do not expect super fast spikes being missed etc. You should be good with a 4 MHz current probe, 

    Regards, Murugavel 

  • UPDATE: we received the Moons motor in and did our testing.  I found that we can produce similar results to what you had Murugavel.  At 0.5A, we were able to produce a decent current sinewave at 2000RPM and were able to do so at lower speeds (500RPM, 1000RPM).  One thing I did notice with this motor, I was able to run to the target velocity of 2000RPM from standstill.  I've never been able to with any other motor I've tested so far.  I take that as a happenstance or combination of the parts used...it was pretty odd and I thought I found gold, but that feeling was short lived.

    I don't see us using this motor as I wasn't able to successfully run it at higher torque at speeds higher than a couple hundred RPM or so.  I would assume it relates to your comment of BackEmf and the build of the motor.  Through all of this testing I appreciate your input and help through this so far.  

    I think for our purpose and intent, we'll start development with the DRV8962EVAL and look to create firmware and a pcb design to follow.  I would see this thread as being closed.  

    Please offer any other input you may have, I'm always willing to learn and by far we've not figured this out yet.  We will keep (non-FOC) development in place with the DRV8462 and will learn as we go.  Any knowledge we learn that's applicable to the DRV8962 will be utilized.  *if anyone has a feeler for when the DRV8962 will be available for purchase in qty I'm eager to hear news.  Thanks!

  • Hi Chris,

    Thanks for the update and closing this thread. At 2000 RPM back EMF is the major deterrent. Not only to be able run without stalling but also to generate torque to address the work load. Motors with lower back EMF constant fare well. Else you have to drive the stepper with higher voltages such that there is sufficient voltage across the coils to overcome the back EMF. The DRV8462 allows up to 65 V. I have come across 100 V drives as well. In my experience I've had higher success rate using higher voltage vs. going for an FOC. The cost of FOC might get you close to using a BLDC.

    That said you can try adding series resistances to each phase with your existing motor (known to generate necessary torque for your application) like 5 or 10 ohms on each phase, so total two resistors for the motors. Keep in mind the power dissipation I2R in the resistors and use rated type. These resistors reduce the back EMF amplitude as well as improve L/R time constant. They also reduce the drive voltage to the coil equally but there would be a sweet spot that might just cut it for your application. May be worth trying. 

    Regards, Murugavel .