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.

MCF8316AEVM: Can not spin low-resistance motor

Part Number: MCF8316AEVM
Other Parts Discussed in Thread: MCF8316A

Hello, I'm having issues spinning a specific custom motor with MCF8316AEVM. 

To give you a small context, I was able to spin couple of other motors (powerful drone motors, like MK3638) before, following the Guided Tuning in the software. I had couple of issues with these motors blocking at some speed or wasn't able to even start but were able to fix it by tweaking acceleration coefficients and current limits.

Now I have another custom motor with the following parameters (given by the manufacturer):

Pole pairs: 10
Max.Application speed: 5880RPM
Nominal current: 30A
Nominal DC Voltage: 14V
Rs: 40.4 mΩ
Ls: 60.2 μH
B-Emf constant: 2.38V/Krpm

This is a quite beefy motor but I'm only planning to use it without load. I was able to spin it with a simple drone ESC and the current consumtion at 3000 RPM is ~1A.

Now when I try to start the MPET after restoring the default values, the motor continuously clicks with a frequency of ~2.5 Hz. The Algorithm State switches between MPET_x states, sometimes showing MPET_FAIL. However no faults are reported.The only way to stop clicking is enable and disable MPET start command [MPET_CMD].

I tried to enter motor parameters manually and issue non-zero speed command, in this case I get Overcurrent Protection kicking in and Algorithm stays in MPET_KE_MEASURE. From this point i can not clear the fault, the only way to recover is to power-cycle the board.

I suppose I have issues because of very low resistance of the motor. I see that this motor is quite powerful and rated for 30A (which is well outside of MCF8316A capabilities), but again, I'm planning to use this motor without any load.

Thank you.

  • Hi YN, 

    Thanks for posting to the e2e forum - our team is looking into your request and will try to respond with an updated answer by middle of next week 

    Best Regards, 
    Andrew 

  • Hi YN,

    Can you check if you are auto-reading registers over I2C communication? If so, then can you disable auto-read and try again. Your motor resistance is too low, so the motor draws pretty high current and triggers current limit. Can you set the ILIMIT to a lower value and try if this helps? Please use align as the startup method. Is it possible to share the oscilloscope screenshot of the motor phase current ?

    Regards,

    Vishnu

  • Hi, thanks for the fast reply.

    I tried your suggestions but nothing changed.

    In fact I tried to to run the motors I previously was able to spin and now have the same clicking behavior, so I suspect a hardware fault.

    Unfortunately I don't have a current probe yet, but here is what happens with voltage between one of the phases (C) and PGNG. Peaks like these appear with a frequency of ~2.5 Hz making motor to click like a metronome. For your reference, the board is powered by a 15V power supply.

     

    Is there a way to check that these's no hardware issue with the board? Is there a way to reset it to factory state other than writing Recommeneded Default Values as per Guided Tuning wizard?

  • Does this happen when you try to run MPET or after programming the motor parameters? Can you make sure the align, open loop current and the ILIMIT current (Current ref for torque loop PI controller) are set to lower values (<0.5A)?

    Regards,

    VIshnu  

  • Hello, 

    I confirm that I set the mentioned currents to 0.25A as suggested (please see the the contents of regs.json below), and this didn't change the behavior.

    The continuous clicking only happens when I try to run MPET without motor parameters configured.

    If I try to run the motor with parameters configured manually (MOTOR_RES = 0.04, MOTOR_IND = 0.06, MOTOR_BEMF_CONST = 14.0 ), this instantly triggers Overcurrent Protrction [OCP] and Overcurrent: HighSide OUTA [OCP_HA] faults, without any activity on the motor (noticeable movement or audible clicks). I noticed that these faults are getting triggered even if there's no motor connected, and it's always the same  [OCP_HA] that is triggered.

    {
      "signature": "oneui-register-data",
      "data": [
        [
          {
            "idx": 0,
            "id": "isd_config",
            "value": "0x44638C20"
          },
          {
            "idx": 1,
            "id": "rev_drive_config",
            "value": "0x283AF064"
          },
          {
            "idx": 2,
            "id": "motor_startup1",
            "value": "0x0B6207D0"
          },
          {
            "idx": 3,
            "id": "motor_startup2",
            "value": "0x0B066000"
          },
          {
            "idx": 4,
            "id": "closed_loop1",
            "value": "0x0C3181B0"
          },
          {
            "idx": 5,
            "id": "closed_loop2",
            "value": "0x1AAD0000"
          },
          {
            "idx": 6,
            "id": "closed_loop3",
            "value": "0x00000000"
          },
          {
            "idx": 7,
            "id": "closed_loop4",
            "value": "0x00001770"
          },
          {
            "idx": 8,
            "id": "speed_profiles1",
            "value": "0x00000000"
          },
          {
            "idx": 9,
            "id": "speed_profiles2",
            "value": "0x00000000"
          },
          {
            "idx": 10,
            "id": "speed_profiles3",
            "value": "0x00000000"
          },
          {
            "idx": 11,
            "id": "speed_profiles4",
            "value": "0x00000000"
          },
          {
            "idx": 12,
            "id": "speed_profiles5",
            "value": "0x00000000"
          },
          {
            "idx": 13,
            "id": "speed_profiles6",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "fault_config1",
            "value": "0x0FE80206"
          },
          {
            "idx": 1,
            "id": "fault_config2",
            "value": "0x74000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "pin_config",
            "value": "0x00000002"
          },
          {
            "idx": 1,
            "id": "device_config1",
            "value": "0x00100000"
          },
          {
            "idx": 2,
            "id": "device_config2",
            "value": "0x0000B000"
          },
          {
            "idx": 3,
            "id": "peri_config1",
            "value": "0x40000000"
          },
          {
            "idx": 4,
            "id": "gd_config1",
            "value": "0x00000100"
          },
          {
            "idx": 5,
            "id": "gd_config2",
            "value": "0x00200000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "ana_trim3",
            "value": "0x48004800"
          },
          {
            "idx": 1,
            "id": "ana_trim4",
            "value": "0x00000000"
          },
          {
            "idx": 2,
            "id": "ana_trim5",
            "value": "0x80000013"
          },
          {
            "idx": 3,
            "id": "ana_trim6",
            "value": "0x00000000"
          },
          {
            "idx": 4,
            "id": "ana_trim7",
            "value": "0x00000000"
          },
          {
            "idx": 5,
            "id": "ana_trim8",
            "value": "0x80000824"
          },
          {
            "idx": 6,
            "id": "ana_trim9",
            "value": "0x0045A760"
          },
          {
            "idx": 7,
            "id": "ana_trim10",
            "value": "0xD36E1139"
          }
        ],
        [
          {
            "idx": 0,
            "id": "int_algo_1",
            "value": "0x00B3407D"
          },
          {
            "idx": 1,
            "id": "int_algo_2",
            "value": "0x000001A7"
          }
        ],
        [
          {
            "idx": 0,
            "id": "gate_driver_fault_status",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "controller_fault_status",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "algo_status",
            "value": "0x0FF90300"
          },
          {
            "idx": 1,
            "id": "mtr_params",
            "value": "0x00000000"
          },
          {
            "idx": 2,
            "id": "algo_status_mpet",
            "value": "0x0A000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "dev_ctrl",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "algo_ctrl1",
            "value": "0x80000000"
          },
          {
            "idx": 1,
            "id": "algo_ctrl2",
            "value": "0x00000000"
          },
          {
            "idx": 2,
            "id": "current_pi",
            "value": "0x000C0701"
          },
          {
            "idx": 3,
            "id": "speed_pi",
            "value": "0x00000000"
          },
          {
            "idx": 4,
            "id": "dac_1",
            "value": "0x00000000"
          },
          {
            "idx": 5,
            "id": "dac_2",
            "value": "0x00000000"
          }
        ],
        [
          {
            "idx": 0,
            "id": "algorithm_state",
            "value": "0x00000000"
          },
          {
            "idx": 1,
            "id": "fg_speed_fdbk",
            "value": "0x7FFFFFFF"
          },
          {
            "idx": 2,
            "id": "bus_current",
            "value": "0x00000000"
          },
          {
            "idx": 3,
            "id": "phase_current_a",
            "value": "0x00060000"
          },
          {
            "idx": 4,
            "id": "phase_current_b",
            "value": "0x00010000"
          },
          {
            "idx": 5,
            "id": "phase_current_c",
            "value": "0xFFF90000"
          },
          {
            "idx": 6,
            "id": "csa_gain_feedback",
            "value": "0x00010003"
          },
          {
            "idx": 7,
            "id": "voltage_gain_feedback",
            "value": "0x00000001"
          },
          {
            "idx": 8,
            "id": "vm_voltage",
            "value": "0x021B0000"
          },
          {
            "idx": 9,
            "id": "phase_voltage_va",
            "value": "0x000376CF"
          },
          {
            "idx": 10,
            "id": "phase_voltage_vb",
            "value": "0x0003E5A9"
          },
          {
            "idx": 11,
            "id": "phase_voltage_vc",
            "value": "0x00022A41"
          },
          {
            "idx": 12,
            "id": "sin_commutation_angle",
            "value": "0xFFCE7490"
          },
          {
            "idx": 13,
            "id": "cos_commutation_angle",
            "value": "0x07FD6740"
          },
          {
            "idx": 14,
            "id": "ialpha",
            "value": "0x00050000"
          },
          {
            "idx": 15,
            "id": "ibeta",
            "value": "0x0002E302"
          },
          {
            "idx": 16,
            "id": "valpha",
            "value": "0xFFFE2648"
          },
          {
            "idx": 17,
            "id": "vbeta",
            "value": "0xFFBCCE72"
          },
          {
            "idx": 18,
            "id": "id",
            "value": "0x0004EC75"
          },
          {
            "idx": 19,
            "id": "iq",
            "value": "0x00030118"
          },
          {
            "idx": 20,
            "id": "vd",
            "value": "0xFFFFC6E8"
          },
          {
            "idx": 21,
            "id": "vq",
            "value": "0xFFBCB73A"
          },
          {
            "idx": 22,
            "id": "iq_ref_rotor_align",
            "value": "0x00000000"
          },
          {
            "idx": 23,
            "id": "speed_ref_open_loop",
            "value": "0x00000000"
          },
          {
            "idx": 24,
            "id": "iq_ref_open_loop",
            "value": "0x00000000"
          },
          {
            "idx": 25,
            "id": "speed_ref_closed_loop",
            "value": "0x00000000"
          },
          {
            "idx": 26,
            "id": "id_ref_closed_loop",
            "value": "0x00000000"
          },
          {
            "idx": 27,
            "id": "iq_ref_closed_loop",
            "value": "0x00000000"
          },
          {
            "idx": 28,
            "id": "isd_state",
            "value": "0x00000000"
          },
          {
            "idx": 29,
            "id": "isd_speed",
            "value": "0x00000000"
          },
          {
            "idx": 30,
            "id": "ipd_state",
            "value": "0x00000000"
          },
          {
            "idx": 31,
            "id": "ipd_angle",
            "value": "0x00000000"
          },
          {
            "idx": 32,
            "id": "ed",
            "value": "0x00000000"
          },
          {
            "idx": 33,
            "id": "eq",
            "value": "0x00000000"
          },
          {
            "idx": 34,
            "id": "speed_fdbk",
            "value": "0x00000000"
          },
          {
            "idx": 35,
            "id": "theta_est",
            "value": "0x00000000"
          }
        ]
      ]
    }

  • Hi YN, 

    Thanks for the additional info 

    Best Regards, 
    Andrew 

  • YN,

    You hear the clicking noise because the MPET IPD fails. If you see overcurrent fault getting triggered even without the motor connected then the device is most likely damaged. Did you make sure the motor startup is configured to Align and not IPD?  

    Regards,

    Vishnu

  • Hello,

    Yes I can confirm that I have OCP kicking in even when motor is not connected with motor startup is configured to Align.

    So I conclude that I have a faulty board. Still this is strange because I didn't do anything that could have damaged the board. The board was purchased directly from TI, would it be possible to return/exchange it?

  • YN,

    Just to confirm, can you measure the resistance across OUTx (A, B and C) and GND using a DMM? Please check your message inbox. I have requested for your shipping address.  

    Regards,

    Vishnu

  • Yes, the resistance between C and B to PGND is ~14 kOhm while A to PGND is < 1 Ohm, which I suppose confirms the hardware issue  

    What I ask myself (and what may be useful for other members) is how I managed to kill it. I only tried to run the motor mentioned above. Is it possible to kill the part by attaching a non-suited motor? Shouldn't it have a protection against short circuits between outputs?

  • YN,

    Device has short circuit protections and with the motor resistance being too low, device should trigger OCP flag and stop the motor operation. However, based on the information we have, we can't really tell what could have caused the damage on the OUTA FETs. If we try to spin this motor repeatedly, that could cause electrical stress on the FETs and damage the FET. 

    Regards,

    Vishnu