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.

DRV8434S: TRQ_COUNT jumping near max with small change in velocity

Part Number: DRV8434S
Other Parts Discussed in Thread: DRV8434AEVM, , DRV8889-Q1

I have 5 DRV8434S drivers in a daisy chain configuration driving 5 NEMA 17 stepper motors. I'm experimenting with the stall learning process at various motor speeds. So far I've focused on a single driver in the chain (a linear axis on the machine it's driving). I have a script that iterates over various speeds performing the following steps at each speed: turn on the motor, give it time to get up to speed, enable the STL_LRN bit, then stall the motor and wait for the STL_LRN_OK bit to go high or for 5 seconds to pass (whichever happens first). While the motor is running, I'm also monitoring the TRQ_COUNT registers. At 256RPM (.41 inches/second on the linear axis its driving) the TRQ_COUNT is in the 150-190 range while running (upper TRQ_COUNT bits are all 0), then drops significantly once stalled. At 262RPM (.42 inches/second on the linear axis it's driving), the TRQ_COUNT jumps to the 4070-4080 range (all the upper bits, bits 0-3 of the CTRL9 register, go high). Once stalled, TRQ_COUNT drops to about the 4015-4040 range, but the learning process never completes and my 5 second timeout happens. Any speed faster than that exhibits similar behavior (our machine goes up to 1 inch/second). The motor seems well within its speed/torque limitations. It seems like the upper bits of TRQ_COUNT are incorrectly going high. What could be causing this?

  • In case it's relevant, the DRV8434S drivers are configured for 1/4 microstepping.

  • John,

    Please check https://www.ti.com/lit/an/slvaei3/slvaei3.pdf . From equation (5) to equation (6), the IxR is an error item to TRQ_COUNT. If the 1st quadrant IxR can cancel the 2nd quardrant IxR, the TRQ_COUNT doesn't have the IxR error.

    So, we want 1st quadrant and 2nd quadrant current are symmetric to cancel the IxR item or the output resistance and current are small to reduce the TRQ_COUNT error.

    Would you change to 1/16 microstepping setting to have a better symmetric output current?  Would you reduce the output current or change a lower coil resistance motor to reduce the IxR error on TRQ_COUNT?

    Regards,

    Wang Li

  • It's not possible for us to change our microstepping setting. On the DRV8434AEVM evaluation board we noticed some unpopulated capacitor pads (C13-C16). Is it possible that adding capacitors between the lead traces and ground would help balance the IxR error? If so, are there any equations/data about adding those capacitors? 

  • John,

    Today was a US holiday.  Wang will respond by tomorrow.

    Regards,

    Ryan

  • John,

    The external output capacitors between output terminal and ground are for EMI performance. According to a previous test, a 3.3nF output capacitor is can reduce 15~20dB around 100MHz if I remember correctly. They are not for

    BTW, DRV8434AEVM (hardware version of the  stall detection device in DRV843x)  is different than DRV8434SEVM (spi version of the stall detection device in DRV843x)..

    Regards,

    Wang Li

  • Thanks Wang,

    We tried changing the microstepping 1/16 as a test (this wouldn't be a feasible long term solution). The learning process succeeds more often but is still erratic. The learned stall threshold for .1-.4 inches/sec is in the 30-40 range, whereas faster than that sometimes fails to learn and sometimes gives threshold in the ~2000-3000 range. Our motor coil resistance is 14.5 Ohms and we're running at 48V.

    In the document you cited, Section 7.6.1 Limitations Due to High Coil Resistance mentions adding a low pass filter. Could that help in our case?

  • John,

    Please check https://www.ti.com/lit/an/slvaei3/slvaei3.pdf . From equation (5) to equation (6), the IxR is an error item to TRQ_COUNT. If the 1st quadrant IxR can cancel the 2nd quardrant IxR, the TRQ_COUNT doesn't have the IxR error.

    So, we want 1st quadrant and 2nd quadrant current are symmetric to cancel the IxR item or the output resistance and current are small to reduce the TRQ_COUNT error.

    Would you reduce the output current or change a lower coil resistance motor to reduce the IxR error on TRQ_COUNT? Or, increase the motor normal operating speed.I don't have other method to make it work.

    Regards,

    Wang Li

  • Hi Wang,

    We've experimented with reducing the current output by adjusting the TRQ_DAC and haven't seen much improvement. Does that mean our only option is to reduce the resistance of our motors? Is there a way to calculate what resistance would work better? I'm having trouble understanding how we could know what motors would work well with these drivers.

    -John

  • John,

    Would you share the output current waveform? What is the motor coil resistance?

    According to a previous experience, I would the motor resistance lower than 10ohm for DRV8889-Q1.

    Regards,

    Wang Li

  • Wang,

    John posted with this already.

     "Our motor coil resistance is 14.5 Ohms"

    Regards,

    Ryan

  • Hi John, based on the problem description of your application the torque count is jumping to near max count of 4095 when the motor RPM increases from 256 to 262. It appears to me ITRIP threshold may never be reached at 262RPM and higher speeds resulting in erratic torque count. We can confirm loss of current regulation by looking at the motor current waveform. Stall detection in the DRV8434S is based on ITRIP regulation in Smart Tune Ripple Control mode. Factors that affect the motor current from reaching ITRIP are VM motor voltage, motor coil DC resistance & motor coil inductance - L/R time constant, ITRIP value and step rate. Attached are examples at 1/4 micro stepping of good current regulation waveform and barely acceptable current regulation waveform for stall detection in the DRV8434S, and poor or loss of current regulation waveform. Loss of current regulation results in a sudden jump in torque count value from the working range abruptly, would be unusable and erratic for stall learning and detection. To resolve this issue the motor supply voltage can be increased to maintain current regulation at the desired step rate (keep in mind maximum VM specification of the device), use a lower time constant - L/R stepper motor such that current would rise above the ITRIP threshold fast enough at the desired VM voltage and step rate, or reduce the step rate to a level where the current regulation is acceptable for stall learning and detection. 

    good current regulationbarely acceptable current regulationloss of current regulation

  • Thanks Murugavel, we have a current probe on order so we'll be able to take a closer look at what's going on with our current waveform soon. If we are losing current regulation, your advice seems to be the opposite of what Wang was saying. Increasing R or lowering L would lower the time constant (whereas Wang was suggesting lowering R), correct? I'll post our waveform when we have it.

  • John, You're welcome. Lower R defines the static current (peak) and it matters as well. L/R time constant defines the rise time. I just noticed you are using 48V VM already, sorry missed it last time. You are already at the top end of the operating voltage of the device. Your motor R is 14.5ohms. In contrast the NEMA17 motor I used for my testing has R of 2.1ohms per phase. I was able to drive the motor to little over 600RPM with torque count around 600 using 24V VM supply at 1/4 micro stepping with the DRV8434SEVM with proper stall learning and detection. It loses current regulation at around 638RPM and the torque count jumps to >4000. The phenomenon you experience is reproduceable and understood.  

         

  • Great, we'll get our hands on some lower resistance motors and give it a shot. Thanks Wang and Murugavel for you help!