MCF8329EVM: Needs a training and demo on how to configure and use the module

Part Number: MCF8329EVM
Other Parts Discussed in Thread: MCF8329A

Tool/software:

Hi i had set up the hardware and Motor Studio Software. But after that i don't know how to move further steps to run the motor. Can anyone say how to use the module as well as provide some demo videos.

  • Hi,

    We are compiling a starting guide for the device, please give us a couple of days to share the content here.

    Thanks and regards,

    Sachin S

  • Hello,

           Did you done the document compilation?. Because I'm waiting for the documents to get started and use the TI Motor Studio. 

    Thanks and Regards,

    Rajapandi S

  • Hello Manu,

       I just reviewed the document. Its good to tune the TI Motor Studio. I had a doubt that can i run/spin the motor in a open loop state in S1 mode.

    Best Regards,

    Rajapandi S

  • Hi Rajapandi,

    Sachin is out of office, I will try to continue discussion until he returns.

    Can you provide more details about the requirement, open loop state means speed loop disabled? or Voltage mode?

    I will aim to send detailed steps by this week.

    Thanks and Best Regards

    Venkatadri S

  • Hello Venkatadri,

    Actually i exactly don't know what it means. I thought it means Voltage mode. Here are the required parameters to be achieve.

    1. DC-link voltage range -  18 to 45 V

     2. Rated voltage - 32V [S1 operation point(Open Loop @ 32V Block Operation)]

    3. Rated current RMS - 1.85A [S1 operation point, Tolerance +/-10% (open loop @ 32V Block Operation)]

    4. Rated speed - 4000 rpm [S1 operation point, Tolerance +/-7% (open loop @ 32V Block Operation)]

    5. Rated torque - 0.11 Nm [S1 operation point (Open loop @ 32V Block Operation)]

    6. Rated input power - 62 W

    7. Rated output power - 46 W

    8. Rated efficiency - 74 %

    9. Operation mode - S1

    10. Maximal peak torque - 0.51 Nm

    11. Maximal peak current - 8.6 A

    12. Overload (I peak/ I rated) - 4.65

    Note:

    Here are the clarification for the above parameters.

    Operation Mode @ maximal winding temperature rise

    Maximal Peak Torque @ maximal peak current (maybe lower value, caused by non-linearity)

    Maximal Peak Current @ T winding=90°C

    Maximal Peak Current, Overload @ max. demagnetization (loss of Back EMF) < 3%

  • Hi Rajapandi,

    Can you also provide Resistance and Inductance of the motor and number of poles.

    Thanks and Best Regards

    Venkatadri S

  • Hello Venkatadri,

           Actually the resistance is 1.5 Ohm for line to line, the inductances Ld is  3.9 mH for line to line and Lq is 4.5 mH for line to line. The number of poles is 4, BEMF Constant (Ke) for line to line is 59 mVs/rad, BEMF RMS voltage is 4.55 mV/rp for line to line.

    Regards,

    Rajapandi S

  • Hi Rajapandi,

    Thanks for additional details, is this low speed motor?

    What is the max RPM and pole pair?

    Thanks and Best Regards

    Venkatadri S

  • Hello Venkatadri,

    Max RPM is 7050 rpm and the Pole pairs are 2.

    Regards,

    Rajapandi S

  • Hi Rajapandi,

    Now I have all the required info, I will create the reference JSON and procedure for you.

    I request one day , I will reply over weekend.

    Thanks and Best Regards

    Venkatadri S

  • Good Morning Venkatadri,

        Well thank you for your time for this. No problem i will wait. You can create a procedure by covering all the required procedures.

    Best Regards,

    Rajapandi S

  • Hi Rajapandi,

    Thank you, I am will work on this and replay.

    Thanks and Best Regards

    Venkatadri S

  • Hello Venkatadri,

        Is it possible to share them end of today?. If you had any updates please give a reply as soon as possible.

    Thanks and Regards,

    Rajapandi S

  • Hi Rajapandi,

    I am sharing it today .

    I am looking to this now and try to share in few hours.

    Thanks and Best Regards

    Venkatadri S

  • Hi Rajapandi,

    Thanks for allowing time for us to work on this.

    Based on the parameters you provided I have created a JSON file; I am pasting the JSON in the second thread.

    Steps to follow to tune any motor with MCF8329A

    1. Set the motor parameters R, L, KE (BEMF Constant), Max speed in Electrical HZ.

    1.1 R, L has to be programmed for MCF8329A device - Measure R, L across two winding, divide by 2 and program.

    1.2 If motor has saliency measure LD, LQ and program the fields and if saliency not known or no saliency program same value to both LD, LQ fields.

    2. If KE (BEMF Constant) is unknown, measure KE using MPET or hand spin the rotor, measure peak voltage developed using voltage probe and measure the electrical frequency at which the measured voltage is observed. Then calculate the KE (mV/Hz) = (Peak voltage * time period between zero crossing of 1 full wave ) / SQRT(3).

    3. After learning about all the electrical parameters (R, L, KE), update the parameter in the GUI.

    4. Set the current reference (max rated current0

    4.1 BASE CURRENT in GD_CONFIG1 and GD_CONFIG2, from the spec provided max peak current is 9.6A.

    4.2 BASE CURRENT field is calculated with respect RSENSE / Shunt resistor, on the EVM we have default 1mohm and the reference JSON is calculated BASE CURRENT of 37.5A and corresponding fields in GD CONFIG is updated.

    4.3 But, we are not going to deliver 37A, we restrict the peak current through FAULT_CONFIG1[ILIMIT] which restricts peak torque current to 25% of BASE CURRENT which is 9.25A

    5. Next step is to spin the motor with simplest of control loop which is Voltage mode

    5.1 In MCF8329A provides 4 types of closed loop control modes, Speed Mode, Current Mode, Power Mode and Modulation Index based mode (aka Voltage mode). Among these, Voltage mode is simplest which will not have tuning need like rest all other three as they require PI loop to be tuned.

    6. Tuning field register for Voltage mode

    6.1 Register PERI_CONFIG [CTRL_MODE] = Modulation Index mode; and PIN_CONFIG [ LEAD_ANGLE] = Default 0, change this value when need to increase the speed or torque (if there is saliency)

    7. Test the motor spinning at 25%, 50% and up to 100%

    8. Once motor is able to spin we can switch to closed loops

    8.1 Begin with Current Loop: Optimize the performance and then switch to Speed / Power modes

    Additional notes

    In current Loop, command corresponds to percentage of current (ILIMIT) to the winding, this loop regulates the current and speed is not controlled.

    User has to carefully monitor the speed and provide the command. Also, if we provide very low current command motor may be able to spin properly in the current loop.

    The JSON file is not optimized for startup and any other feature, we focus on spinning the motor before getting to optimization.

    Please try the JSON in sharing in next thread and let us know.

    Thanks and Best Regards

    Venkatadri S

  • {
    "signature":"oneui-register-data",
    "data":[
    [
    {
    "idx":0,
    "id":"ISD_CONFIG",
    "value":"0x44C20000",
    "addr":"0x00000080"
    },
    {
    "idx":1,
    "id":"REV_DRIVE_CONFIG",
    "value":"0x00000000",
    "addr":"0x00000082"
    },
    {
    "idx":2,
    "id":"MOTOR_STARTUP1",
    "value":"0x05000000",
    "addr":"0x00000084"
    },
    {
    "idx":3,
    "id":"MOTOR_STARTUP2",
    "value":"0x1B02A005",
    "addr":"0x00000086"
    },
    {
    "idx":4,
    "id":"CLOSED_LOOP1",
    "value":"0x0E308088",
    "addr":"0x00000088"
    },
    {
    "idx":5,
    "id":"CLOSED_LOOP2",
    "value":"0x00009DBD",
    "addr":"0x0000008A"
    },
    {
    "idx":6,
    "id":"CLOSED_LOOP3",
    "value":"0x00000000",
    "addr":"0x0000008C"
    },
    {
    "idx":7,
    "id":"CLOSED_LOOP4",
    "value":"0x00000582",
    "addr":"0x0000008E"
    },
    {
    "idx":8,
    "id":"REF_PROFILES1",
    "value":"0x00000000",
    "addr":"0x00000094"
    },
    {
    "idx":9,
    "id":"REF_PROFILES2",
    "value":"0x00000000",
    "addr":"0x00000096"
    },
    {
    "idx":10,
    "id":"REF_PROFILES3",
    "value":"0x00000000",
    "addr":"0x00000098"
    },
    {
    "idx":11,
    "id":"REF_PROFILES4",
    "value":"0x00000000",
    "addr":"0x0000009A"
    },
    {
    "idx":12,
    "id":"REF_PROFILES5",
    "value":"0x00000000",
    "addr":"0x0000009C"
    },
    {
    "idx":13,
    "id":"REF_PROFILES6",
    "value":"0x00000000",
    "addr":"0x0000009E"
    }
    ],
    [
    {
    "idx":0,
    "id":"FAULT_CONFIG1",
    "value":"0x2D403001",
    "addr":"0x00000090"
    },
    {
    "idx":1,
    "id":"FAULT_CONFIG2",
    "value":"0x7F002088",
    "addr":"0x00000092"
    }
    ],
    [
    {
    "idx":0,
    "id":"INT_ALGO_1",
    "value":"0x00000000",
    "addr":"0x000000A0"
    },
    {
    "idx":1,
    "id":"INT_ALGO_2",
    "value":"0x00000000",
    "addr":"0x000000A2"
    }
    ],
    [
    {
    "idx":0,
    "id":"PIN_CONFIG",
    "value":"0x00000000",
    "addr":"0x000000A4"
    },
    {
    "idx":1,
    "id":"DEVICE_CONFIG1",
    "value":"0x00000000",
    "addr":"0x000000A6"
    },
    {
    "idx":2,
    "id":"DEVICE_CONFIG2",
    "value":"0x0000D000",
    "addr":"0x000000A8"
    },
    {
    "idx":3,
    "id":"PERI_CONFIG1",
    "value":"0x28000020",
    "addr":"0x000000AA"
    },
    {
    "idx":4,
    "id":"GD_CONFIG1",
    "value":"0x00000043",
    "addr":"0x000000AC"
    },
    {
    "idx":5,
    "id":"GD_CONFIG2",
    "value":"0x00000400",
    "addr":"0x000000AE"
    }
    ],
    [
    {
    "idx":0,
    "id":"GATE_DRIVER_FAULT_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E0"
    },
    {
    "idx":1,
    "id":"CONTROLLER_FAULT_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E2"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E4"
    },
    {
    "idx":1,
    "id":"MTR_PARAMS",
    "value":"0x00000000",
    "addr":"0x000000E6"
    },
    {
    "idx":2,
    "id":"ALGO_STATUS_MPET",
    "value":"0x00000000",
    "addr":"0x000000E8"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_CTRL1",
    "value":"0x00000000",
    "addr":"0x000000EA"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_DEBUG1",
    "value":"0x00000000",
    "addr":"0x000000EC"
    },
    {
    "idx":1,
    "id":"ALGO_DEBUG2",
    "value":"0x00000000",
    "addr":"0x000000EE"
    },
    {
    "idx":2,
    "id":"CURRENT_PI",
    "value":"0x00000000",
    "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":"0x00000000",
    "addr":"0x00000196"
    },
    {
    "idx":1,
    "id":"FG_SPEED_FDBK",
    "value":"0x00000000",
    "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":"0x00000000",
    "addr":"0x00000450"
    },
    {
    "idx":7,
    "id":"VOLTAGE_GAIN_FEEDBACK",
    "value":"0x00000000",
    "addr":"0x00000458"
    },
    {
    "idx":8,
    "id":"VM_VOLTAGE",
    "value":"0x00000000",
    "addr":"0x0000045C"
    },
    {
    "idx":9,
    "id":"PHASE_VOLTAGE_VA",
    "value":"0x00000000",
    "addr":"0x00000460"
    },
    {
    "idx":10,
    "id":"PHASE_VOLTAGE_VB",
    "value":"0x00000000",
    "addr":"0x00000462"
    },
    {
    "idx":11,
    "id":"PHASE_VOLTAGE_VC",
    "value":"0x00000000",
    "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"
    }
    ]
    ]
    }
  • Hi Venkatadri,

          Sorry for the delayed feedback. Thanks for your valuable time for providing this. I had checked the code to run the motor. Actually the motor has a Gear. Here are the following points i had noticed,

    1. Motor w/o gear runs at a speed of 7239 RPM at first try. And in second try the speed will be 7207 RPM. Input DC voltage for controller is 45 Vdc. Voltage consumed is 30.8 V for line to line. Current consumption is about 0.21A for a motor @ each try -  Its Fine

    2. Motor with gear runs at speed of 6194 RPM (measured on motor side not gear side) and current consuming is 0.4 A. -  This also Fine

    3. I tried to stall the motor (with gear) by applying load through a weight setup of W1, W2. the motor took around 6 A at its max but not stalled, instead the motor gets over heat than the parameter. So i manually turned off the motor. Also not yet achieved the requirement. - Need to fine tune (I will again check at my end until the motor gets stalled)

    The gear specifications are as below,

    1. The gear ratio is 13%

    2. Nominal Gear Speed is 308 RPM @ 4000 RPM of rated motor speed.

    3. Nominal gear torque 1.3 Nm @ 4000 RPM of rated motor speed.(Complete motor-gear unit)

    **Please recheck the same and fine tune if it possible. Or give me guidelines to fine tune each and every parameters. 

    Thanks and Regards,

    Rajapandi S

  • Hi Rajapandi,

    I will verify this and get back to you by this week.

    Thanks and Best Regards

    Venkatadri S

  • Hello Venkatadri, 

        hope this message finds you well.

        I would like to inquire if there are any updates available regarding the controller. Additionally, I have observed a recurring issue during testing that I would like to bring to your attention:

    1. When the controller is powered on, the motor starts running even with the I2C control enabled. As a result, the motor is not controllable through Motor Studio.

    2. In some instances, the motor does not start when the controller is powered on, but it draws excessive current, leading to coil burnout.

      This issue occurs multiple times daily during testing, and it has been significantly impacting the process. I kindly request your assistance in investigating and resolving this matter.

    Please let me know the status at your earliest convenience.

    Thank you for your support.


    Best regards,

    Rajapandi S

  • Hi Venkatadri,

          Did you have any update on this?. Please take a look on this and provide the solution for this.

    Thanks and Regards,

    Rajapandi S