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.

DRV8434A: DRV8434A - Stall detection not consistent

Part Number: DRV8434A

Tool/software:

Hi,

I am using the "drv8434apwpr" in one of the design. Have a question on the stall detection. 

The stall detection is not consistent. Initially, we had set the motor drive in "TorqueCount Mode" and checking the stall detection. But when the motor was getting STALL then the STL_REP signal was not becoming low. But some time it was becoming low as well (Not consistently we were detecting the stall)

Then we checked the "TRQ_CNT/STL_TH" pin voltage by setting the the mode to be in "TorqueCount Mode". We checked the voltage in motor ON condition (Voltage was around 90-100mV) and then during the stall condition (50-60mV). Then based on this observation, we have set a voltage of ~50mV at "TRQ_CNT/STL_TH" and changed the mode to "StallThreshold Mode". But we were having the STL_REP signal going Low (Stall detection) even when the motor was running normally. We tried change this voltage to 40mV to 75mV but the stall detection was happening even when motor was running normally. Any thoughts on this?

Then we wanted to do the learning process. But as per the procedure, the motor has to be run in steady state for 32 electrical cycle and 16 cycles in Stall condition. We wanted to understand 32 electrical cycle means what? One electrical cycle means one motor complete rotation? 

Below is the snap shot of the motor spec for your reference. 

  • Hi Pradeep,

    Then we checked the "TRQ_CNT/STL_TH" pin voltage by setting the the mode to be in "TorqueCount Mode". We checked the voltage in motor ON condition (Voltage was around 90-100mV) and then during the stall condition (50-60mV). Then based on this observation, we have set a voltage of ~50mV at "TRQ_CNT/STL_TH" and changed the mode to "StallThreshold Mode". But we were having the STL_REP signal going Low (Stall detection) even when the motor was running normally. We tried change this voltage to 40mV to 75mV but the stall detection was happening even when motor was running normally. Any thoughts on this?

    Likely you may be spinning the motor slow. With low back EMF the torque count may be low. Having a torque count voltage around 200 mV would be better SNR for stall detection. The specifications of the stepper motor looks fine from stall detection standpoint. What is the VM voltage used and VREF voltage used? Can you share the coil current waveform for either A or B coils?

    The stall threshold voltage must be > 60 mV (highest torque voltage during stall) for proper detection and avoid false triggers with your use case. 

    How do you generate STEP input to the device? The step to step period must be consistent (no variation) for proper stall detection. Using timer hardware in an MCU is ideal. For testing purpose you can use a square wave output of a function generator.

    Then we wanted to do the learning process. But as per the procedure, the motor has to be run in steady state for 32 electrical cycle and 16 cycles in Stall condition. We wanted to understand 32 electrical cycle means what? One electrical cycle means one motor complete rotation? 

    One electrical cycle can be visualized as one cycle of the coil current. In full-step mode it would be 4 steps. In microstep mode it would be one cycle of the sine wave or 4 x number of microsteps. For learning the motor can be run for longer than 32 electrical cycles (min 32) and stopped for longer than 16 cycles (min 16). 

    Regards, Murugavel 

  • What is the VM voltage used and VREF voltage used? Can you share the coil current waveform for either A or B coils?

    PNG: VM voltage is set to +24V. We will probe the coil current wave form and share. 

    How do you generate STEP input to the device? The step to step period must be consistent (no variation) for proper stall detection. Using timer hardware in an MCU is ideal. For testing purpose you can use a square wave output of a function generator.

    PNG: We are generating the STEP input from the MCU (Timer based). 

    One another question is as below:

    During learning process, can we first have the steady state count for 32 cycles and then stop the motor. Bring it to the stall condition and then run? Is that fine?(Without powering down the motor drive - With VM-+24V ON)

  • Hello Pradeep,

    Thanks for the additional details. 

    PNG: VM voltage is set to +24V. We will probe the coil current wave form and share. 

    Sounds good.

    PNG: We are generating the STEP input from the MCU (Timer based). 

    That's perfect.

    During learning process, can we first have the steady state count for 32 cycles and then stop the motor. Bring it to the stall condition and then run? Is that fine?(Without powering down the motor drive - With VM-+24V ON)

    Yes that's fine to do. Thanks.

    Regards, Murugavel 

  • Hi, we tried one more experiment yesyerday. We lept the driver in Torque count mode, increased the RPM. At one RPM, we found the TRQ_CNT/STL_TH pin was going to 2.2v for normal motor run condition and during Stall it was at 500mv. Then we set the voltage at TRQ_CNT/STL_TH pin at 1v and changed the mode to StallThreshold Mode. But again during normal condition itsel Stall was getting detected. Only when i changed the TRQ_CNT/STL_TH pin voltage to 10mv then motor was running but stall was not detected. Are we missing something for StallThreshold Mode?

  • I also noticed below statement in datasheet. what is the meaning of this? Can't we set the analog voltage and have the Stall Threshold mode during power up?

  • Hello Pradeep,

    we tried one more experiment yesyerday. We lept the driver in Torque count mode, increased the RPM. At one RPM, we found the TRQ_CNT/STL_TH pin was going to 2.2v for normal motor run condition and during Stall it was at 500mv. Then we set the voltage at TRQ_CNT/STL_TH pin at 1v and changed the mode to StallThreshold Mode. But again during normal condition itsel Stall was getting detected.

    Were you using STEP acceleration ramp profile? This could cause this false detection because the threshold is valid only for the steady state velocity.

    I also noticed below statement in datasheet. what is the meaning of this? Can't we set the analog voltage and have the Stall Threshold mode during power up?

    Let me check with this and get back to you tomorrow. Thanks.

    Regards, Murugavel

  • Hi below is the response. 

    Were you using STEP acceleration ramp profile? This could cause this false detection because the threshold is valid only for the steady state velocity.

    PNG: No. As i said we did the voltage measurement at 300RPM. Found the voltage to be 2.2V and did a STALL at same RPM and found the voltage coming down to 500mV. Then we set TRQ_CNT/STL_TH pin at 1v and changed the mode to StallThreshold Mode. Then were trying to run at same 300 RPM but we were seeing the STALL detection even when motor was running freely. This is a strange behavior. 

  • Hi Pradeep,

    Thanks for the info. With no ramp profile we can rule out potential issues due to that. 

    PNG: No. As i said we did the voltage measurement at 300RPM.

    What was the VREF voltage and the microstep mode used for the test? Please also share the coil current waveform at 300 RPM. Thanks.

    Regards, Murugavel 

  • Vref = 1.29V. Microstepping used is 1/4. And below is the waveform captured (Probed at one of the coil terminal w.r.t ground). 

  • Hi Pradeep,

    Vref = 1.29V. Microstepping used is 1/4.

    Thanks for the info. VREF = 1.29 V means IFS = 1.29 / 1.32 = 977 mA, almost 1 A. Based on the motor datasheet shared in your first message the rated coil current was 0.67 A. What was the reason to have 46 % higher than rated current? Overdriving the stepper likely result with reduced torque count with no load. The sweet spot for stall detection would be with 1/8 or 1/16 microstep setting.

    And below is the waveform captured (Probed at one of the coil terminal w.r.t ground). 

    This is the voltage waveform of one of the coil terminals. We cannot understand whether proper current was through the coils. We need to look at one of the coil current waveform using a current probe usually done with clamp on current probe for oscilloscopes. If the current waveform does not resemble a sine wave although it may have visible microsteps the stall detection would not be consistent. Based on 24 V supply and coil specification I think it should be the expected waveform. So reducing the current (VREF) to close to 600 to 650 mA and running at 1/8 microstep might give you better performance with stall detection. Thank you.

    Regards, Murugavel 

  • Regarding Vref calculation, IFS is the peak current right? The motor current shown is a rms current (0.67A). So, we set the Vref to be 1.29 for RMS current of 0.67A (Peak of 0.98A). 

    Regarding waveform, unfortunately we dont have the current probe. We will try with 1/8 microstepping and see if it improves the performance of the Stall detection. 

  • Hi Pradeep,

    Regarding Vref calculation, IFS is the peak current right? The motor current shown is a rms current (0.67A).

    Yes this is correct.

    Typically in stepper motors the current specification is specified with full-step driving unless otherwise explicitly mentioned. With full-step mode the current drive would be a square wave, so the peak and RMS would be the same. So for a 0.67 A specification the peak also would be the same 0.67 A.  

    With micro stepping the current would follow a sine wave so RMS would be (peak / √2) so in order to achieve the same torque as in full-step driving the coils should be overdriven by this amount, this would be only from an output torque perspective. From a current drive standpoint this condition would lead to a peak of around 1 A like you mentioned. For continuous duty operation this could overheat the motor because of higher loses in the system at 1 A than vs. at 0.67 A. For example, when you stop the motor at a certain microstep indexer position where one of the coils would be 100% this would lead to 1 A continuous driving. In FS mode when you stop the motor the coil current would not exceed 0.67 A.

    This is the reason we have FS 71% and FS 100% modes. FS 71% mode would provide the same RMS as microstepping modes. FS 100% would drive it with higher current (Ipeak). 

    In short, if you'd want to run the stepper without over heating you may want to consider reducing the Ipeak in your application. This would also improve stall detection. However if your application needs the level of RMS torque you can compensate for it by driving with the 1 A peak.  

    Regarding waveform, unfortunately we dont have the current probe. We will try with 1/8 microstepping and see if it improves the performance of the Stall detection. 

    Understood. Okay good. Thank you.

    Regards, Murugavel