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.

MAX_CURRENT values for speed controller unstable past 20

Other Parts Discussed in Thread: DRV8301, TMS320F28069, DRV8312

I have a modified board with TMS320F28069 and the DRV8301. Main difference is much larger Mosfets and Caps to handle significantly more power. Application is a powered skateboard.The board works quite well, able to identify and run smoothly the high speed low inductance BLDC motor. I am running speed mode (Lab3b)  and the board is ride-able and quite while using RS online. 

I have almost enough power with the max current setting below to carry a person up a shallow hill

#define USER_IQ_FULL_SCALE_CURRENT_A         (20.0)

#define USER_MOTOR_MAX_CURRENT        ( 20.0

But I cant seem to raise these values any higher. For instance at the value of 25 for each variable above, motor continues to work quietly under no load, but with load, I get screetching and lose torque. I realise it may be hard to help me, since i'm using some different hardware, but  I am missing something about the values above? Why is 20 such a specific threshold up to which all works fine? is there another define that needs to be adjusted?

Thank you.

Lui

user_j1_luiOct7th.h

  • what did you modify in your HW?

    you still have

    #define USER_ADC_FULL_SCALE_CURRENT_A        (33.0)  // 33.0 boostxldrv8301_revB current scaling

    which means you are only measuring +/- 17A on the board.  You won't be able to actually reach 20A continuous with this HW.

  • Hi Chris,
    Ah did not realize that was a signed value. Thanks that actually made a few things much clearer. Hardware related to sensing had not been changed till now, so I've just made a few changes

    New HW changes:
    -I've stacked parallel the current sensing resistor to divide resistance in half. I believe this way I can double my sensing range
    -voltage divider resistors for the voltage sensing have been adjusted to work out to 30.007V (power supply is a battery that we use in a range of roughly 29 to 25V)

    New SW settings:
    USER_IQ_FULL_SCALE_VOLTAGE_V (31.0) // a bit confused about this one, for now set slightly higher than max supply. any thought?
    USER_ADC_FULL_SCALE_VOLTAGE_V (30.007)
    USER_ADC_FULL_SCALE_CURRENT_A (66)

    USER_IQ_FULL_SCALE_CURRENT_A (20.0) //planning to raise these little by little, up to 34
    USER_MOTOR_MAX_CURRENT (20.0)

    thanks
  • if you have a 29V battery I would give yourself more headroom than 30.007 V

    I'd design for 36V

    you also need to update your voltage pole filter frequency in SW...and adjust the HW if it is not in within about 300-400 Hz.

    This is all discussed in SPRUHJ1

    USER_IQ_FULL_SCALE_VOLTAGE_V (31.0) // typically set to your bus voltage. There are corner cases where you need to increase (large flux machines if planning to field weaken) or decrease (very small flux machines), but it is rare.

    USER_IQ_FULL_SCALE_CURRENT_A (33.0) // must be >= 0.5 * ADC_FULL_SCALE_CURRENT

  • Thanks. I need a little clarification on the filter pole frequency. At the voltage sense, I have 34.8K ohm, 4.3 K ohm, and these value work out to the 30.007 V. I'll fix this to go a bit higher, 36V or near that

    With the above HW, the filter pole frequency works out to 415.874 hz, which is a bit over the frequency you recommended. According SPRUHJ1, it suggests:
    - >200hz
    - > IQ_FULLSCALE_FREQUENCY_Hz / 4.0. Its not clear whether the 4.0 refers to pole pairs, but for me that would work out to either 1300/4 = 325hz or 1300/7 = 185.7hz, given the 14 pole motor rated for 420rpm/V. (Side note, I will probably never go past 8000rpm)

    Why do you say the pole filter frequency should be 300 to 400hz?

  • the 4.0 is not pole pairs. there is a variable limitation where IQ_FULLSCALE_FREQUENCY should not be set to > 4.0 * the filter pole, regardless of the actual frequency of the motor.

    It looks like at 30V your motor would be at 1470 Hz. If you were design the filter to the limit of the FULL_SCALE_FREQUENCY variable you would have 1470 / 4.0 = 367.5, add a bit of margin for ~400 Hz. So I would just keep what you have for now...you can look at lowering it just a bit if you redesign the voltage scaling to 36V.

    On the frequency of this filter, the higher it is the more sensitive it is to drift / component error. So you want to keep it as low as possible, with a floor of 200 Hz for low frequency machines and a high of no more than 500 Hz if possible (one of the kits- DRV8312 - uses 714 Hz which is too high, but things still work ok, just not recommended for robustness.
  • Thanks this was very helpful. Able to ride uphill fine now