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.

DRV8312EVM Kit

Other Parts Discussed in Thread: MOTORWARE, DRV8312, BOOSTXL-DRV8301

Hello,


My kit doesn't seem to be working correctly. First, my VR2 regulator is running extremely hot and I don't believe it was doing it before.


Secondly, my control card doesn't seem to be programming correctly. Where I used to see the two blue LEDs on at the XDS emulator side of the board, they are no longer on. When I run the GUI, the card seems to be functioning but when I attempt to run any of the labs from Motorware, nothing is occuring.


Any suggestions? Is my kit damaged?

Cristhian

  • hard to diagnose on the forum, but if the GUI is able to connect, ID, and run the motor effectively it seems doubtful that any of the hardware is an issue.

    The DRV8312 can get hot, either if it is pushing the full 3.5A continuous or if you are using a low inductance (hence high Isc) motor where the current is spiking every PWM switching event (the DRV will actually clip this signal).

     

  • I am unable to even load Lab1 from Motorware to blink the LED. Before my card wasn't working, I had the two blue LEDs on at the isolated emulator side of the board on. Now they are off. What would you suggest I do next?

  • Looking at the image below, one out of two XDS100 emulator is disconnected. I didn't see that before.

    Is it possible to have my controlCARD sent to TI to have it looked at?

  • using CCSv5p5

    1. does proj_lab01 build a .out?

    2. can you launch a debug configuration for XDS100v2 and F28069?

    3. can you connect to the target?

    4. can you successfully load the .out you built in step 1?

     

    where are things failing?

    The GUI composer .exe does steps 2-4 itself...so if that works then CCS should certainly work unless you chose not to install something (or CCS didn't install something).

     

  • I don't see an image.

    With the 69M you should see two connections, one to the 28x and one to the CLA.  You should "click" on the top level connection or 28x and Run --> Connect Target

    Once connected you can Run --> Load Program

  • Hi Chris,

    It ended up being a User error that 'RoverL' was to high. I reverted user.h back to the initial code before any modification. I ran the lab as is and the processor is running now.

    I am attempting to run lab02c since the motor I am controlling is a low induction, high type. Referring to this post:

    http://e2e.ti.com/support/microcontrollers/c2000/f/902/t/334149.aspx

    I made the necessary changes to my user.h file per the excel sheet you posted on the sticky. When I build and run lab02c, I am getting a USER_ErrorCode_RoverL_estFreq_Hz_High. :-(

    Not sure why I am getting this.I've attached my excel.

    4520.motorware_selecting_user_variables_maxon.xlsx

    My motor parameters are as follows:

    #elif (USER_MOTOR == MY_MOTOR)
    #define USER_MOTOR_TYPE                 MOTOR_Type_Pm
    #define USER_MOTOR_NUM_POLE_PAIRS       (1)
    #define USER_MOTOR_Rr                   (NULL)
    #define USER_MOTOR_Rs                   (NULL)
    #define USER_MOTOR_Ls_d                 (NULL)
    #define USER_MOTOR_Ls_q                 (NULL)
    #define USER_MOTOR_RATED_FLUX           (NULL)
    #define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
    #define USER_MOTOR_RES_EST_CURRENT      (0.2)
    #define USER_MOTOR_IND_EST_CURRENT      (-0.2)
    #define USER_MOTOR_MAX_CURRENT          (2.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz     (14.0)

    I've attached my user.h file -> 4606.user.h

    My motor parameters are as follows:

    R = 12.8 ohm (line to line)

    L = 0.488 mH (line to line)

    Nominal speed = 8250 rpm

    24 V motor with nominal current of 0.657 A (starting current at 1.94 A)

    Motor datasheet, part number 283840 -> 6683.Maxon EC-max 22 DS.pdf

    Thank again for any help. I really appreciate it!


    Cristhian

  • Cristhian,

    I have a motor very similar to this one. These motors have been designed for special control techniques where they essentially want open loop stability, so they design them with absurd time constants ( L / R).  We calculate things in R over L because we like looking a whole numbers instead of decimals....but your motor has an R / L of 24 KHz.  That is just off the charts crazy for a motor that is going to run at only 137.5 Hz!!  Just a completely unnecessary design. This is the worst I've seen actually.  There are other customers on here with similar, but not quite so bad.  Example, 16 KHz for 700 KHz operation.

     

    Why do they design the motors with high RoverL?  Because they are either running in open loop (just commanding a frequency) or running in some sort of what I call "pulse and release" BLDC type of technique.  These are NOT current efficient at all, but when your motor is only using 0.657A what do you care?  The motor probably gets over heated, and you are inefficiently using the copper in the coils with these techniques...but so what.

    It is very unlikely that you will get the performance desired out of these motors with ANY FOC technique. They are not designed to be run by driving and sampling three currents and dynamically adjusting the current waveform to match the Bemf.  They are designed to be able to sink current and stay stable while doing so.

    The biggest issue is that with these high R/L motors, when the fet is switched the current does not decay in a nice steady way where you can sample in the middle of the waveform and expect to get a nice average value. The current behaves very strangely, and often very differently at different operating points.  It can decay very, very quickly and soon your current measurements think the current flow is zero.  One solution around that would be to use phase current measurements instead of shunts and to oversample and average out the values.  This would help, but it's much too costly for most applications and still hasn't solved the problem.

    I would suggest you look at other control methods if you must use this type of motor.

  • Yikes!

    This motor is used in one of our products. It currently used a control card from the motor vendor to control it. I was trying to make an application where I could control speed and direction. The vendors controller had a significant delay between the time I applied my voltage to the time the motor started to spin and I needed to spin the motor CCW and CW in succession.

    Alrighty then. I appreciate your help.

    Cristhian

  • Let me step back for a minute and look at the details of your motor. 

    what is the speed range you need to run?

  • My target speed range is 1000-8000 RPM.

    I normally adjust speed of my motor by adjusting my voltage. My operating voltage is 5-24V. The motor has a nominal speed of 8250 RPM.

  • Cristhian,

    I hooked up the Faulhaber motor I have that is similar (the wires are so small they won't even clamp inside the screw down terminals, I have to use some little clips).

    You won't be able to ID these motors, but the datasheet will work. Note that we have a user error check that tells you to keep R/L < CTRL Frequency.  That would mean for your real values you would need to run the current CTRL at >26 KHz, which isn't reasonable.  Because the R/L is so high, it doesn't really matter if the Ls is off, so go ahead and set it high enough to insure R/L < 15 KHz, which means the Ls needs to essentially be doubled.

    Look at how I set-up my motor for the Faulhaber. I did one for your Maxon as well, but double check. Seems your Maxon has double the flux, but half the poles so should be similar torque.

    Note that the speed controller defautl are MUCH too aggressive for these low time constant motors. Plan to divide speed Kp and Ki by 10 as a starting point.

    Also, the current controller Ki may be too aggressive since it is using the < 15 KHz "new RoverL" in the calculation...technically we should probably clip this value to 2 KHz, which means you may want to experiment with dividing your current Id and Iq Ki by up to 7.

    I could run to about 600 RPM / 20 Hz with the Maxon (but this is 2x the poles so 2x the Hz of your motor) and easily over 14 KRPM.

    And this is with REALLY poor current resolution. I'm scaled at 14A on the BOOSTXL-DRV8301 inverter and all currents are under 1A, with no load under 0.1A.

    With your DRV8312 you have a lower current scale, but the short circuit current of this motor may clip/saturate the driver. You'll have to see.  Your voltage scaline (66V) isn't good for such a low flux machine, it would be best to use HW scaling closer to your Vbus.  You can make this change on your DRV8312 board easily...but see how the current behaves.

    user.h
  • ChrisClearman said:

    Also, the current controller Ki may be too aggressive since it is using the < 15 KHz "new RoverL" in the calculation...technically we should probably clip this value to 2 KHz, which means you may want to experiment with dividing your current Id and Iq Ki by up to 7.

    actually , scratch this. I tried to lower by about 4x and it became unstable, so the default values are pretty good.

     

     

    I do want to point out that motors like this probably aren't best to run with current control technques like FOC.  The currents switch so quickly that when using shunt sampling you just don't get good values (even if you have proper scaling).  It does bring benefits though, this runs much quieter than a typical ESC.  But the low speed performance is not very good because of the current sampling breaking down, which will impact the overall torque production, making it even worse at low speeds where it appears to be running ok.

     

  • Hi Chris,


    I've made the changes to my user.h per your attached file. My motor is behaving now! I've run up to lab05e and haven't had any issues (but when I do, I'll make sure to ask).

    I'm a newbie with motors. This is my first experience with them so I know very little in terms of how they work and how to control them effectively. I was wondering if you could point me to some resources that can help me understand this topic.

    Thanks again for your help and I'll keep you posted on my development efforts.

    Cristhian

  • since you are a newbie you may want to start with some of the basics using the Motor Control Compendeum

    http://focus.ti.com/docs/training/catalog/events/event.jhtml?sku=OLT210201

     

    If you enjoy that you can look for some more serious text books on three phase electric machines and control theory, but they aren't so easy to digest.

     

  • Hi Chris - I have a quick question. Can InstaSPIN run two motors off of one MCU?


    Cristhian

  • Cristhian,

    They answer is yes, it can on all of our silicion except the F2802x (only supports 1 motor).  We have a customer in production controlling a compressor and fan with f2806x.

    We have not shown an example in MotorWare for this yet. We have some new HW coming in the fall that will enable this, but then there is still the SW work to be done.  Best case would be a Q4 SW release, but I figure it will slip into Q1.

    You also need to be careful about the ADC pins, it gets very tight if you want to add additional functionality.  Each motor can use up to 7 ADC channels, so two motors would be 14.

    But if they are on the same Vbus you can reduce to 13, and if you don't need over-modulation you can reduce each current from 3-chs to 2-chs, so you could potentially get to 11 for motor.  You would then have 3-5 channels remaining for other system functions.

     

  • Chris,

    How do you determine the speed of the motor in Hz? In your earlier post, you wrote that my motor was only going to run at 137.5 Hz. Just curious at how you calculate the value.

    ChrisClearman said:

    We calculate things in R over L because we like looking a whole numbers instead of decimals....but your motor has an R / L of 24 KHz.  That is just off the charts crazy for a motor that is going to run at only 137.5 Hz!! 

    ~Cristhian

  • Hz = RPM * Poles / 120

  • Hi Chris,

    Thanks for the response. I found the formula in the manual in section 5.1.1, to calculate the frequency of the motor, it was written as Hz = RPM / 60 * Number of pole pairs. Pretty much the same.

    ~Cristhian