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.

MCT8329A: [MCT8329A] How to start BLDC softly from 0 rpm to Max speed.

Part Number: MCT8329A

Hi team,

We are studying variable speed control, but are having difficulty getting the machine to run at a slow, gradual speed from 0 rpm with a load applied.

We are considering using the attached parameters, but are there any improvements that we can make to allow gradual low-speed operation from 0 rpm?

Currently, the motor has a maximum speed of 3800 rpm, but when I input a speed input, the motor rotates to 1500 rpm at once, and I am unable to maintain a low speed of 100 rpm or 200 rpm.

The speed input is a PWM input with forward reverse control.

20230904_IPD_regs.txt
{
  "signature": "oneui-register-data",
  "data": [
    [
      {
        "idx": 0,
        "id": "isd_config",
        "value": "0x7F410D84"
      },
      {
        "idx": 1,
        "id": "motor_startup1",
        "value": "0x3B93EAF9"
      },
      {
        "idx": 2,
        "id": "motor_startup2",
        "value": "0x672D3282"
      },
      {
        "idx": 3,
        "id": "closed_loop1",
        "value": "0x2179F600"
      },
      {
        "idx": 4,
        "id": "closed_loop2",
        "value": "0x03AA80BA"
      },
      {
        "idx": 5,
        "id": "closed_loop3",
        "value": "0x34C92001"
      },
      {
        "idx": 6,
        "id": "closed_loop4",
        "value": "0x601ADFF8"
      },
      {
        "idx": 7,
        "id": "const_speed",
        "value": "0x30010001"
      },
      {
        "idx": 8,
        "id": "const_pwr",
        "value": "0x1BB80640"
      },
      {
        "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": "0x6DAD6E12"
      },
      {
        "idx": 12,
        "id": "ref_profiles2",
        "value": "0x497999B9"
      },
      {
        "idx": 13,
        "id": "ref_profiles3",
        "value": "0x7626360E"
      },
      {
        "idx": 14,
        "id": "ref_profiles4",
        "value": "0x007F8000"
      },
      {
        "idx": 15,
        "id": "ref_profiles5",
        "value": "0x40000000"
      },
      {
        "idx": 16,
        "id": "ref_profiles6",
        "value": "0x007F8000"
      }
    ],
    [
      {
        "idx": 0,
        "id": "algo_ctrl1",
        "value": "0x00000000"
      },
      {
        "idx": 1,
        "id": "device_ctrl",
        "value": "0x00000000"
      }
    ],
    [
      {
        "idx": 0,
        "id": "ana_trim3",
        "value": "0x48004800"
      },
      {
        "idx": 1,
        "id": "ana_trim4",
        "value": "0x4800000000"
      },
      {
        "idx": 2,
        "id": "ana_trim5",
        "value": "0x00000048"
      },
      {
        "idx": 3,
        "id": "ana_trim6",
        "value": "0x00000000"
      },
      {
        "idx": 4,
        "id": "ana_trim7",
        "value": "0x00FE1B62"
      },
      {
        "idx": 5,
        "id": "ana_trim8",
        "value": "0x00005A71"
      },
      {
        "idx": 6,
        "id": "ana_trim9",
        "value": "0x00B1D8DE"
      },
      {
        "idx": 7,
        "id": "ana_trim10",
        "value": "0x53761F3C"
      }
    ],
    [
      {
        "idx": 0,
        "id": "fault_config1",
        "value": "0x717BB738"
      },
      {
        "idx": 1,
        "id": "fault_config2",
        "value": "0x1585C00A"
      }
    ],
    [
      {
        "idx": 0,
        "id": "gate_driver_fault_status",
        "value": "0x00000000"
      },
      {
        "idx": 1,
        "id": "controller_fault_status",
        "value": "0x00000000"
      }
    ],
    [
      {
        "idx": 0,
        "id": "gd_config1",
        "value": "0x000680FF"
      },
      {
        "idx": 1,
        "id": "gd_config2",
        "value": "0x00000000"
      }
    ],
    [
      {
        "idx": 0,
        "id": "pin_config1",
        "value": "0x20600002"
      },
      {
        "idx": 1,
        "id": "pin_config2",
        "value": "0x3E1020AA"
      },
      {
        "idx": 2,
        "id": "device_config",
        "value": "0x27104008"
      }
    ],
    [
      {
        "idx": 0,
        "id": "sys_status1",
        "value": "0x008E9966"
      },
      {
        "idx": 1,
        "id": "sys_status2",
        "value": "0x60010000"
      },
      {
        "idx": 2,
        "id": "sys_status3",
        "value": "0x00000000"
      }
    ]
  ]
}

  • Hi Okamoto-san,

    One of our team members will aim to provide a response by the end of this week.

    Regards,

    Anthony Lodi

  • Tomofumi,

    Hi - let me lead by saying that I am no expert, nor do I work for TI, so don't take what I say for granted. 

    If my knowledge serves me correctly, you should be able to change the Open-Loop acceleration rate (Hz/s) to something low enough that suits your application.  Assuming you are also enabling Closed-Loop, you will need to decide how many Open-Loop cycles you'd like to make before the Open-Closed Loop Hand-off.  Then you can adjust the Closed Loop acceleration rate to a low enough value to meet your needs.

    From my experience, fine tuning the Open-Closed Loop speeds is important as the motor may wind-up or wind-down depending on the acceleration rates during Hand-off. 

    Hope this helps.

    BenG

  • Hi Okamoto-san,

    Adding on to Ben's suggestion, changing the open loop and closed loop acceleration should help you achieve a more gradual low-speed operation.

    As a general guide on register settings to use for slow acceleration you can look at our Ultra-Slow and Slow Acceleration default values in the MCT8316A tuning guide. The register maps of the MCT8329 and MCT8316 are not the same but they have many of the same registers just some maybe in different locations.

    We recommend lowering the values in the registers OL_ACC_A1 and OL_ACC_A2 to lower the open loop acceleration. To lower the closed loop acceleration we recommend lowering the values for CL_ACC and CL_DEC. Also, since you are using the speed loop we recommend adjusting Kp and Ki.

    Regards,

    Joshua