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.

MCF8329EVM: Parameter setting

Part Number: MCF8329EVM

Tool/software:

Hi,

I am trying for my life to tune the multiverse of EEPROM settings for my motor using your evm, but I have no luck at all. It seems from my perspective that this part lacks alot in forms of documentation and support and a reliable EVM. I get all kinds of errors but most of them are related to different BEMF faults.

Please try and assist me. I have the following parameters on my motor;

Coil resistance: 0.26Ohm

Coil inductance 0.115mH

number of poles: 6 poles

BEMF-constant 1.32mV

Shunt resistor value: 10mOhm

Mximum rpm: 1500rpm

I have changed the hw value of the current sense resistor to 10mOhm as per recommendation, since the supplied EVM apparently is not stable with the default 1mOhm resistor. (Why did you not update the EVM hw, i bought this last week?)

Can someone at TI please send over the correct register settings to get the motor to spin? We have prototypes waiting to be sent out to our customer but right now they all seems impossible to use. I would need the complete EEPROM settings, for all registers. I am not able to figure out from the available datasheets or information myself on how to set them all up.

And also, I want to point out that the settings is full of secondary calculation needs, which are really unnessesary. I would argue that what every engineer that uses this part needs is input setting for the parameters above and not be thrown into endless calculations forth and back. 

  • Hi Mikael,

    Thanks for reaching out to us.

    Can you help me with following details, we will make a quick start document for you.

    1. Rated current

    2. Application and key care abouts

    We will create a JSON for you and share by tomorrow.

    Thanks and Best Regards

    Venkatadri S

  • Amazing, thanks!!

    The intended application is a small reversable water pump. The rated current is 15A max. Voltage 24V.

    We care about fast decelleration and speedy response in conjunction with low acoustic noise. I just need to get going and then ofc I will tune and change settings to our needs.

    Br,

    Mikael

  • Hi Mikael,

    From the spec you have provided I am using in the JSON

    In this JSON I am limiting the current delivery maximum to 7.5A, if you want to increase we can change FAULT_CONFIG1->ILIMIT value from 50% to higher, where 100% setting is 15A.

    Also, I have enabled current loop (torque loop) so the command % corresponds to percentage of current into the winding.

    The current percentage is with respect to ILIMIT.

    Since it is current mode Speed is not regulated, you have to watchout for speed of the motor and set the current command appropriately.

    Specification

    Coil resistance: 0.26Ohm - I assume this Phase to center tap  (Star or Delta we have to program Phase to Phase / 2)

    Coil inductance 0.115mH - I assume this Phase to center tap  (Star or Delta we have to program Phase to Phase / 2)

    number of poles: 6 poles

    BEMF-constant 1.32mV - I assume this Phase to center tap  (Star or Delta we have to program ((Peak to Peak/ 2)  / SQRT(3)) this is per phase BEMF

    Shunt resistor value: 10mOhm

    Mximum rpm: 1500rpm - Max speed in Hz is 150Hz

    You have mentioned current rating as 15A, I assume this is max peak current on a phase?

    First Step to set the base current  BASE CURRENT 

    • Register GD_CONFIG2->BASE_CURRENT: This parameter selects maximum current that can be delivered to the motor. The BASE CURRENT is used as reference and current thresholds are derived from the BASE CURRENT reference.
    • Example Open Loop Current Limit (MOTOR_STARTUP2àOL_ILIMIT, Close Loop current Limit FAULT_CONFIG1àILIMIT, LOCK_ILIMIT, HW_LOCK_ILIMIT) are derived from percentage of BASE CURRENT

    Calculating BASE CURRENT parameter

    • GD_CONFIG1 (0xAC) for CSA_GAIN selection (5V/V, 10V/V, 20V/V, 40V/V)
    • GD_CONFIG2 (0xAE) for BASE_CURRENT value (15 bit filed)

    BASE CURRENT =  {1.5/(RSHUNT*CSA_GAIN)}

    GD_CONFIG2 = BASE CURRENT * 32768 / 1200

    Example:

    Your board used 10mOhm Rshunt, CSA_GAIN = 10V/V

    BASE CURRENT = (1.5) / ( 0.01 * 10) = 15A

    GD_CONFIG2 = 30 * 32768 / 1200 = 409  = Hex value 0x199.

    The sample JSON

    {
    "signature":"oneui-register-data",
    "data":[
    [
    {
    "idx":0,
    "id":"ISD_CONFIG",
    "value":"0x64A294A1",
    "addr":"0x00000080"
    },
    {
    "idx":1,
    "id":"REV_DRIVE_CONFIG",
    "value":"0x48300000",
    "addr":"0x00000082"
    },
    {
    "idx":2,
    "id":"MOTOR_STARTUP1",
    "value":"0x49470D40",
    "addr":"0x00000084"
    },
    {
    "idx":3,
    "id":"MOTOR_STARTUP2",
    "value":"0x1B03200F",
    "addr":"0x00000086"
    },
    {
    "idx":4,
    "id":"CLOSED_LOOP1",
    "value":"0x1D3911B8",
    "addr":"0x00000088"
    },
    {
    "idx":5,
    "id":"CLOSED_LOOP2",
    "value":"0x0AAD573A",
    "addr":"0x0000008A"
    },
    {
    "idx":6,
    "id":"CLOSED_LOOP3",
    "value":"0x04000002",
    "addr":"0x0000008C"
    },
    {
    "idx":7,
    "id":"CLOSED_LOOP4",
    "value":"0x48A00384",
    "addr":"0x0000008E"
    },
    {
    "idx":8,
    "id":"REF_PROFILES1",
    "value":"0x22818347",
    "addr":"0x00000094"
    },
    {
    "idx":9,
    "id":"REF_PROFILES2",
    "value":"0x072829AB",
    "addr":"0x00000096"
    },
    {
    "idx":10,
    "id":"REF_PROFILES3",
    "value":"0x47379728",
    "addr":"0x00000098"
    },
    {
    "idx":11,
    "id":"REF_PROFILES4",
    "value":"0x007FDF47",
    "addr":"0x0000009A"
    },
    {
    "idx":12,
    "id":"REF_PROFILES5",
    "value":"0x9B13CDF8",
    "addr":"0x0000009C"
    },
    {
    "idx":13,
    "id":"REF_PROFILES6",
    "value":"0x000D7FC2",
    "addr":"0x0000009E"
    }
    ],
    [
    {
    "idx":0,
    "id":"FAULT_CONFIG1",
    "value":"0x3E67B1A7",
    "addr":"0x00000090"
    },
    {
    "idx":1,
    "id":"FAULT_CONFIG2",
    "value":"0x7F47A888",
    "addr":"0x00000092"
    }
    ],
    [
    {
    "idx":0,
    "id":"INT_ALGO_1",
    "value":"0x0940027D",
    "addr":"0x000000A0"
    },
    {
    "idx":1,
    "id":"INT_ALGO_2",
    "value":"0x0200822B",
    "addr":"0x000000A2"
    }
    ],
    [
    {
    "idx":0,
    "id":"PIN_CONFIG",
    "value":"0x48021300",
    "addr":"0x000000A4"
    },
    {
    "idx":1,
    "id":"DEVICE_CONFIG1",
    "value":"0x00100002",
    "addr":"0x000000A6"
    },
    {
    "idx":2,
    "id":"DEVICE_CONFIG2",
    "value":"0x03E8D00C",
    "addr":"0x000000A8"
    },
    {
    "idx":3,
    "id":"PERI_CONFIG1",
    "value":"0x69445CE0",
    "addr":"0x000000AA"
    },
    {
    "idx":4,
    "id":"GD_CONFIG1",
    "value":"0x00008079",
    "addr":"0x000000AC"
    },
    {
    "idx":5,
    "id":"GD_CONFIG2",
    "value":"0x00000199",
    "addr":"0x000000AE"
    }
    ],
    [
    {
    "idx":0,
    "id":"GATE_DRIVER_FAULT_STATUS",
    "value":"0x01000000",
    "addr":"0x000000E0"
    },
    {
    "idx":1,
    "id":"CONTROLLER_FAULT_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E2"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_STATUS",
    "value":"0x00000004",
    "addr":"0x000000E4"
    },
    {
    "idx":1,
    "id":"MTR_PARAMS",
    "value":"0x00000000",
    "addr":"0x000000E6"
    },
    {
    "idx":2,
    "id":"ALGO_STATUS_MPET",
    "value":"0x05000000",
    "addr":"0x000000E8"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_CTRL1",
    "value":"0x00000000",
    "addr":"0x000000EA"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_DEBUG1",
    "value":"0x80000000",
    "addr":"0x000000EC"
    },
    {
    "idx":1,
    "id":"ALGO_DEBUG2",
    "value":"0x00000000",
    "addr":"0x000000EE"
    },
    {
    "idx":2,
    "id":"CURRENT_PI",
    "value":"0x0375038A",
    "addr":"0x000000F0"
    },
    {
    "idx":3,
    "id":"SPEED_PI",
    "value":"0x00000000",
    "addr":"0x000000F2"
    },
    {
    "idx":4,
    "id":"DAC_1",
    "value":"0x00000000",
    "addr":"0x000000F4"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGORITHM_STATE",
    "value":"0x0000000E",
    "addr":"0x00000196"
    },
    {
    "idx":1,
    "id":"FG_SPEED_FDBK",
    "value":"0x7FFFFFFF",
    "addr":"0x0000019C"
    },
    {
    "idx":2,
    "id":"BUS_CURRENT",
    "value":"0x00000000",
    "addr":"0x0000040E"
    },
    {
    "idx":3,
    "id":"PHASE_CURRENT_A",
    "value":"0x00000000",
    "addr":"0x0000043C"
    },
    {
    "idx":4,
    "id":"PHASE_CURRENT_B",
    "value":"0x00000000",
    "addr":"0x0000043E"
    },
    {
    "idx":5,
    "id":"PHASE_CURRENT_C",
    "value":"0x00000000",
    "addr":"0x00000440"
    },
    {
    "idx":6,
    "id":"CSA_GAIN_FEEDBACK",
    "value":"0x00000003",
    "addr":"0x00000450"
    },
    {
    "idx":7,
    "id":"VOLTAGE_GAIN_FEEDBACK",
    "value":"0x00000002",
    "addr":"0x00000458"
    },
    {
    "idx":8,
    "id":"VM_VOLTAGE",
    "value":"0x019C0000",
    "addr":"0x0000045C"
    },
    {
    "idx":9,
    "id":"PHASE_VOLTAGE_VA",
    "value":"0x0206885F",
    "addr":"0x00000460"
    },
    {
    "idx":10,
    "id":"PHASE_VOLTAGE_VB",
    "value":"0x02168DDE",
    "addr":"0x00000462"
    },
    {
    "idx":11,
    "id":"PHASE_VOLTAGE_VC",
    "value":"0x02168DDE",
    "addr":"0x00000464"
    },
    {
    "idx":12,
    "id":"SIN_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004AA"
    },
    {
    "idx":13,
    "id":"COS_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004AC"
    },
    {
    "idx":14,
    "id":"IALPHA",
    "value":"0x00000000",
    "addr":"0x000004CC"
    },
    {
    "idx":15,
    "id":"IBETA",
    "value":"0x00000000",
    "addr":"0x000004CE"
    },
    {
    "idx":16,
    "id":"VALPHA",
    "value":"0x00000000",
    "addr":"0x000004D0"
    },
    {
    "idx":17,
    "id":"VBETA",
    "value":"0x00000000",
    "addr":"0x000004D2"
    },
    {
    "idx":18,
    "id":"ID",
    "value":"0x00000000",
    "addr":"0x000004DC"
    },
    {
    "idx":19,
    "id":"IQ",
    "value":"0x00000000",
    "addr":"0x000004DE"
    },
    {
    "idx":20,
    "id":"VD",
    "value":"0x00000000",
    "addr":"0x000004E0"
    },
    {
    "idx":21,
    "id":"VQ",
    "value":"0x00000000",
    "addr":"0x000004E2"
    },
    {
    "idx":22,
    "id":"IQ_REF_ROTOR_ALIGN",
    "value":"0x00000000",
    "addr":"0x0000051A"
    },
    {
    "idx":23,
    "id":"SPEED_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x00000532"
    },
    {
    "idx":24,
    "id":"IQ_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x00000542"
    },
    {
    "idx":25,
    "id":"SPEED_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x000005D0"
    },
    {
    "idx":26,
    "id":"ID_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x0000060A"
    },
    {
    "idx":27,
    "id":"IQ_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x0000060C"
    },
    {
    "idx":28,
    "id":"ISD_STATE",
    "value":"0x00000000",
    "addr":"0x000006B0"
    },
    {
    "idx":29,
    "id":"ISD_SPEED",
    "value":"0x00000000",
    "addr":"0x000006BA"
    },
    {
    "idx":30,
    "id":"IPD_STATE",
    "value":"0x00000000",
    "addr":"0x000006E4"
    },
    {
    "idx":31,
    "id":"IPD_ANGLE",
    "value":"0x00000000",
    "addr":"0x0000071A"
    },
    {
    "idx":32,
    "id":"ED",
    "value":"0x00000000",
    "addr":"0x0000075C"
    },
    {
    "idx":33,
    "id":"EQ",
    "value":"0x00000000",
    "addr":"0x0000075E"
    },
    {
    "idx":34,
    "id":"SPEED_FDBK",
    "value":"0x00000000",
    "addr":"0x0000076E"
    },
    {
    "idx":35,
    "id":"THETA_EST",
    "value":"0x00000000",
    "addr":"0x00000774"
    }
    ]
    ]
    }
    Thanks and Best Regards
    Venkatadri S
  • Thank you for the detailed answer!

    I have the motor running really well now. Now I also have a functional fallback if things go hay-wire. Superb.