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.

F28027F & BoostXL DRV8301. Cannot change "EnableSys" Value.

Other Parts Discussed in Thread: CONTROLSUITE, MOTORWARE

Hi all,

I am still poking around a bit with the example project provided with the kit. And everything onward from project 3a does not want to run.

I can place "Run_Identify" on 1 but "enableSys" never wants to change of value for some reason. It always flips back to 0 when I try to enter a 1 as shown below.

Any Idea how I can make the labs run?

  • Hi,

    Can you direct me to the directory in controlSuite / motorware where this project is placed?

    Regards,
    Gautam

  • C:\ti\motorware\motorware_1_01_00_14\sw\solutions\instaspin_foc\boards\boostxldrv8301_revB\f28x\f2802xF\projects\ccs5

    It is a motorware file and not a controlsuite one.
  • can you've a look here?
    Thanks.

    Regards,
    Gautam
  • note the User_ErrorCode in the first image.

    you need to correct the error.

    search user.c for the Error Code and check that logic that is causing it to be set.

    There is an issue with the IQ_FULL_SCALE_VOLTAGE and the value you are using for USER_MOTOR_FLUX most likely. Probably happened when you updated your USER_MOTOR values per the instructions in lab03.  Typo?

  • Oh shoot, seem to have looked straight over that. I did change the user.h values.
    Will take a look and report back.
  • These are the values I entered, there seems to be nothing wrong with them. They are all very close to the original read outs.

    Do you see anything wrong here?

    #elif (USER_MOTOR == My_Motor)
    #define USER_MOTOR_TYPE MOTOR_Type_Pm
    #define USER_MOTOR_NUM_POLE_PAIRS (3)
    #define USER_MOTOR_Rr (NULL)
    #define USER_MOTOR_Rs (5.489)
    #define USER_MOTOR_Ls_d (0.0029)
    #define USER_MOTOR_Ls_q (0.0029)
    #define USER_MOTOR_RATED_FLUX (0.2470)
    #define USER_MOTOR_MAGNETIZING_CURRENT (NULL)
    #define USER_MOTOR_RES_EST_CURRENT (3.0)
    #define USER_MOTOR_IND_EST_CURRENT (-0.5)
    #define USER_MOTOR_MAX_CURRENT (20.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz (20.0)
  • per user.c
    this error code is set when:

    if((USER_IQ_FULL_SCALE_VOLTAGE_V <= 0.0) ||
    (USER_IQ_FULL_SCALE_VOLTAGE_V <= (0.5 * USER_MOTOR_MAX_CURRENT * USER_MOTOR_Ls_d * USER_VOLTAGE_FILTER_POLE_rps)) ||
    (USER_IQ_FULL_SCALE_VOLTAGE_V <= (0.5 * USER_MOTOR_MAX_CURRENT * USER_MOTOR_Ls_q * USER_VOLTAGE_FILTER_POLE_rps)))
    {
    USER_setErrorCode(pUserParams, USER_ErrorCode_iqFullScaleVoltage_V_Low);
    }

    what is your
    USER_IQ_FULL_SCALE_VOLTAGE_V

    and

    USER_VOLTAGE_FILTER_POLE_rps
    ?

    you have a large Bemf (flux) motor for using a 24V bus...
  • Hi Chriss,

    If with USER_IQ_FULL_SCALE_VOLTAGE_V you mean the voltage which I am applying to the board & motor then I can tell you that it fluctuates between 23.95 & 23.98 volts, which practically is 24V.

    I do not know what the USER_VOLTAGE_FILTER_POLE_rps means.

    However I do have to tell you that I am not running the motor on which I am currently testing in a standalone application.

    The motor which this data is from, is part of this robot arm. It drives the runing of the shaft at the bottom which I have circled.

    Do I, in order to have accurate readings, have to take the motor out of the robot and let it run on its own?

  • you have a user.h file associated with the projects. The variables mentioned are in that file. What values are you using?
    Look at the logic I posted, find the variables in user.h, can do the calculations.
    something is set incorrectly.

    "Do I, in order to have accurate readings, have to take the motor out of the robot and let it run on its own?"

    As long as you aren't loading the motor it should ID fine in this set-up. During ID does the motor start spinning to it's target speed? Does it continue spinning the ENTIRE time until RampDown and Motor Identified? If so - and the values look reasonable (which yours do) - it is fine.
  • Hi Chriss,


    I went on an expedition in my User.h file and found the following

    If I would calculate that formula I would end up with the following value: 2291,36.

    When I then enther the USER_VOLTAGE_FILTER_POLE_rps value together with the other ones in the following formula, I get this:

    USER_IQ_FULL_SCALE_VOLTAGE_V <= (0.5 *20 * 0,002875537 * 2291,36) = 65

    Which is bigger than 23,95 so it does indeed trigger the error code. I however do not see where my mistake in all this is.

  • USER_IQ_FULL_SCALE_VOLTAGE_V <= (0.5 * USER_MOTOR_MAX_CURRENT * USER_MOTOR_Ls_d * USER_VOLTAGE_FILTER_POLE_rps

    USER_IQ_FULL_SCALE_VOLTAGE_V <= (0.5 * 20 * 0.0029* 2.0 * Pi * 364.682)

    USER_IQ_FULL_SCALE_VOLTAGE_V <= 66.475

    what is the value you are using for USER_IQ_FULL_SCALE_VOLTAGE_V ?
  • I'm guessing you are using something like (24.0)

    that is why this error is getting set.

    setting to (70.0) should clear the error, but what this is saying is that the motor parameters of this motor are beyond the scale of the hardware/settings you are using. Are you sure you have selected the correct hardware? Are you sure you know the rated voltage and current of this motor?
  • ChrisClearman said:
     Are you sure you know the rated voltage and current of this motor?

    Yeah I thought I did but It seems that I simply entered the data of the wrong motor in this file. I swapped them around and now I don't get the error anymore!

    I was still encountering some weird debugging problem with the variables not responding last friday but that seemed to have cleared out by itself somehow. Thanks for the help!