MotorWare v18 Released

Motorware v18 has officially been released. Find some of the changes enumerated below:

  • HAL_setTrigger() change to fix issue where when USER_NUM_PWM_TICKS_PER_ISR_TICK was set to 2 or 3, and ISR execution time was less than half of ISR period, ADC trigger would sometimes be missed
  • Fixed issue in GPIO_setPortData() for F2805x that had incorrect parameter data width
  • Fixed usDelay() issues in all hal.c files, replaced with US_TO_CNT() macro
  • Fixed CMP saturation limit in HAL_WritePwmData() in hal.h for F2805x only, changed lower limit from _IQ(0.0) to 1
  • Update PWM_setSocAPulseSrc() in all pwm.c
  • Remove OVM functions in lab5h and remove svgen_current.c file in project
  • Fixed compiler error in hal.h for 06x projects with HVKit due to an error in #ifdef statement for HALL GPIO pin numbers
  • Fixed LED blinking timing error in main_ISR() for all FOC and MOTION files that have toggle led code (New Enhancement)
  • Changed the argument of CPU_USAGE_setParams() to variable instead of fixed timer period since timer period was changed in hal.c in MW17. Affects labs: 03b, 07, 11a, and 11b (these labs use the legacy CPU_USAGE module)
  • Changed the argument of FEM_setParams() to variable instead of fixed timer period since timer period was changed in hal.c in MW17. Affects labs: 03b, 07
  • Changed motor definition to resolve compiler error when using IPD projects in the below user.h files:
    • \boostxldrv8305_revA\28x\f2806xF\src\user_j1.h
    • \boostxldrv8305_revA\28x\f2806xF\src\user_j5.h

  • All functions running in main_ISR() in lab11x were added to “ramfunc” for reducing cycle time (New Enhancement)
  • Added lab07 and lab09 project for BoostXL-DRV8305 + F2806x  "boostxldrv8305_revA\f28x\f2806xF\projects\ccs"
  • Added Volt/Hertz module in modules/vs_freq/src directory. This module generates an output command voltage for a specific input command frequency according to the specified volts/hertz profile.
  • Added Angle Generator module in modules/angle_gen/src directory. This module generates angle output for a specific input command frequency.
  • Added proj_01b project for all kits and controllers.
  • Added proj_01c project for all kits and controllers.
  • Added gMotorVars[HAL_MTR2].CtrlVersion = version; to lab10d for bug fix
  • Relocated CLK_disableTbClockSync() to before timebase, compare control, action qualifier, dead band and trip zone initialization loops. This was done to fix issue where PWM sync could sometimes be lost when hard-resetting MCU
  • Changed RsRecalc functionality to have initial value of USER_MOTOR_Rs instead of 0, which will allow quicker settling time
  • Offsets removed from user_2motors.h to avoid issue where current/voltage offsets were defined in two separate header files
  • Added definition for updateRsOnLine() for lab11a, takes EST_Handle parameter instead of CTRL_Handle parameter as expected by runRsOnLine() in lab07
  • Added spi.c and drv8301.c source files to all F2802xF LaunchPad projects that were designed for DRV8301 BoosterPack

Sean

Did a reply answer your question? If yes, please click the "Verify Answer" button located at the bottom of that post.
Visit these helpful C2000 Links!

C2000 TI Wiki Pages
TI Forum Sitemap
ControlSUITE
C2000 Getting Started
CLA FAQs
Workshop Material!

14 Replies

  • In reply to Lori Heustess:

    Lori and Chris,

    Thanks for the clarifications. This legitimate response is very much appreciated.

    I've been programming for over 10 years and I have never needed to use an exe to get access to resources. It's not common practice.

    Also, I did use the Motorware exe to browse the resources, and it still took me 3 days to find the lab manual. I did find the pdf earlier, but I didn't scroll down past the list of labs. I just thought it was a list of labs. I can't be expected to read through a dozen pdfs just to get started.

    I couldn't use the demonstration GUI since I bought the 8305 Boosterpack.

    I understand that most of these issues have slowly arisen over time, but it has gotten messy enough that it is time for a complete rework. SO, I am very glad to hear that C2000Ware will replace Motorware. It sounds like a drastically better setup. Having the motor control system packaged as an SDK would be so much easier than just a bunch of files that need to be tightly woven into your own code.

    Even if the code isn't changed at all, it would become 100x more usable if each user-facing function and variable had documentation. Comments in code are not sufficient documentation.

  • Hi Sean, 

    For the lab01b, does it support and work for instaSPIN HIKIT with F28027F processor ? 

    In the proj01_lab01b.c , it has the following macro #ifndef F2802xF, does that mean this DAC parameter setup won't work for the 28027 processor ? Could you let me know why it has this macro #ifndef ?

    #ifndef F2802xF
    // set DAC parameters

    // gDacData.ptrData[0] = &gPwmData.Tabc.value[0];
    // gDacData.ptrData[1] = &gPwmData.Tabc.value[1];
    // gDacData.ptrData[2] = &gPwmData.Tabc.value[2];
    // gDacData.ptrData[3] = &gAdcData.V.value[0];

    gDacData.ptrData[0] = &angle_gen.Angle_pu;
    gDacData.ptrData[1] = &gAdcData.I.value[0];
    gDacData.ptrData[2] = &gPwmData.Tabc.value[0];
    gDacData.ptrData[3] = &gAdcData.V.value[0];

    HAL_setDacParameters(halHandle, &gDacData);
    #endif

    #ifndef F2802xF
    // Initialize Datalog
    datalogHandle = DATALOG_init(&datalog,sizeof(datalog));

    // Connect inputs of the datalog module
    // datalog.iptr[0] = &gPwmData.Tabc.value[0]; // datalogBuff[0]
    // datalog.iptr[1] = &gPwmData.Tabc.value[1]; // datalogBuff[1]
    // datalog.iptr[2] = &gPwmData.Tabc.value[2]; // datalogBuff[2]

    datalog.iptr[0] = &angle_gen.Angle_pu; // datalogBuff[0]
    datalog.iptr[1] = &gAdcData.I.value[0]; // datalogBuff[1]
    datalog.iptr[2] = &gAdcData.V.value[0]; // datalogBuff[2]

    datalog.Flag_EnableLogData = true;
    datalog.Flag_EnableLogOneShot = false;
    #endif

    // setup faults
    HAL_setupFaults(halHandle);

  • In reply to Yinghui Zhang:

    Yinghui, the F2802xF MCU does not support the PWMDAC or Datalog modules that are available for the F2805x and F2806x devices.

    Sean

    Did a reply answer your question? If yes, please click the "Verify Answer" button located at the bottom of that post.
    Visit these helpful C2000 Links!

    C2000 TI Wiki Pages
    TI Forum Sitemap
    ControlSUITE
    C2000 Getting Started
    CLA FAQs
    Workshop Material!
  • In reply to Sean Bigley:

    Sean, 

    Thanks a lot. For 28027F processor, on schmatic it has 8 channel PWM signal, we should have one spare PWM channel because we're not using PFC circuit (connect the jumper and bypass this circuit) and it'll give us the PWM-4. (Please see the following picture) 

    Could you please advise me how can I modify the code to use this spare channel? I'm trying to use motorware 11a with 28027F processor. 

    I trace to hal.c void HAL_setupGpios(HAL_Handle handle) , modified the GPIO setup for I/O 6 and 7:

    // PWM1-PFC
    GPIO_setMode(obj->gpioHandle,GPIO_Number_6,GPIO_4_Mode_EPWM4A);

    // PWM2-PFC
    GPIO_setMode(obj->gpioHandle,GPIO_Number_7,GPIO_4_Mode_EPWM4B);

    I think I'm missing something, how the DAC channel signal is correlated to PWM signal ? could you please help advise that ?

    Thanks,

    Yz