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.

DRV10987: How to set Motor max current & control inrush current during speed change .

Part Number: DRV10987

Hi ,

We are using DRV10987 IC  design with  power supply  24V/ 1.5A(max)  . Motor is successfully  running in Open to closed loop but  when  speed command change  450 to 511 then  supply current goes to  1.8A  ( Tested in another power supply 24V/2A ) & then settle down to 1.5A . We have set software current limit setting is1.4A & Hardware current setting is 1.8A  then motor is lock ( not transfer successfully open to closed loop ) . We already set closed accel is minimum value . set Please suggest  which pararmeter to set our motor max current  1.5A .&  how to control inrush current during speed change .

  • Hi Swapnil,

    Thanks for posting your question in MD forum. Software current limit will only limit the current and not trigger any fault. Looks like hardware current limit is triggering the fault. Can you increase the hardware current limit to around 2.0 A and set the software current limit to 1.6 A and try again? 

    Regards,

    Vishnu. 

  • Hi ,

    When we set software  current limit  speed  synchronization fail  . set  software current limit set 0000  then synchronization working fine .

  • Hi Swapnil,

    Looks like the load torque is higher at high speed. What is the closed loop accel set to?  Do you see supply current settle down quickly to 1.5A when closed loop accel is set to min value? If you don't see any improvement then nothing much can be done because the load is higher at high speeds and the device provides phase current demanded by the load. 

    Regards,

    Vishnu.

  • Hi ,

    Motor is wobbling , please refer my below motor parameter & please send initial closed settings with IPD & ISD .

    Motor  vlge =  24V

    Motor I  =   1.5A  

    PH to PH resistance =  1.86 ohms 

    No of pole  -  7 pairs

  • Motor max speed  - 350 rpm 

    Motor back emf  =  470mV

  • If the motor rated current is 1.5A, current will overshoot by 10%-15% at higher speeds. You cannot expect the current to settle down right at the edge of the rated value. Also, Supply current includes motor current and the device current. So it is recommended to use a power supply higher than the motor rated current say 20A.

    Regards,

    Vishnu

  • Hi ,

    Motor is wobbling ( application used for DRV10987 is celling FAN) , please refer my below motor parameter & please send initial closed settings with IPD & ISD .

    Motor  vlge =  24V

    Motor I  =   1.5A  

    PH to PH resistance =  1.86 ohms 

    No of pole  -  7 pairs

    Motor max speed  - 350 rpm 

    Motor back emf  =  470mV

  • Hi Swapnil,

    Motor BEMF is a function of speed. At what speed is the BEMF 470 mV? We need BEMF constant Kt in mV/Hz to program in the device. You can find Kt in motor datasheet or measure yourself by checking this video link. Can you share your current EEPROM settings? I can recommend changes after reviewing your settings. 

    Regards,

    Vishnu.

  • Hi ,

    Yes ,We had measure back emf as per share video link .  please refer below EEPROM  setting using right now.  

    #define OL_C0_MSB 0b00010110        //0x90
    #define OL_C0_LSB 0b01001011

    #define OL_C1_MSB 0b01011111         //0x91
    #define OL_C1_LSB 0b00111011

    #define OL_C2_MSB 0b00001000        //0x92
    #define OL_C2_LSB 0b01000010

    #define OL_C3_MSB 0b01010011        //0x93
    #define OL_C3_LSB 0b00111111

    #define OL_C4_MSB 0b10111011         //0x94
    #define OL_C4_LSB 0b00001101

    #define OL_C5_MSB 0b00110000         //0x95
    #define OL_C5_LSB 0b01100011

    #define OL_C6_MSB 0b00000011        //0x96
    #define OL_C6_LSB 0b01101011

  • Is the Kt in mV/Hz? When you measured BEMF voltage, did you measure peak-peak or peak voltage? I checked your register settings. Can you program the motor resistance Rm to 0.93 ohms? Also, can you enable Abnormal Kt fault, and read back the fault register (register address 0x00) to know which lock is getting triggered?

  • Hi ,  

    #define OL_C0_MSB 0b    00010110        //0x90

    #define OL_C0_LSB 0b     00111100

    #define OL_C1_MSB 0b     01011111       //0x91
    #define OL_C1_LSB 0b      00111011

    #define OL_C2_MSB 0b     00001000      //0x92
    #define OL_C2_LSB 0b      10000010

    #define OL_C3_MSB 0b      01010011    //0x93
    #define OL_C3_LSB 0b       01000111

    #define OL_C4_MSB 0b     10111011     //0x94
    #define OL_C4_LSB 0b      00001011

    #define OL_C5_MSB 0b     10110001    //0x95
    #define OL_C5_LSB 0b      01110011

    #define OL_C6_MSB 0b     01000111    //0x96
    #define OL_C6_LSB 0b      01101011

    We have set  above parameter settings motor working fine.  We have observed some following issues

    1.  When we start the motor  they go to reverse & then start to spin forward direction  . ( please suggest  IPD settings ) 

    2.  When we ON motor continuously  on Full speed .after 1/2 hrs they stop spining &  again start the motor . 

  •  Hi ,

    3.  Motor  is wobbing on speed command 380  to  511 .

  • Swapnil.

    1. Please refer to tuning guide section 6.2 for IPD tuning. IPD tuning is more experimental and it depends on motor inertia. 

    2. Can you read the fault register (register address 0x00) and see what fault is getting triggered?

    3. Can you explain what exactly you mean by wobbling? Is the fan speed fluctuating? Can you share the phase current waveform when the motor is wobbling?  If the phase current looks distorted then can you set the control coefficient to 0.75 or 0.5?

    Regards,

    Vishnu

  • 3. Can you explain what exactly you mean by wobbling? Is the fan speed fluctuating? Can you share the phase current waveform when the motor is wobbling?  If the phase current looks distorted then can you set the control coefficient to 0.75 or 0.5?

    No  Phase current is not distorted .  &  motor running at speed is also constant  .  Kindly  find   attached  waveform 

  • Thanks for sharing the waveform. Looks good to me. Can you respond to my second question about the fault register?

  • 2. Can you read the fault register (register address 0x00) and see what fault is getting triggered?

    After reading fault resister ,We get  fault from lock detection current limit .  As per your tunning guide suggestion for my motor max current 1.4A  to already set   HW current limit  2.4A  then max current not increase the beyond 1.4A .  Why we get this fault  ?? 

    3 . If my phase current waveforms looks good then why it is wobbling ?

  • Swapnil,

    If this is a current limit fault then I would suggest to monitor the last few cycles of the phase current before the device triggers this fault. Current limit fault can be triggered when there is a spike in the phase current which I think is not captured in the phase current waveform that you shared. Spike in phase current is due to improper commutation. Can you read back the estimated Kt just before the device triggers this fault? Below are the details on how to readback Kt.

    Regards,

    Vishnu

  • Hi  ,

    Previous waveform send used external power supply . When we used our finalize power supply then we get unequal phase current waveform . What is reason of this unequal current waveform & what can i do to get equal match phase current  ?  kindly find attached waveform 

  • What is the current ratings of both the power supplies? I'm guessing the power supply you are using now has a lower current rating. 

  • Finalize power supply  ratings   is    24V /1.5A    &  we are supply to run motor in full speed is 1.3A  

    External  power supply ratings  is   24V/2A 

  • Do you see any sag/dip in the supply voltage when you spin the motor at full speed?

  • NO ,   Supply  is constant  all   the speed  condition .

  • You mentioned previously that the motor draws 1.8A at higher speeds. I think you are seeing this current distortion because the power supply does not provide 1.8A at higher speeds. I recommend using a higher power supply.

  • Hi ,

    We had set speed command on that way motor  spinning  in higher speed current is not drawn  more  than 1.2 A  .  hence  i think  24V /  1.5A  power supply is enough that my application . 

    Current condition we have to major issues 

    1 .  Motor is wobbling  &   phase current  distortion as per previous attached waveform  

  • Hi Swapnil,

    We still think there should be some sag in the supply voltage. Can you measure the voltage at the Vcc pin when you see current distortion in phase current?

    Regards.

    Vishnu.

  • Hi Vishnu ,

    When  motor is running at full speed  330 rpm . after 1  hrs  speed start decreasing  &  after 3 hrs  motor  running at speed  around  280 rpm . Why motor are not running  constant speed ?  

  • Hi Swapnil,

    Drop in motor speed could be due to two reasons.

    1. Drop in supply voltage Vcc.

    2. Increase in load.

    Can you measure Vcc and phase current when the motor speed is 330 rpm and 280 rpm?

    Regards,

    Vishnu 

        

  • Hi Swapnil,

    I will close this for now, since I haven't heard a response back. If you want a follow-up, please feel free to reply to this thread or create a new thread.

    Regards,

    Vishnu

  • Hi ,

    Now everything is working fine expect  IPD settings .  7 out  20  times When  motor is start to running  goes to reverse & then start to running forward direction .

  • Hi Swapnil,

    Can you double check to make sure IPD is enabled? Because with IPD enabled, we do not expect the fan to rotate in reverse direction. If the fan has low inertia, we can expect the fan to shake. What is the IPD current threshold set to? Can you try decreasing the IPD current threshold?

    Regards,

    Vishnu. 

  • Hi ,

    IPD Current setting is already low  -   0001  ( 0.4A ) 

    Currently i am using below IPD settings 

    1  . IPD  Current threshold  -   0001   (  0.4A ) 

    2 .  IPD  clk     -    11   (  95Hz ) 

    3.   Advance angle   -   00  (  30 degree)

    4.   IPD  relese mode  -   1    (   Hi-z when inductive release)

  • Hi Swapnil,

    Did you try changing the advance angle to 60, 90, 120 degree? Can you share the phase current waveform during startup?

    Regards,

    Vishnu

  • Hi Swapnil,

    Just wanted to follow-up with you to see if you were able to resolve the issue. Do you have any updates?

    Regards,

    Vishnu. 

  • Hi ,

    1  . IPD  Current threshold  -   0100   (  1A ) 

    2 .  IPD  clk     -    10   (  47Hz ) 

    3.   Advance angle   -   10  (  90 degree)

    4.   IPD  relese mode  -  0    Brake when inductive release

    After doing above setting  2-3  out  25  times When  motor is start to running  goes to reverse & then start to running forward direction . &   least of the time fan motor take around 10-15 sec to start ON .

  • Hi Swapnil,

    I'm not sure why the fan is spinning in reverse direction. Ideally, we do not expect the motor to spin when IPD is enabled. Can you capture the phase current of the motor from startup to closed loop?

    Regards,

    Vishnu

  • Swapnil,

    Can you also make sure the voltage in direction pin is stable and not toggling? 

    Regards,

    Vishnu

  •  Hi  Vishnu ,

    Yes direction pin is stable & IPD settings issue still there   one more issue observe during testing  most of time motor not started immediate alter given speed command. fan motor ON after some time or not ON .then apply external force to move motor then motor start running .check fault resister  this is also zero . please can you share your contact number .     

  • Hi Swapnil,

    This behavior sounds like a very well known issue with ISD. If you disable ISD, does the problem continue? In addition, do you see a nonzero value in the spdCmdBuffer[7:0] register space of register 0x06 when the motor isn't spinning?

    Regards,

    Vishnu

  • Hi Vishnu , 

    Yes absolutely right , when ISD setting is disable .  problem does not occurs . Fan running well  . What  does this happen &What is the solution ?

  • Hi Swapnil,

    This problem occurs because our device have comparators on the phases (U,V, and W) to check if the motor is still moving. Essentially, the rotor will pass by the stator, a Back EMF voltage (BEMF) will be generated on the phases and our comparators see if there's a frequency associated with the BEMF zero crossings to detect if the rotor is moving. If ISD is enabled, our device sees the rotor moving and will try to resync and drive the motor.

    As you observe, the rotor is not moving but the device is detecting some rotor speed (shown in speed cmd buffer register). So, our device tries to resync, fails because it does not have enough BEMF, and then tries to resync again. As you can tell, the device is then stuck in a loop. Reason why the device sees a speed when there is no speed because the system is experiencing noise on the phases which is then coupled into the BEMF phase comparators.

    With this result, we have two methods to fix this: Disable ISD or find a way to lessen the noise being coupled into the phases.

    Here's some suggestions for lessening the noise being coupled into the phases:

    • If you are using the linear regulator in Buck mode (with an inductor) obtain a shielded inductor or switch to a resistor instead
      • Our experiments showed that the inductor on the board acted as an antenna that picked up noise from the environment and physical phase windings of the motor. Shielding would help prevent the pick up of extrinsic noise
      • Or remove the inductor and put the linear regulator in Linear mode (with a resistor) because a resistor will pick up a lot less extrinsic noise compared to the inductor (This is recommended if VREG is not powering any external components)
    • Increase the BEMF comparator Hysteresis
      • 0x92[12] of the Config3 register is the BEMF comparator hysteresis select. Setting this bit to "1" increases the hysteresis. More hysteresis means the comparators are less likely to switch from random noise (This is highly recommended)
    • Optimize the layout so there is a sufficient GND plane to prevent switching noise
      • Circuits that switch in reference to GND (such as VREG) will cause a lot of ripple on the ground plane. Optimizing layout so switching noise on the ground plane will not couple into the phases could be very helpful
      • This change is tough and can be rather expensive if not fixed the first time

     I'd recommend doing some combination of these changes.

    Regards,

    Vishnu

  • Hi Vishnu ,

    To increase comparator hysteresis show  30 to 40 % improvement but  8 or 10 out 50 times to failed immediate start up of FAN .&also tired inductor replace with resistor there is no improvement observed  .

    We set following speed command of FAN 

    Speed            speed command             Observed motor speed in RPM 

    1                       210                                            160

    2                       260                                            200 

    3                      320                                             240

    4                      380                                             280

    5                     440                                               320

    Boost             494                                             360  

    I have one  question  i want to go speed 5  Or 4 when  fan OFF  then  written speed command  directly  440  or   go  stepwise for e g   first fan motor ON speed 1 command  & increase speed command step by step to go 440 . ( if it is yes the what is delay between two speed command ) .

    second question is  i want to go any speed when FAN is OFF .it is require to set initial speed command  & then increase speed command step by step same as above

  • I'll get back to you on this shortly.

  • Hi  Vishnu ,

    Please  suggest as early as possible .We have client demo on monday.

  • Hi Swapnil,

    I understand from your first question that you want to know the time taken for the motor to accelerate from one step to other step. Is that correct? This time actually depends on the closed loop acceleration. You can set the closed loop acceleration to a higher value if you wish to reduce the time.

    You don't have to increase the speed step by step. If you wish to run the fan at step 5, then you can issue a speed command of 440 and you don't have to go step by step.

    Regards,

    Vishnu 

  • Hi Swapnil,

    We haven't heard from you in a while. Do you have any updates?

    Regards,

    Vishnu

  • I will close this for now, since I haven't heard a response back. If you want a follow-up, please feel free to reply to this thread or create a new thread.

    Regards,

    Vishnu

  • Hi Swapnil,

    Can you list out all the open questions that needs further attention?

    Regards,

    Vishnu.

  •  Hi Vishnu ,

    ISD issue solved as per your guidelines . But  IPD issue is still there when FAN is ON  it's goes most of the times reverse direction .  

  • Hi Swapnil,

    Can you share the phase current waveform showing the IPD pulses?

    Regards,

    Vishnu.

  • Hi Vishnu ,

    One of the our client they require fix speed fan motor . We used analog input signal for fixed speed . Without MCU can we used or control DRV10987 . We used analog input signal for fixed speed .