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: Getting a MPET_BEMF_FAULT while attempting MPET.

Part Number: MCF8316AEVM

While following the "Essential Controls" guide section of the GUI, I get a MPET_BEMF_FAULT after the motor twitches. This result is not consistent; occasionally other faults will be triggered, the MPET algorithm will idle forever without doing anything, or nothing will happen at all. I have tried manually calculating the motor characteristics, but it doesn't seem to function correctly, or will trigger additional faults.

  • Hi Joseph, 

    Thanks for posting to e2e motor drivers forum - 

    I've assigned this thread to a team member, and we'll aim to provide a response by end of week on next-steps and timeline. 

    Best Regards, 
    Andrew 

  • Hi Joseph,

    Thanks for posting to the Motor Drivers forum.

    • Could you please help clarify what are your motor's:
      • Resistance (Ω) (phase-to-center-tap = phase-to-phase / 2)
      • Inductance (mH) (phase-to-center-tap = phase-to-phase / 2)
      • Back-emf constant (mV/Hz)
      • Max speed (rpm)
      • Number of poles
      • Rated peak current
    • If you haven't already, I'd recommend looking through the FAULT HANDLING section under the Essential Controls:
      • Both contain the MPET_IPD_FAULT and MPET_BEMF_FAULT sections contain instructions to manually measure and enter the parameters.
    • Specifically for MPET-BEMF_FAULT where the motor twitches and doesn't spin up through Open Loop in order to measure BEMF constant, there are a couple settings that you can try changing before setting a non-zero speed command and running MPET:
      • Increase the MPET_OPEN_LOOP_CURRENT_REF to match the motor rated peak current
      • Decrease the MPET_OPEN_LOOP_SLEW_RATE
      •   

    Regards,
    Eric C.

  • Hi Eric,

    The motor specs are: 

    • Resistance: .251 Ohms
    • Inductance: .195 mH
    • Back-emf: No data, can be calculated
    • Max speed: 15000 rpm
    • Number of pole pairs: 7
    • Peak current: 7 A

    I have gone through the fault handling section, but had little success.

    My suspicion is that I'm missing something obvious, I'd like to make a quick screen grab video of what I'm doing, and maybe you can point out what you think the problem might be?

  • Hi Joseph,

    Sure. Please post your screen shot or video, and I can take a look.

    What continuous current do you plan to operate this motor at?

    From your descriptions so far, I still think that the device is either not outputting enough current when trying to spin up the motor in open loop or the open loop slew rate is too fast, and the rotor is not able to keep-up.

    Please keep in mind, once MPET algorithm becomes stuck, I'd recommend power-cycling the device and start from scratch. After a fresh start, make sure to change the MPET settings before setting a non-zero speed command and starting MPET again.

    Regards,
    Eric C.

  • Sorry for the delay Eric, had a little technical issue with the screen recording.

    Here is a link to the video: https://drive.google.com/file/d/1OPEtsaRZNbxI_xqi6XA2xlA9CYnKyZre/view?usp=sharing

  • The highest current we normally would see is around 3.5A. Typical operation is about 1.5A.

    I see a lot of settings referencing current draw, is this something I can adjust?

  • Hi Joseph,

    Thanks for the video. A couple recommendations for using the GUI:

    1. Even though the GUI instructs so, I would refrain from enabling the auto read buttons while the motor is in operation. This is due to an errata #8 documented here where I2C can cause the device algorithm to become stuck. With that said, I don't think you ran into this issue in the video, because the GUI will disconnect from the EVM automatically when it happens. (This will be fixed in the next device revision MCF8316B)
    2. If you do want to read the motor/fault status, I'd recommend just toggling on/off the "Auto Read Motor Status" and "Auto Read Fault Status" buttons briefly every time you want to get an updated status. The "Auto Read All Registers" button continuously reads all 80 registers and takes ~8 seconds to refresh everything. There's really no need to constantly refresh all registers besides the motor/fault status registers. (We're working to drastically improve the GUI communication speed in a future release..)

    The OCP fault triggers when the internal MOSFET current exceeds the current set by OCP_LVL (default 10A, you could try increasing to 15A)

    1. I'm not sure why OCP is triggering here, but I noticed perhaps the "restore default settings" step is not done being loaded into the device. As soon as you click Yes in "Restore default settings", LED D6 will start blinking rapidly on the EVM, could you please make sure to wait until it return to a slow blink before proceeding (don't enable any auto read)?
    2. Could you also try setting the ILIMIT to 4A instead of 7A? This setting only affects closed loop operation, and is not used during MPET or open loop acceleration. I recommend starting lower then increase later when we need more torque or faster closed loop acceleration.

    It sounds like MPET is at least able to spin up the motor briefly using open loop, so I would stick to default MPET settings for now.

    Regards,
    Eric C.

  • Hi Eric,

    Thank you for the GUI recommendations, I re-did the startup with:

    • auto-read disabled
    • waited for the "slow blink" to return after each command.
    • set OCP_LVL to 15A

    The first time I did it, the motor spun up, then stopped and reported the MPET_BEMF_FAULT.

    The second time I did it (same settings), the motor spun up, stopped, spun up again, then stopped before giving OCP and OCP_LC faults simultaneously.

    I will try slowing the slew rate down.

  • I've noticed the MPET_OPEN_LOOP_SLEW_RATE is set to 0.1 Hz/s already, and I can't make it any slower. Is that something the MPET did for me?

  • I did try adjusting the MPET_OPEN_LOOP_CURR_REF to 4A as the guide recommended, but now I receive the LOCK_ILIMIT fault.

  • Hi Joseph, 

    Noted on the additional info - our team will aim to reply w/ further answers/questions as soon as possible. 

    Best Regards, 
    Andrew 

  • Hi Joseph,

    Instead of figuring out the MPET BEMF fault or OCP faults, perhaps we can workaround it by manually measuring/calculating the BEMF constant.

    Would you please try following the instructions under ESSENTIAL CONTROLS -> FAULT HANDLING -> MPET BEMF Fault [MPET_BEMF_Fault] -> Step D to determine your motor's BEMF Constant?

    Regards,
    Eric C.