Tool/software:
I’m working with the MCT8316A BLDC motor controller on the dev board to drive a small liquid pump at a constant speed. It is configured for analog speed input and closed-loop power control, limiting at 25W.
Everything works as expected when the board starts up with 0V on the SPEED/WAKE pin and the speed is increased after the chip is active. In this case, the controller correctly limits power at approximately 24.5W, even when manually stalling the rotor—the power draw stays under 25W.
Below is an oscilloscope capture from this state. Green represents phase A current, and yellow represents phase A voltage. Could anyone explain why there is a "dimple" towards the end of the current peak?
However, when VBAT power is cycled while the SPEED/WAKE pin is held high (3.3V)—commanding maximum speed (25W)—the controller seems to lose power regulation. The pump runs at approximately 26.5W, and if the rotor is stalled, the power ramps up well beyond 30W instead of being limited at 25W. The motor also sounds different, even though it still switches at 20kHz. Below is an oscilloscope capture from this state. As you can see, the current now peaks relatively evenly, without the previously observed "dimple."
Interestingly, this issue can be resolved by driving the SPEED/WAKE pin low and then ramping up high again. Once the state machine returns to idle and realigns the motor, everything works correctly.
- What is the startup behavior when SPEED/WAKE is high on boot? Which loop is in control?
- Is there an easy way to ensure the power control loop consistently enforces the 25W limit, even on startup with SPEED/WAKE high?
02-04-2025 Update: The driver can also enter this faulty state—where it loses the ability to regulate correctly—by toggling the BRAKE switch. After a few toggles, it eventually ends up in this bad state.
Interestingly, during this state, the GUI reports DC_BATT_POW = 13.55W, while the actual circuit draws 25.7W, and it can exceed 30W with a stalled rotor. It seems like the power control loop loses the ability to accurately detect input current draw. Any thoughts on what might be causing this?
Any insights or configuration suggestions would be greatly appreciated! Below is my register configuration:
{ "signature": "oneui-register-data", "data": [ [ { "idx": 0, "id": "isd_config", "value": "0x6F04C100" }, { "idx": 1, "id": "motor_startup1", "value": "0x38C6D197" }, { "idx": 2, "id": "motor_startup2", "value": "0x1B39D990" }, { "idx": 3, "id": "closed_loop1", "value": "0x1145F200" }, { "idx": 4, "id": "closed_loop2", "value": "0x0272D4C8" }, { "idx": 5, "id": "closed_loop3", "value": "0x4CC40101" }, { "idx": 6, "id": "closed_loop4", "value": "0x000CE944" }, { "idx": 7, "id": "const_speed", "value": "0x00000506" }, { "idx": 8, "id": "const_pwr", "value": "0x0640464D" }, { "idx": 9, "id": "150_deg_two_ph_profile", "value": "0x36DB6DA6" }, { "idx": 10, "id": "150_deg_three_ph_profile", "value": "0x36DB6D80" }, { "idx": 11, "id": "trap_config1", "value": "0x054BA106" }, { "idx": 12, "id": "trap_config2", "value": "0x42880000" } ], [ { "idx": 0, "id": "fault_config1", "value": "0x78FC4822" }, { "idx": 1, "id": "fault_config2", "value": "0x7147A009" } ], [ { "idx": 0, "id": "gd_config1", "value": "0x1C440109" }, { "idx": 1, "id": "gd_config2", "value": "0x14800000" } ], [ { "idx": 0, "id": "pin_config1", "value": "0x2D720600" }, { "idx": 1, "id": "pin_config2", "value": "0x080C0000" }, { "idx": 2, "id": "device_config", "value": "0x7FFF0000" }, { "idx": 3, "id": "peri_config", "value": "0x00000000" } ], [ { "idx": 0, "id": "ana_trim3", "value": "0x48004800" }, { "idx": 1, "id": "ana_trim4", "value": "0x00000000" }, { "idx": 2, "id": "ana_trim5", "value": "0x00000039" }, { "idx": 3, "id": "ana_trim6", "value": "0x00000000" }, { "idx": 4, "id": "ana_trim7", "value": "0x00000000" }, { "idx": 5, "id": "ana_trim8", "value": "0x00004AA4" }, { "idx": 6, "id": "ana_trim9", "value": "0x008DE820" }, { "idx": 7, "id": "ana_trim10", "value": "0x536B023B" } ], [ { "idx": 0, "id": "algo_reserved1", "value": "0x00000000" }, { "idx": 1, "id": "algo_reserved2", "value": "0x00000000" }, { "idx": 2, "id": "algo_reserved3", "value": "0x00000000" } ], [ { "idx": 0, "id": "gate_driver_fault_status", "value": "0x00000000" }, { "idx": 1, "id": "controller_fault_status", "value": "0x00000000" } ], [ { "idx": 0, "id": "sys_status1", "value": "0x0119FF10" }, { "idx": 1, "id": "sys_status2", "value": "0x200105CB" }, { "idx": 2, "id": "sys_status3", "value": "0x00E10631" } ], [ { "idx": 0, "id": "device_ctrl", "value": "0x00000000" } ], [ { "idx": 0, "id": "algo_ctrl1", "value": "0x00000000" } ] ] }