MCT8329A: Facing issues in TI interface

Part Number: MCT8329A
Other Parts Discussed in Thread: MCF8329A,

Tool/software:

Hello TI Engineers,

I am currently working with the MCF8329A gate driver to run a BLDC motor. My goal is to operate the motor using PWM control, but in order to identify a stable parameter set for closed-loop operation, I am first testing the motor via I²C control.

The issue I am facing is that a parameter set which allows the motor to run smoothly in one attempt will often fail to work the next time. Instead of running, the device reports a “Loss of Sync” error.

For example:

  • If I set A1 = 0.005 Hz and A2 = 0.025 Hz, the motor may start and run correctly once.

  • However, if I attempt to run the motor again with the exact same parameters, it fails with “Loss of Sync.”

  • Strangely, changing the values (e.g., A1 = 0.1 Hz and A2 = 0.25 Hz) or any other random values sometimes makes it work again.

This behavior has left me confused, since I cannot determine which acceleration values (A1, A2) are actually correct for consistent startup. I have attached a video to demonstrate the issue, and I would appreciate your feedback.

In addition, I noticed another issue related to register settings. I saved a JSON register file from a working configuration. However, when I try to reload this same file later (File → Load Register), the motor does not run and instead shows a “Lock Current Limit” error. This happens even though the exact same file had worked before. I have attached the JSON file for your reference.

For context, here are the known specifications of my motor:

  • Mechanical speed: 16,000 rpm

  • Electrical frequency: 533 Hz

  • Resistance: 0.232 Ω

  • Inductance: 192 µH

  • Current rating: I have no idea of any current related parameters of my motor as I dont have access to datasheet or any other info. what i know is that this motor will take upto 5A in closed loop. startup can go upto 8 -10A. Nothing more than this.

At the moment, I am unsure which parameters are correct and why the same settings behave inconsistently. Any guidance on how to stabilize the configuration and avoid these errors would be greatly appreciated.

Json file: {
"signature": "oneui-register-data",
"data": [
[
{
"idx": 0,
"id": "isd_config",
"value": "0x00000000"
},
{
"idx": 1,
"id": "motor_startup1",
"value": "0x07000000"
},
{
"idx": 2,
"id": "motor_startup2",
"value": "0x0010A000"
},
{
"idx": 3,
"id": "closed_loop1",
"value": "0x00016000"
},
{
"idx": 4,
"id": "closed_loop2",
"value": "0x00000028"
},
{
"idx": 5,
"id": "closed_loop3",
"value": "0x00000000"
},
{
"idx": 6,
"id": "closed_loop4",
"value": "0x00000000"
},
{
"idx": 7,
"id": "const_speed",
"value": "0x00000000"
},
{
"idx": 8,
"id": "const_pwr",
"value": "0x10A80000"
},
{
"idx": 9,
"id": "150_deg_two_ph_profile",
"value": "0x00000000"
},
{
"idx": 10,
"id": "150_deg_three_ph_profile",
"value": "0x00000000"
},
{
"idx": 11,
"id": "ref_profiles1",
"value": "0x00000000"
},
{
"idx": 12,
"id": "ref_profiles2",
"value": "0x00000000"
},
{
"idx": 13,
"id": "ref_profiles3",
"value": "0x00000000"
},
{
"idx": 14,
"id": "ref_profiles4",
"value": "0x00000000"
},
{
"idx": 15,
"id": "ref_profiles5",
"value": "0x00000000"
},
{
"idx": 16,
"id": "ref_profiles6",
"value": "0x00000000"
}
],
[
{
"idx": 0,
"id": "algo_ctrl1",
"value": "0x00000000"
},
{
"idx": 1,
"id": "device_ctrl",
"value": "0x00000000"
}
],
[
{
"idx": 0,
"id": "ana_trim3",
"value": "0x00000000"
},
{
"idx": 1,
"id": "ana_trim4",
"value": "0x00000000"
},
{
"idx": 2,
"id": "ana_trim5",
"value": "0x00000000"
},
{
"idx": 3,
"id": "ana_trim6",
"value": "0x00000000"
},
{
"idx": 4,
"id": "ana_trim7",
"value": "0x00000000"
},
{
"idx": 5,
"id": "ana_trim8",
"value": "0x00000000"
},
{
"idx": 6,
"id": "ana_trim9",
"value": "0x00000000"
},
{
"idx": 7,
"id": "ana_trim10",
"value": "0x00000000"
}
],
[
{
"idx": 0,
"id": "fault_config1",
"value": "0x00000000"
},
{
"idx": 1,
"id": "fault_config2",
"value": "0x03000000"
}
],
[
{
"idx": 0,
"id": "gate_driver_fault_status",
"value": "0x00000000"
},
{
"idx": 1,
"id": "controller_fault_status",
"value": "0x00000000"
}
],
[
{
"idx": 0,
"id": "gd_config1",
"value": "0x00000000"
},
{
"idx": 1,
"id": "gd_config2",
"value": "0x00000000"
}
],
[
{
"idx": 0,
"id": "pin_config1",
"value": "0x00000002"
},
{
"idx": 1,
"id": "pin_config2",
"value": "0x00000000"
},
{
"idx": 2,
"id": "device_config",
"value": "0x00000400"
}
],
[
{
"idx": 0,
"id": "sys_status1",
"value": "0x00000000"
},
{
"idx": 1,
"id": "sys_status2",
"value": "0x00000000"
},
{
"idx": 2,
"id": "sys_status3",
"value": "0x00000000"
}
]
]
}

  • Hi Ashwin,

    I see some of the key motor parameters (Max. speed, Resistance, BEMF constant) are not configured in your JSON file.

    We have end equipment specific default JSON files uploaded here. Please use the one matching with your application as base and modify the motor phase resistance, phase inductance, BEMF constant and maximum speed configuration as per your motor specification.

    If these parameters are not available, please follow the procedure explained in the MCF8329 tuning guide to identify those parameters manually.

    Thanks,

    Dhinesh

  • I am really sorry for the confusion. I am using MCT8329A and not MCF8329A. so in the GUI of MCT, I could not anywhere where I can give the parameters of my motor except mechanical RPM. And for your reference all the problems which was mentioned above was for MCT8329A.

  • No problem, we will go through the configurations once again and provide our feedback by tomorrow.

    Thanks,

    Dhinesh

  • Did you notice any issues in the parameters above? What could be causing the unexpected behavior of the interface? Please take a look at the video I attached above — it clearly demonstrates the problem I am referring to.

  • HI Ashwin,

    We reviewed the JSON file once again, many of the parameters like motor align, open loop currents are not configured properly. we created the attached tuning file for given motor parameters. 1mohms is the shunt resister used for this tuning.


    {
      "signature": "oneui-register-data",
      "data": [
        [
          {
            "idx": 0,
            "id": "isd_config",
            "value": "0x7F404D02"
          },
          {
            "idx": 1,
            "id": "motor_startup1",
            "value": "0x6C8A65B7"
          },
          {
            "idx": 2,
            "id": "motor_startup2",
            "value": "0x312D3295"
          },
          {
            "idx": 3,
            "id": "closed_loop1",
            "value": "0x10260600"
          },
          {
            "idx": 4,
            "id": "closed_loop2",
            "value": "0x02A1A410"
          },
          {
            "idx": 5,
            "id": "closed_loop3",
            "value": "0x34C92001"
          },
          {
            "idx": 6,
            "id": "closed_loop4",
            "value": "0x001AC953"
          },
          {
            "idx": 7,
            "id": "const_speed",
            "value": "0x30010000"
          },
          {
            "idx": 8,
            "id": "const_pwr",
            "value": "0x1F400640"
          },
          {
            "idx": 9,
            "id": "150_deg_two_ph_profile",
            "value": "0x24DB7200"
          },
          {
            "idx": 10,
            "id": "150_deg_three_ph_profile",
            "value": "0x48DB6946"
          },
          {
            "idx": 11,
            "id": "ref_profiles1",
            "value": "0x032184A6"
          },
          {
            "idx": 12,
            "id": "ref_profiles2",
            "value": "0x34C80AFC"
          },
          {
            "idx": 13,
            "id": "ref_profiles3",
            "value": "0x4787D70C"
          },
          {
            "idx": 14,
            "id": "ref_profiles4",
            "value": "0x000C9932"
          },
          {
            "idx": 15,
            "id": "ref_profiles5",
            "value": "0x1F6BF200"
          },
          {
            "idx": 16,
            "id": "ref_profiles6",
            "value": "0x00708000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "algo_ctrl1",
            "value": 0
          },
          {
            "idx": 1,
            "id": "device_ctrl",
            "value": "0x00008000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "ana_trim3",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "ana_trim4",
            "value": "0x00000000"
          },
          {
            "idx": 2,
            "id": "ana_trim5",
            "value": "0x00000000"
          },
          {
            "idx": 3,
            "id": "ana_trim6",
            "value": "0x00000000"
          },
          {
            "idx": 4,
            "id": "ana_trim7",
            "value": "0x00000000"
          },
          {
            "idx": 5,
            "id": "ana_trim8",
            "value": "0x00000000"
          },
          {
            "idx": 6,
            "id": "ana_trim9",
            "value": "0x00000000"
          },
          {
            "idx": 7,
            "id": "ana_trim10",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "fault_config1",
            "value": "0x71783604"
          },
          {
            "idx": 1,
            "id": "fault_config2",
            "value": "0x7C85C00A"
          }
        ],
        [
          {
            "idx": 0,
            "id": "gate_driver_fault_status",
            "value": 0
          },
          {
            "idx": 1,
            "id": "controller_fault_status",
            "value": 0
          }
        ],
        [
          {
            "idx": 0,
            "id": "gd_config1",
            "value": "0x000600FF"
          },
          {
            "idx": 1,
            "id": "gd_config2",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "pin_config1",
            "value": "0x20600004"
          },
          {
            "idx": 1,
            "id": "pin_config2",
            "value": "0x180020AA"
          },
          {
            "idx": 2,
            "id": "device_config",
            "value": "0x27100008"
          }
        ],
        [
          {
            "idx": 0,
            "id": "sys_status1",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "sys_status2",
            "value": "0x00000000"
          },
          {
            "idx": 2,
            "id": "sys_status3",
            "value": "0x00000000"
          }
        ]
      ]
    }

    Thanks,

    Dhinesh

  • Hi Dhinesh,

    Thank you for the register file. The parameters still need to be tuned for proper motor running, and I have some doubts I hope you can clarify. I checked the registers in the MCT8329A GUI and did not see parameters related to motor resistance and inductance as in the MCF8329A. Does this mean motor resistance and inductance play no role in trapezoidal commutation? Also, you mentioned that the open-loop currents are not configured properly—could you please specify which exact parameters you are referring to?

    In addition, which parameters are related to the shunt resistor, and where should I update them if I am using a 3 mΩ shunt on my PCB? Above all, could you please mention the most important motor parameters (for ex. peak phase current, BEMF constant, mechanical rpm) that are absolutely necessary to spin the motor correctly for the MCT8329A—and, if possible, also for the MCF8329A—so I can understand the differences between the two gate drivers?

    Thank you,
    Ashwin

  • Hi Ashwin,

    Yes, you are correct. we don't have current loop control mode in trapezoidal device (MCT8329) as compared to FOC device (MCF8329) where current loop gains calculated based on the motor resistance and inductance values. 

    Please refer the MCF8329 tuning guide for more detailed explanation of critical parameters that are required to spin the motor. Similar kind of tuning guide is not available for MCT8329 but you can refer the MCT8316 tuning guide which is functionally equivalent. 

    Thanks,

    Dhinesh

  • Hi Dhinesh,

    First of all, thank you so much for all your support. I’ve successfully managed to get the motor spinning perfectly with the MCT8329A.

    I have one last question. As I mentioned earlier, I don't have many known parameters of my motor, but I do know that in closed-loop, the motor draws up to 5 A continuously, and during startup it can go up to 10–12 A.

    Based on this, you provided a register file with CBC_ILIMIT = 0.4 V, and I had set OL_ILIMIT = 0.4 V as well. This works fine on the EVM.

    Now, I'm moving to my own 24 V PCB, where I'm using a 3 mΩ shunt resistor instead of the EVM’s 1 mΩ. Could you please let me know the correct values for CBC_ILIMIT and OL_ILIMIT for this setup?

    Best regards,
    Ashwin

  • Hi Ashwin,

    For increase in shunt resister value from 1mohm to 3mohms, you need to increase all the current limit settings by 3 times. 

    Thanks,

    Dhinesh