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.

DRV10983: Infrequent Abnormal Motor Speed1 Readings

Part Number: DRV10983

I have a setup that uses analog speed control and can run successfully for a couple/three days. When the analog speed control voltage changes to a much lower voltage, or speed input, sometimes register 0x1E is showing Stuck in open loop, Abnormal Kt, or Abnormal Speed. If I read the Motor Speed registers (0x11 and 0x12) at this time, reading 0x11 first, I am sometimes getting a value greater than 511. Sometimes it looks like a pattern in binary, for example: 0000000100100100, 0001100110011001, 0001110001110001. Any ideas as to what might cause this? The regulator inductor is shielded, and I have added 1nF capacitors from each phase to ground.

Thanks.

  • Hi Andy,

    Can you provide a little more details? What voltage are you changing the speed control to? are you starting up your motor then lowering the speed? what speed is FG showing? Is the motor still spinning? are you just running the motor continuously for those 3 days or are you cycling it? 

    Regards,

    Michael

  • The motor speed is varied up and down over time. It is not being started, then lowered. It is being lowered from a higher, closed loop speed. I don't have any FG data. Here are some of the voltage transitions where it has locked:

    1.4 to .6
    1.4 to .5
    1.38 to .52
    1.38 to .52
    1.35 to .55
    1.35 to .55
    1.35 to .52
    1.35 to .52
    1.35 to .5
    1.32 to .52
    1.32 to .55
    1.32 to .5
    1.32 to .5
    1.3 to .5
    1.3 to .5
    1.35 to .45
    1.33 to .52
    1.38 to .52
    .52 to .5
    .52 to .5
    .52 to .5
    .52 to .5
    .28 to .25
    0 to .25

  • Hi Andy,

    This motor behavior usually results from 3 sources: incorrectly programmed Phase Resistance, incorrectly programmed Kt, and Tcontrol (lead time).

    Phase to Phase resistance is found by taking a digital multimeter and measuring the resistance between any of the two phase wires, and phase resistance will be half the phase to phase resistance:

    R_ph_ph / 2 = R_ph_ct

    For Kt, we highly recommend finding that number by taking a scope probe between two of the phases, physically rotate the motor, and measure Voltage (peak to peak) and frequency of the BEMF. Then, Kt will come from dividing the peak to peak voltage by to 2 and dividing by frequency:

    Kt = (V_pk_pk/2)/(f_BEMF)

    For Tcontrol, go to the Control Advance Time Fine Tune section in the tuning guide and follow the instructions there. Tcontrol usually ranges between 30us to 450us.

    All of these steps (and more) are reiterated in tuning guide:

    DRV10983:

    Regards,

    Michael

  • Thanks Michael, I will endeavor to verify those three things. The current setup is using Fixed time control advance with 200 microseconds. Possibly related, there is a another failure mode, one that it never recovers from without power cycling the motor controller. In this scenario, the motor is humming along fine, the speed is not changing, then it  encounters a stuck in closed loop, but oddly reads a zero from 0x10, subsequent reads are all 0x31, motor locked. Also all subsequent reads from 0x1E are all 0x16, stuck in open loop, with Motor Speed randomly reading 10 or 11, never changing, regardless of what the SpeedCmd is. 

  • Ok, I have verified the first and easiest item, Phase Resistance. The phases each measure close 6 ohms, giving 3 ohms of R-PH_CT. The phase resistance is set to 0x5b, or 3.4 ohms in the 0x20 parameter.

  • Hi Andy,

    before going onto the other issues with your set up, have you verified the Kt value by reading it with a scope? and then have you also tried to tune your lead time? 

    Regards,

    Michael

  • Thanks for getting back to me Michael. I have verified the kt value. I calculated a value of around 157, which is in the lookup table between 0x4a and 0x4b. We are running with a value of 0x49. Do you think that is the cause? As to the failure mode that requires power cycling to recover from, I saw on this forum where Cole said that noise on the phases can be coupled into the BEMF phase comparators, causing problems with ISD and resulting in the device then being "stuck in a loop." One diagnostic path was to check for values in spdCmdBuffer when the motor isn't running. Our setup never has zero values in spdCmdBuffer or MotorSpeed, even when then control voltage has been zero for several minutes. When it gets "stuck" like this, is there a means to recover using the attached microcontroller, to say temporarily disable ISD, or some other preferred practice? Thanks for your help.

  • Hi Andy,

    Can we take a step back, and clarify the issues that you are having?

    issue #1: lowering the speed command and getting abnormal speeds reading.

    issue #2: motor gets stuck at a speed after start up.

    issue #3: DRV10983 ISD issue?

    Is this correct? Can you help me clearly understand the distinctions between these issues or are they all the same issue?

  • Certainly. I believe there are two distinct problems. It is possible that they are related.

    1. Occasional random odd readings and lock codes at lower speeds, especially when transitioning from a higher speed. Motor recovers and continues to function after lock expires (five seconds).

    2. A rare situation in which after running for several days, the motor stops with stuck in open loop, with Motor Speed randomly reading 10 or 11, never changing, regardless of what the SpeedCmd is and will not restart without removing power first.

    This second one is a bigger deal.

  • Hi Andy,

    1. I think this issue can be resolved by slowing down your deceleration or your motor might not be giving the device enough signal to properly commutate the motor at lower speeds.

    2. The device is reading some signals on its phases when it tries to start up again even though the motor is not spinning that tell the device the motor is spinning. this can be solved by two methods, one is to disable ISD and the other is to improve the layout so that there is not this noise on the phases. 

    Regards,

    Michael

  • Thanks Michael. Can ISD be disabled at lower speeds then re-enabled above a certain threshold using the attached microcontroller?

    Regarding noise, the cable between the motor and controller is six feet long. Should this be shielded?

  • Hi Andy,

    Yes, you can disable ISD at a low speed and then reenable it at higher speeds.

    I do not know if that should be shielded. You should check if that is causing the noise by hooking up a scope to the phases when the motor is spinning down or stopped.

    Regards,

    Michael