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: Align is not operating as expected, open loop parameters do not jibe with expected operation.

Part Number: DRV10987
Other Parts Discussed in Thread: DRV10983

At the recommendation of Krushal and Innocent, I have replaced the 10983 with the 10987 part on my 109893 TI eval board.  I have been struggling with optimizing the 10983 with my small blower and Krushal recommended the 10987 for reasons of more reliable current limit tripping.


I installed the new 10987 gui (Version 3.2.2) by  using the installer supplied by TI.


Power up and gui connection worked fine, but right off the bat I have issues simply trying to drive the motor in open loop.  No matter what my settings are in the startup settings, the part is not behaving as expected. I have tried many different combinations of setting simply trying to get the driver to cooperate and run in open loop.

My motor drives a small plastic impeller 3 inches in diameter and 0.25 inches thick: this is a small low inertia object.


The symptom is that the 10987 never issues a DC level to align - after a couple seconds to download the registers (after setting speed to non zero) the U and V phases are PWMed for 8 seconds and then the part enters a 'stepping sequence' at about 3.6 seconds per step.  Screenshots below.


Other than the setting below I am ignoring ALL settings in the gui. A snip of this is shown below.
Software current limit = Disable
Phase Resist = 698.4mohm
Kt = 18.5mv/Hz
Acceleration Range Selection: Fast
FIrst Order Accelerate: 0.9Hz/s
Second order Accelerate: 0Hz/s
Align time: 5.3s
Open to Closed loop Threshold: Not applicable
Open loop current rate: 6VCC/s
Open loop align current: 1.6A/1.2A


Bottom line questions:
1.)  Why is align immediately current limiting (the very first pulses on U and V is 500ns wide.)  If I adjust the open loop/align current smaller, even more agressive current limiting occurs. The current indicated on my power supply during this align period is 150ma.
2.)  Why is the spacing between the first open loop 'step' so long (3.6 seconds?)
3.)  I do not witness correlation between the register settings and operation of the part.
4.) After going through the standard installation using the TI tools (which included a python installation) I get an error when trying to lauch the python tool.  (I also downloaded and installed python 2.7 directly from the web with the same results.)  I only need this to debug what's happening with the register settings.
5.)  Is it true that with the CLoopDis bit checked in the gui that the align step is bypassed after the first attempt?  If I stop the motor by writing 0 to the speed register and then (attempt to) start by writing a non zero number into the speed register, the does go through the (incorrect) align sequence.  This makes diagnosing the 'missing DC align sequence more difficult.

Thanks for the help,

Doug

Screenshot of final settings (result after scope sequence below.)

Screenshot of initial align with align time set to 5.3s and first order accelerate set to 0.9Hz/s. Note 8 seconds of PWMed align followed by an initial 'step' of 3.6s in width.

Screenshot of initial align with align time set to 0.67s.  Note about 3.5 seconds of PWMed align followed by an initial 'step' of 3.6s in width:

Screenshot of initial align with align time set to 0.67s and First Accel set to 9.2Hz/s:

Missing Python complaint from gui:

  • Hi Doug,

    Sorry to hear about problems. 

    Starting with EVM - DRV10983 and DRV10987 EVMs has different layout and one the capacitor between CPN and CPP is different. My recommendation is to order DRV10987 EVM for evaluation.

    During Align state, device doesn't apply constant DC voltage  it calculates required voltage based on formula Align Current * phase resistance configured. Based on calculated voltage and supply voltage, device calculates the PWM duty cycle. It starts align state by slowly increasing the voltage from 0 based on parameter open loop current rate. So hence you are experiencing higher time than align time, it ramp up time and align time. 

    Supply shows lower current because device doesn't apply 100 % duty cycle, so the supply current will be based on supply voltage, supply current will be equal to V*I/supply voltage where V is motor voltage and I is align current.My recommendation is if possible can you monitor phase current. It will show DC current during align and open loop acceleration. 

    As far as open loop acceleration is concern can you please set some finite number for Open to Close loop threshold and second order accelerate higher than 0.

    For Python question: what operating system are you using, We have not encounter this in past, it works fine for us after installing python on Windows 7 and 10.

    Regards,

    Krushal

  • Krushal: Since the 10987EVM is not available, I can't get one unless you can arrange to send me one. The CPP/CPN cap appears to have changed to a 0.01uF from a 0.1uF. Dunno how the charge pump would cause the kind of problems I'm seeing. Based on the photos, the layouts look very similar, and this does not seem to be a layout kind of problem. I still don't understand why there is a multi-second pause between 'stepping' in open loop but maybe #2 below explains this. I have discovered several other issues:

    1.) Perhaps there shouldn't be a 'not applicable' value to select in the OL->CLoop Threshold selection, but I guess having this value terminate the acceleration ramp makes sense. This is bad gui design.

    2.) When I do select a value for the threshold, I can hear the motor windings 'whine' as the frequency ramps up - but it reaches the terminal speed and then stops. This is where it gets very strange: All the basic parameters then revert back to what appears to be factory values (but not the winding resistance or Kt - they stay at the values I initialized those two registers at. I have to issue a '0' speed command, then reset all these registers and then issue a speed 'non zero' command to get the thing to try again. Thus: With the only change being that I selected a threshold speed, things seem to spin up OK, but then does not simply free run in open loop. The device stops and resets all its registers (except winding resistance and Kt.) This makes it really hard to debug? This makes me want to try and use the EEPROM to store my values first but:

    3.) Why can't I write to the EEPROM? No matter what voltage I'm running at (from 12V to 25V), and whether the 'enable' box is red or green, or whether I type in the C0DE or not into the lock register, I *always* get the return "EEPROM not ready." What magic is required to write to the EEPROM?

    I haven't looked into the phase currents because it so painful to get the part to run each 'attempt to start' but Ill try to insert a resistor and do a differential measurement shortly.

    It would be very helpful to have more information in your datasheet on the internal operation of these parameters, as treating it as a black box may work great for those when the device works for someone, but when it doesn't those of us need more information on what's under the hood.

    On the python thing, I'm using win 10...
    Doug
  • Hi Doug,

    Sorry for the trouble, since it new part we don't have everything setup yet online correctly. Please provide your details to local sales support, and we can ship you DRV10987 EVM immediately.

    As as far EEPROM write is concerned when window pops up, just press retry and it will solve the problem. The window is popping out because the EEready flag is not set and it thinks EEPROM is not written. Please press Retry an you should be able to write EEPROM. 

    As far as restarting the device is concerned with DRV10987, the new EVM will resolve this problem. There is ground bounce problem with DRV10983 EVM when DRV10987 is used and that's the reason you are seeing device getting restarted.

    We are working on generating new collateral and we will provide more details about parameters. Is there any particular parameters you want us to provide more details.

    Regards,

    Krushal