RoadTest: TI Motor Drive Bundle, MotorWare, Personal Trainer
Author: cetinkayafaruk93
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: null
What were the biggest problems encountered?: null
Detailed Review:
I want to thank you Element14 and Ti for giving me the chance to test Ti Motor Drive Bundle. I applied the RoadTest because of Ti C2000 microcontroller have very detailed Power and Motor Control library.Before this review, I already have some BLDC motor control experiences but I am planning to use FOC control technique for future projects.
My review consists of 6 parts ;
1-Introduction and Box Opening
2-Ti Software and Hardware Explanation
3-Ti 24v LVBLDCMTR Motor Identification and Test
4-12V-24V 600w High Cogging Torque Bldc Motor Test
5-Instaspin 4 Quadrant Operation with Active Motor Load
6-Summary
After Element14 announced RoadTesters, I got a big well-packed box. It came without any customs issue.
Ti motor Bundle RoadTest contain;
- C2000 Piccolo MCU F28027 ( LAUNCHXL-F28027F InstaSPIN™-FOC enabled C2000 Piccolo MCU F28027 LaunchPad Development Kit | TI.com )
- DRV8301 Motor Drive BoosterPack ( BOOSTXL-DRV8301 Motor Drive BoosterPack featuring DRV8301 and NexFET™ MOSFETs | TI.com )
- 24V BLDC Motor ( LVBLDCMTR 24V BLDC Motor | TI.com )
- 6 Hours Personel Training Information Card
- Gift (Multitasking Engineer Pen)
All hardware is in the box only you need to download Ti software and then spin the motor.
Code compose studio is an integrated development environment for Ti's microcontroller. It's optimized for C/C++ compiler, code editing and debugging.
You can download and integrate other Ti software through AppCenter which is in the CCS.
CCSTUDIO Code Composer Studio (CCS) Integrated Development Environment (IDE) | TI.com
C2000Ware for C2000™ microcontrollers is a cohesive set of development software and documentation designed to minimize software development time. From device-specific drivers and libraries to device peripheral examples, C2000Ware provides a solid foundation to begin development and evaluation of your product. C2000ware is not necessary for Instaspin motor control but I strongly recommend to download.
C2000WARE C2000Ware for C2000 MCUs | TI.com
MotorWare™ is the software and documentation package for developing InstaSPIN-FOC™ and InstaSPIN-MOTION™ based applications for Piccolo F2802x, F2805x, and F2806x series. The software is really saving time for InstaSpin and InstaMotion motor control. All example labs, source codes, guidelines inside the MotorWare. Motorware well organized for every InstaSpin and InstaMotion motion MCU and evaluation boards. During your C2000 labs, you will use Motorware.
InstaSPIN-FOC technology brings powerful sensorless field oriented motor control technology to all skill levels of designers. InstaSPIN-FOC auto-identifies, auto-tunes, and fully controls 3-phase motors in minutes
InstaSPIN-MOTION builds on InstaSPIN-FOC technology to provide robust motion control, allowing you to accelerate, position, and plan your movement
MOTORWARE MotorWare™ Software | TI.com
GUI Composer Runtime Installation and GUI source (Webapp) for MotorWare Universal GUI. This GUI instruments the existing variables in any MotorWare InstaSPIN-FOC or InstaSPIN-MOTION project, meaning you can recompile the .out to add your own settings and other system code.
GUI Composer executable and source (add your own widgets and variables)
Uses the variable structures of MotorWare, common variables already attached to widgets for instrumentation
Documentation for installation, use and customization
Use with any InstaSPIN-enabled hardware (TMDSCNCD28069MISO, TMDSCNCD28054MISO, TMDSCNCD28027F, LAUNCHXL-F28027F, or your custom Piccolo board) and a .out built using MotorWare.
InstaSPIN-FOC or InstaSPIN-MOTION features only enabled some C2000 controller. Ending code of C2000 MCU shows special library in the ROM. Like TMS320F28027F ( F is FOC enabled ROM) , TMS320F28069M ( M is Motion and FOC enabled ROM )
Full list of INSTASPIN enabled MCUs; http://www.ti.com/lit/ml/sprw258/sprw258.pdf
InstaSPIN Compatible Hardware list
Also, Ti still developing new InstaSpin enabled MCUs and hardware.
New Instaspin enabled C2000 TMS320F280049C which is not on the list. I think they are developing example software for MotorWare.
TMS320F280049C Piccolo™ Microcontroller With InstaSPIN-FOC and CLB | TI.com
New motor control BoosterPack DRV8323 compatible with Instaspin MCU. ( Drv832x firmware for InstaSpin; http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=slvc705&fileType=zip )
Motors available from Ti
Motor Type | Part Number | Sensor | Primary Kit Use |
---|---|---|---|
ACI - Low Voltage | LVACIMTR | None | BOOSTXL-DRV8301 DRV8312-69M-KIT |
BLDC - High Voltage | HVBLDCMTR | Halls | TMDSHVMTRPFCKIT TMDSHVMTRINSPIN |
BLDC - Low Voltage | LVBLDCMTR | None | BOOSTXL-DRV8301 DRV8312-69M-KIT |
BLDC - Low Voltage | BLY172S-24V-4000 BLY172D-24V-4000-2000SI Order From Anaheim Automation | Halls Encoder: external | DRV8312-69M-KIT DRV8312-C2-KIT BOOSTXL-DRV8301 TMDS2MTRPFCKIT |
PMSM - High Voltage | HVPMSMMTR | Encoder: internal 2.5k/rev | TMDSHVMTRPFCKIT TMDSHVMTRINSPIN TMDXHVMTRKIT5X |
PMSM - Low Voltage | LVSERVOMTR 2MTR-DYNO | Encoder: internal 4k/rev Two motors, shaft and frame couplers | BOOSTXL-DRV8301 DRV8301-69M-KIT DRV8301-LS31-KIT DRV8301-RM48-KIT |
Telco DN4240S24-026-TI (LVBLDCMTR) is provided inside the MotorDrive Bundle. It's a low power motor to test and understand InstaSpin software. It doesn't have any position sensor but I think easily attachable with 3 screws.
Motor Datasheet ;
-Before the connect C2000 LauchPad with MotorDrive BoosterPack, you should remove Jp1, 2, 3 to power LaunchPad from BoosterPack and S4 should be OFF to allow LaunchPad to drive fault LEDs of BoosterPack.
-Connect motor phase wire and adjustable DC power supply. For identification step, adjust power supply current level under the motor nominal current in case of a problem.
For a good motor identification, you need change some variable from CCS. I made two videos to show you how to identify and run your motor with MotorWare Gui.
I preferred to use Lab5b to identify and run my motor first time.
Ti already wrote some defined motor inside the user .h. There is the predefined motor which is USER_MOTOR == My_Motor. It's good to activate this motor and then change important parameters only for identification.
These are ;
#define USER_MOTOR_NUM_POLE_PAIRS (4) // to see true RPM of motor on the Gui. For our motor, it should be 4 pole pairs ( 8 poles).
#define USER_MOTOR_RES_EST_CURRENT (0.5) // resistance estimation current should be 10% of your motor nominal current.
#define USER_MOTOR_IND_EST_CURRENT (-0.5) // induntance estimation current should be 10% of your motor nominal negatif current.
-Last two parameters are important to identify your motor. I will explain them detailed at section 4.
#define USER_MOTOR_MAX_CURRENT (3.0) // nominal current of the motor.
#define USER_MOTOR_FLUX_EST_FREQ_Hz (30.0) // motor Hz = RPM * poles / 120. For our motor Hz = 4000*8/120 = 267Hz . Value should be 10% of your motor Hz which is approximately 30 .
These setting significant for estimating PMSM&BLDC motor parameters and changed for Ti LVBLDCMTR
You should save and build the project. CCS will give you Lab5b.out file on the MotorWare lab5b folder. You need to copy Lab5b.out file to GuiComposer folder.
Lab out file direction : C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\boostxldrv8301_revB\f28x\f2802xF\projects\ccs
GuiComposer direction : C:\ti\guicomposer\webapps\InstaSPIN_F2802xF_UNIVERSAL
You can see every step above in the before identification video.
When you open MotorWare be sure User.h not selected and RsRecalc, OffsetCalc, ForceAngle should be selected for identification. Motor identification takes almost 85-90 second to identify your motor. The motor should spin during identifying parameters. If everything is right, the motor will identify and green led on. Green led doesn't mean your motor identified truly. It's mean, completed without an error that's why start with low speed command and then observe the current and sound of the motor. If there is no problem and parameters are close to the datasheet, we can say our motor parameters correct.
Copy Rs(ohm), Ls-d(mH), Flux(V/Hz) and adcBias offsets to user.h
You can start your motor from user.h. You need to write some code to user.h to define your parameters.
-First, change offset of your hardware ( Your hardware offset will be different)
//! \brief ADC current offsets for A, B, and C phases //! \brief One-time hardware dependent, though the calibration can be done at run-time as well //! \brief After initial board calibration these values should be updated for your specific hardware so they are available after compile in the binary to be loaded to the controller #define I_A_offset (0.848190784) #define I_B_offset (0.844651699) #define I_C_offset (0.836506844) //! \brief ADC voltage offsets for A, B, and C phases //! \brief One-time hardware dependent, though the calibration can be done at run-time as well //! \brief After initial board calibration these values should be updated for your specific hardware so they are available after compile in the binary to be loaded to the controller #define V_A_offset (0.506202519) #define V_B_offset (0.500748217) #define V_C_offset (0.503971219)
-Give a name and unique id to your motor
//! \brief Define each motor with a unique name and ID number // BLDC & SMPM motors #define Estun_EMJ_04APB22 101 #define Anaheim_BLY172S 102 #define My_Motor 104 #define hobby_3p5T 105 #define hobby_4p5T 106 #define small_hobby 107 #define teknic_2310P 108 #define hobbywing_ezrun_8p5T 109 #define eflite_helicopter_420 110 #define Bodine_34B3FEBL 114 #define Pittman_elcom_5233B599 115 #define medical_instrument 117 #define Ti_LVBLDCMTR 120 //! \brief Uncomment the motor which should be included at compile //! \brief These motor ID settings and motor parameters are then available to be used by the control system //! \brief Once your ideal settings and parameters are identified update the motor section here so it is available in the binary code //#define USER_MOTOR Estun_EMJ_04APB22 //#define USER_MOTOR Anaheim_BLY172S //#define USER_MOTOR hobby_3p5T //#define USER_MOTOR hobby_4p5T //#define USER_MOTOR My_Motor #define USER_MOTOR Ti_LVBLDCMTR //#define USER_MOTOR small_hobby //#define USER_MOTOR Belt_Drive_Washer_IPM //#define USER_MOTOR Marathon_5K33GN2A //#define USER_MOTOR teknic_2310P //#define USER_MOTOR hobbywing_ezrun_8p5T //#define USER_MOTOR eflite_helicopter_420 //#define USER_MOTOR Bodine_34B3FEBL //#define USER_MOTOR Pittman_elcom_5233B599 //#define USER_MOTOR medical_instrument //#define USER_MOTOR Kinetek_YDQ1p3_4 //#define USER_MOTOR LPKF_CAD_CAM
-Define your motor parameters
#elif (USER_MOTOR == Ti_LVBLDCMTR) #define USER_MOTOR_TYPE MOTOR_Type_Pm #define USER_MOTOR_NUM_POLE_PAIRS (4) #define USER_MOTOR_Rr (NULL) #define USER_MOTOR_Rs (0.7631) #define USER_MOTOR_Ls_d (0.00115658) #define USER_MOTOR_Ls_q (0.00115658) #define USER_MOTOR_RATED_FLUX (0.0310) #define USER_MOTOR_MAGNETIZING_CURRENT (NULL) #define USER_MOTOR_RES_EST_CURRENT (0.5) #define USER_MOTOR_IND_EST_CURRENT (-0.5) #define USER_MOTOR_MAX_CURRENT (3.0) #define USER_MOTOR_FLUX_EST_FREQ_Hz (30.0)
I tried to spin a 12-24V 600w outrunner BLDC motor with InstaSpin but the motor only locked and vibrated. Every time it behaves differently. Even I was thinking the motor has a problem. After that, I found same sections on the InstaSPIN-FOC™ and InstaSPIN-MOTION™ User Guide. These are USER_MOTOR_RES_EST_CURRENT and USER_MOTOR_IND_EST_CURRENT which are resistance and inductance estimator current. These parameters only applied to the motor identification and should be 10% of your motor nominal current. My motor has a high cogging torque that's why it required much more estimation current. When I identified the motor around 3.5A for RES_EST_CURRENT and -3.5A for IND_EST_CURRENT, it started to rotate.
State diagram Waveform of current injection during estimation
The injected current should be high enough to generate a significant measurement in the ADC converter, and at the same time low enough to avoid motor overheating.
I got kind of similar waveform with a low cost current sensor.
In this test, I will show you how to implement InstaSpin 4 quadrant operation. I made a small dyno system with two same 105W 24V BLDC motor. Motor 1 working in speed mode with lab10a, motor 2 working in torque mode with lab5b
Unfortunately, InstaSpin Gui is not supported run Two Gui at the same time. I used two computers to make this test. Adjustable power supply connected with two BOOSTXL-DRV8301 and Piccolo F28027F LaunchPad.
Quadrant 1: Speed + Torque +
Quadrant 2: Speed + Torque -
Quadrant 3: Speed - Torque -
Quadrant 4: Speed - Torque +
I applied to motor 1 ± 2000RPM speed command and ± 1, 2, 3 torque command to motor 2 as an active load for every quadrant.
RoadTest took a long time to complete. But InstaSpin labs and Motorware Gui Guide helpful to understand InstaSpin.
Motor drive bundle is a quite good packet to start InstaSpin FOC Motor control.Drv8301 Boosterpack is compact and has many futures.However, there is no test point on BoosterPack. Launchpad S1 and S4 switch a bit large that's why BoosterPack doesn't place well.
There are 19 Labs for this kit and they are well documented but some of them are not. Sensored motor lab examples not for F28027F launchpad. CCS is powerful IDE but takes time to learn for new users.
I think Ti can make a step by step video for every lab instead of long pdf documentation. This can be a better move in the Labs. Motorware Universal Gui contains everything you need during the Labs. You can add your variables and widget to Gui.
Overall they made great PMSM and ACIM motor control Library and HW. If you want to learn and implement very detailed field oriented control, this will be a good choice to start not only for the detailed document but also well support Ti community.
Top Comments
Faruk,
This is an excellent roadtest review! Job well done. I thought that you covered everything in very good detail and I enjoyed your videos.
Good job!
Gene
Well written review. I liked that you tried running a different motor than the one provided, and also the back-to-back configuration. Somehow I feel that there is a discrepancy between Quadrant 1 and 3…
najath I am sorry for the late reply. I realized the difference between these two quadrants. I will post the result after test again