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.

CCS/TMS320F28035: Need help related to INSTASPIN_BLDC Project

Part Number: TMS320F28035
Other Parts Discussed in Thread: INSTASPIN-BLDC, CONTROLSUITE

Tool/software: Code Composer Studio

Hello,

    I started my work on DRV8301-hc-evm development kit with TMS320F28035 microcontroller. I imported and compiled the project Instaspin_BLDC code given in  TI Resource Explorer. I'm using the motor which is given in the pdf(attached,Motor:272763). The motor given is Maxon make brushless DC motor with parameters:

#define RS      1.27                    // Stator resistance (ohm)
#define RR       0                       // Rotor resistance (ohm)
#define LS      0.000143                  // Stator inductance (H)
#define LR       0                        // Rotor inductance (H)     
#define LM       0                        // Magnetizing inductance (H)
#define POLES   2                    //Poles per phase

with these settings and when tried to run in open loop: level-2 (build level), the motor is not running properly. Kindly correct me if I'm missing anything. Also, I'm having doubt related to

#define COMMUTATES_PER_E_REV 6.0 ---- How to decide this value for the motor I'm using?

CmtnPeriodTarget - How to determine this value?

Please guide me to run the motor in open loop.

Also, I tried running the ssame motor using "InstaSPIN-BLDC_GUI_DRV83xx_v104.exe" successfully. Velocity control and current control are successful. If I'm using "Instaspin_BLDC" project, the motor is not rotating properly. Please let me know if I'm missing anything and please give information related to Commutation Period Target and commutation per electrical rotation. Thank youEN-241.pdf

  • hello,

        With reference to above question, I'm having doubts related to:

    1. Please let me know about open loop commutation parameters? How to choose these parameters to successfully run the motor in open loop.

  • Hi,

    1.#define COMMUTATES_PER_E_REV 6.0 

    : If you are using 3 phase 2 pole motor, COMMUTATES_PER_E_REV should be 6. Please see the link below for your reference.

    https://training.ti.com/commutation-techniques-three-phase-brushless-dc-motors

    2.CmtnPeriodTarget - How to determine this value?

    : please see the link below. It provides some guide line to determine CmtnPeriodTarget

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/283102?tisearch=e2e-sitesearch&keymatch=CmtnPeriodTarget

    3. When you run Instaspin_BLDC, does circuit or motor work at all? or do you see any movement or hear any noise?

    Best,

    John

  • Thanks a lot for the information. With InstaSpin_BLDC, I didnt check the closed loop performance of the drive. I checked the motion of the motor by making build level-2 (open loop motion) in the code BLDC_intSettings.h

    When i execute the code, the motor for the first few seconds is running fine and later, the motor shaft is vibrating. Please help me to overcome this problem. Thank you

  • I'm now facing the problem witth InstaSpinGui application. I'm able to run the motor in duty cycle mode and in velocity mode. In current mode, the motor is accelerating v fast and and is giving me a fault. Few days back, when I tested the same drive in current mode, there was no problem. I re-flashed the gui program in the drive and tested the gui. I'm still facing the problem. Please help me to run the motor in current mode. Also, please give information on commutation parameters. Ive checked the link which was given earlier but I'm bit confused.

    Thank you

    Also, Ive been trying to change the values for build level 2 operation (INstaSpinBLDC Project):

    New values: Speed Ref:0.15,

    Ramp Delay = 5

    and DFuncTesting = 0.5

    Im still facing the same problem.

  • You might take a look at the two guides at the folder in controlSUITE. An unloaded motor will rapidly accelerate to a very high speed in current mode, you should set a right current for your motor in the current mode, or use the velocity or cascade mode for an unloaded motor.

    ti\controlSUITE\development_kits\DRV830x-HC-C2-KIT_v105\InstaSPIN_BLDC\~Doc

    \ti\controlSUITE\development_kits\DRV830x-HC-C2-KIT_v105\~Docs

  • Thanks for the reply. I actually adjusted the current value( in gui to value 0.01 and 0.02) before enabling the motor. For these values, the motor is running but if I increase the value to 0.03, the motor is rapidly accelerating to a very high speed. I dono why the motor is accelerating for such a small value.

    Also I'm unable to run the motor in open loop mode (level 2,3,4) using InstaSpin_BLDC project. I'm unable to tune the open loop parameters. Also in level 5, the motor is getting locked. It has been mentioned in the Instaspin_BLDC sensorless control pdf, that "The switch over from open loop commutation to closed loop commutation occurs when Ramp3DoneFlag is set to 0x7FFFFFFF indicating the end of motor speed up phase. Until this switch over occurs MOD6_CNT module is triggered by the output of IMPULSE module". The Ramp3doneflag has reached 0x7FFFFFFF value and the motor is locked. What am I missing in this project.

    Kindly help me out with this project. Thank you

  • Yes, it's normal state since the motor is running without load and its friction is very low.

    As mentioned above, please follow the application guide to tune the parameters below according to the running state of the motor. 

    RampDelay (Q0 format): for changing the ramping time.
    CmtnPeriodTarget (Q0 format): for changing the targeted commutation interval.
    CmtnPeriodSetpt (Q0 format): for changing the initial startup commutation interval.
    DfuncStartup: for changing the startup PWM duty cycle in per-unit.
    DFuncTesting: changing the PWM duty function in per-unit.
    InstaSPIN_BLDC1.Int_Threshold: for changing the BEMF integration threshold in per-unit

  • Thanks a lot for the information. I'm looking at these variables but conceptually I'm not getting idea regarding these different variables. Is there a literature to understand more about these variables and their role in controlling the motor.

    Also, I observed a v strange phenomenon with this InstaSpinBldc project. I initially changed the motor parameters in BLDC_int-Settings.h as per the maxon motor data sheet(which I'm using) ( link attached in my previous question).

    #define RS      1.27                    // Stator resistance (ohm)
    #define RR       0                       // Rotor resistance (ohm)
    #define LS      0.000143                  // Stator inductance (H)
    #define LR       0                        // Rotor inductance (H)     
    #define LM       0                        // Magnetizing inductance (H)
    #define POLES   2                    //Poles per phase

    With these parameters, the motor in open loop rotated with vibrations. Also in Build level - 5, the motor was locked.

    Yesterday I used the motor parameters which were given in the project:

    #define RS         0.79                       // Stator resistance (ohm)
    #define RR       0                       // Rotor resistance (ohm)
    #define LS       0.0012                     // Stator inductance (H)
    #define LR       0                        // Rotor inductance (H)     
    #define LM       0                        // Magnetizing inductance (H)
    #define POLES   8                       // Number of poles

    WIth these motor parameters, the motor is running with out any vibration. I tested the motor performance in all build levels. The motor is rotating absolutely fine. Can you please tell me why this is happening?

  • Interesting! InstaSPIN_BLDC doesn't use any parameters for control, it's not sensitive to motor parameters.

    You need to tune the CmtnPeriodTarget and CmtnPeriodSetpt since the poles numbers are different.

      

  • Can you please give details about the variables used in the program? Commtnperiod formula has poles as a variable. If I'm using 8 poles, the rotor is rotating absolutely fine but when I change the value to 2 (motor used) ,the rotor is vibrating. What am I missing?

    Please help. Thnku

  • Any document to know more about the variables which are being used in the program.

  • I tuned the values and now the motor is running fine at SpeedRef:0.3. Thanks a lot for the help.

    During testing, i changed the value of SpeedRef to -0.3. With this input, the motor has to rotate in opposite direction but the motor is accelerating and stops. Why am I getting this type of response? Also, if i give SpeedRef = 0, the motor is rotating.

    Please help.

  • That's a normal state. The example project can't support spin the motor directly in bi-direction without stopping. You have to stop the motor first and then set a negative reference speed for spinning the motor in the opposite direction.