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: BLDC Sensor less Trapezoidal Control

Part Number: MCT8329A
Other Parts Discussed in Thread: MCT8329EVM

Tool/software:

Hello Sir,

Currently I am working on MCT8329A and able to control the motor speed in closed loop. But by using the current sense resistor we couldn't limit the current accordingly, based on ILIMIT which I have to mention in the GUI.

Whatever the formula mentioned in the datasheet, ILIMIT is calculated and accordingly set the same value in the GUI considering the 10mOHM instead of 1mOHM. While loading the motor, it is giving the fault above the ILIMIT instead exactly at that ILIMIT. 

Initially, it is clearly mentioned the different offsets for unidirectional and bidirectional. But in case of registers setting for bidirectional offset is 0 and 0.075 for unidirectional. I think there is an issue with offset. It has to give the fault exactly at the ILIMIT set in GUI.

  • Hi Anurag,

    Thanks for reaching out, could you please tell me at what value of current you are seeing the fault?

    Regards,
    Sachin S

  • Since the CSA gain is set at 5V/V and the sense resistor is 6.66mOhm, the CBC ILIMIT value is 0.3V to 0.6V for the actual current value of 7A that I wish to sense fault but it is giving the fault at 2.4A. However, when the CBC ILIMIT set to 0.7V to 1.5V, it will detect a fault at 9A current instead at 7A considering the same CSA gain and sense resistor.

  • Hi Anurag,

    Thanks for the details. Could you please share your complete register configuration. The CBC_ILIMIT should be able to chop the current at the set value given HW_LOCK_ILIMIT and LOCK_ILIMIT are set above the CBC_ILIMIT.

    Regards,
    Sachin S

  • Both are set to the same value(CBC_ILIMIT and LOCK_ILIMIT).

    {
    "signature": "oneui-register-data",
    "data": [
    [
    {
    "idx": 0,
    "id": "isd_config",
    "value": "0x7F404D02"
    },
    {
    "idx": 1,
    "id": "motor_startup1",
    "value": "0x7C9065B7"
    },
    {
    "idx": 2,
    "id": "motor_startup2",
    "value": "0x57AD3295"
    },
    {
    "idx": 3,
    "id": "closed_loop1",
    "value": "0x1226A600"
    },
    {
    "idx": 4,
    "id": "closed_loop2",
    "value": "0x02A1A43E"
    },
    {
    "idx": 5,
    "id": "closed_loop3",
    "value": "0x34C92001"
    },
    {
    "idx": 6,
    "id": "closed_loop4",
    "value": "0x001AC953"
    },
    {
    "idx": 7,
    "id": "const_speed",
    "value": "0x30010015"
    },
    {
    "idx": 8,
    "id": "const_pwr",
    "value": "0x08580640"
    },
    {
    "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": "0x00000000"
    },
    {
    "idx": 1,
    "id": "device_ctrl",
    "value": "0x00008000"
    }
    ],
    [
    {
    "idx": 0,
    "id": "ana_trim3",
    "value": "0x48004800"
    },
    {
    "idx": 1,
    "id": "ana_trim4",
    "value": "0x2700000000"
    },
    {
    "idx": 2,
    "id": "ana_trim5",
    "value": "0x00000027"
    },
    {
    "idx": 3,
    "id": "ana_trim6",
    "value": "0x00000000"
    },
    {
    "idx": 4,
    "id": "ana_trim7",
    "value": "0x00000000"
    },
    {
    "idx": 5,
    "id": "ana_trim8",
    "value": "0x00004AE9"
    },
    {
    "idx": 6,
    "id": "ana_trim9",
    "value": "0x00A5771C"
    },
    {
    "idx": 7,
    "id": "ana_trim10",
    "value": "0x5373E03B"
    }
    ],
    [
    {
    "idx": 0,
    "id": "fault_config1",
    "value": "0x717A3620"
    },
    {
    "idx": 1,
    "id": "fault_config2",
    "value": "0x7382F808"
    }
    ],
    [
    {
    "idx": 0,
    "id": "gate_driver_fault_status",
    "value": "0x00000000"
    },
    {
    "idx": 1,
    "id": "controller_fault_status",
    "value": "0x00000000"
    }
    ],
    [
    {
    "idx": 0,
    "id": "gd_config1",
    "value": "0x00000020"
    },
    {
    "idx": 1,
    "id": "gd_config2",
    "value": "0x00000000"
    }
    ],
    [
    {
    "idx": 0,
    "id": "pin_config1",
    "value": "0x2E700000"
    },
    {
    "idx": 1,
    "id": "pin_config2",
    "value": "0x1E0020AA"
    },
    {
    "idx": 2,
    "id": "device_config",
    "value": "0x27100008"
    }
    ],
    [
    {
    "idx": 0,
    "id": "sys_status1",
    "value": "0x00D70000"
    },
    {
    "idx": 1,
    "id": "sys_status2",
    "value": "0x60010000"
    },
    {
    "idx": 2,
    "id": "sys_status3",
    "value": "0x00000000"
    }
    ]
    ]
    }

  • Hi Anurag,

    It is generally suggested to keep the LOCK_ILIMIT higher than the CBC_ILIMIT. Also keep the fault mods (MTR_LOCK_MODE, LOCK_ILIMIT_MODE etc) to latched response so that the motor stops as soon as fault is hit.

    Regards,
    Sachin S

  • Hi sir,

    Based on your feedback we have done testing, But still the same problem persist. In addition, CSA_OUT(DAC_OUT) is observed with some noise, might be an issue. When the LOCK_ILIMIT is configured at 0.5V(5A, 20mOHM, 5V/A), fault is detected exactly at 5A and with CBC_ILIMIT 0.5V (5A, 20mOHM, 5V/A) detected at 2.4A instead of 5A.

    Can you please explain the following calculations?

  • Hi Anurag,

    Are you using the MCT8329EVM for this testing?

    The calculations mentioned above are for BASE_CURRENT setting: 

    Basically the range of CSA is 1.5V in both directions (0V to 3V essentially with 1.5V as mid point). So if you have a shunt resistor of R ohms, and a CSA gain of Y V/V, the maximum current the device can reliably sense is as follows:

                               Imax = 1.5/(R*Y) A

    So you can choose the maximum current (including fault conditions) as BASE_CURRENT, and set the other variables accordingly.

    Regards,

    Sachin S

  • Hi Sir,

    Yes, MCT8329AEVM (1mOHM Current Sense Resistor) is evaluated and also developed our own prototype considering the 20mOhms. But we are getting the same problem with EVM and prototype as well.

    To understand the actual problem, multiple current sense resistors (20m, 10m, 6.6m OHM) are utilized in the prototype and CBC_ILIMIT is set accordingly.

    Regards,

    Anurag K

  • Hi Anurag,

    Could you share waveforms on this

    In addition, CSA_OUT(DAC_OUT) is observed with some noise, might be an issue

    Regards,

    Sachin S