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.

MCT8316Z: Motor lock error detected everytime

Part Number: MCT8316Z

Hi there 

I am using a custom made MCT8316R PCB (spi version) with STM32G0 controller , for my application. The system is running at 24 V.

I am facing following problems:

1. I am getting motor lock error according to the status registers and it is not being cleared even if I clear all the errors upon startup.

2. If I am clearing all errors in my code by clearing the clr_flt bit, the npor  bit is getting set.

So , in both the conditions due to the errors , i am unable to drive the motor. 

Some key observations are: 

1. According to datasheet, MCT should show motor lock error only when it is not getting hall sensor inputs but I have physically verified using oscilloscope that this is not the case.

2. One more observation id that I also tried increasing the motor lock detection time to maximum, then I observed that the motor lock error indication flag was not being set but the motor was still not running. I have also tried retry on motor lock but still the issue persists.

3. I am straightaway providing 30 KHz PWM after configuring MCT just for testing purpose. I am using 1x PWM, and synchronous rectification with digital hall along with mostly default settings mentioned below:

register address - value    

   0x03 - 0x03
   0x04 - 0x86
   0x05 - 0x47
   0x06 - 0x14
   0x04 - 0x01
   0x0a - 0x40

4. I am disabling the buck regulator at startup while its components are mounted on PCB.

5. Charge pump voltage is coming 29 V (Vm + 5)

6. AVDD is 3.3 V.

7. SPI is working fine and PWM from controller is also getting generated as it should be.

Any leads on what could be the reason for this will be helpful.

Thank you.

  • Hi Jayam,

    Regarding your second question, the NPOR bit is different than the other bits in that the bit is set to 1 to indicate that no VM undervoltage fault occurred, and it is set to 0 if there is a VM undervoltage fault that occurs. So it is correct for this bit to be set to 1. 

    Regarding the motor lock error fault, could you provide me your schematic? I want to ensure that the differential halls are set up properly. 


    Anthony Lodi

  • Hi Jayam,

    As shown in the image below, for digital hall inputs the HNx pins must be biased to AVDD/2 to set the comparator threshold to determine what a logic high is and what a logic low is for the hall inputs. This can be set with a voltage divider. If the HNx pins are not set to AVDD/2, the hall comparator will not be able to detect what is a logic high and what is a logic low. 


    Anthony Lodi

  • Hi Jayam,

    My apologies regarding my last post, it looks like it is not necessary to use a voltage divider to set HNx to AVDD/2 for digital hall signals for the MCT8316Z. I got some clarification about the motor lock feature for the MCT8316Z: The way that feature works is it monitors the hall inputs to ensure that there is a change in the hall state within a certain period of time, or else it will determine that the motor is not spinning and will generate a motor lock fault. So if the hall inputs are 1 0 1, and the motor doesn't change to the next state within the tMTR_LOCK time, then the motor lock fault will occur. 

    It appears in your case that when you begin applying the PWM signal to the PWM pin the motor is not commutating to the next state within the tMTR_LOCK time. There could be a few reasons for this: 

    1. If the hall signal wires are connected in a different order than the phase wires, this can result in the motor being unable to commutate correctly. For instance, if OUTA is connected to phase U, then the hall associated with phase U needs to be connected to HPA, and if OUTB is connected to phase V, then the hall associated with phase V needs to be connected to HPB, and if OUTC is connected to phase W, then the hall associated with phase W needs to be connected to HPC. If this order is mixed up, then that will result in improper commutation signals being applied to the motor.

    2. If insufficient torque is applied to the motor at startup, this could result in the motor being unable to overcome the initial inertia needed to start spinning the motor. To fix this, it may be necessary to start with the application of a higher duty cycle PWM signal to apply more torque to the motor to get it to spin within the tMTR_LOCK time. 


    Anthony Lodi

  • Hi there,

    Hope you are doing good
    We are facing a problem regarding the hall sensor input on MCT. The low voltage of hall sensor is coming around 0.7-0.8 volts from motor while the high voltage is around 2-2.1 V.
    The problem we were facing was during the logic runtime, sometimes we initiate the PWM it gets missed and we slightly rotate the motor it starts working. the issue is coming randomly 
    I referred the MCT datasheet and found the low voltage range to be 0-0.6V and high voltage range to be 1.5-5.5V. So, can the low voltage input range not being in sync with MCT be the cause of the problem?
    Looking for your prompt response.
    Thank you.
  • Hi Jayam, 

    We will aim to give you a response next week 

    Best Regards, 

  • Hi Jayam,

    My apologies in the delayed response.

    Just to clarify, am I correct in my understanding that there are times when you apply a PWM signal to start to spin the motor but nothing happens, but then if you turn the rotor a little bit then the motor begins to spin? What happens if instead of turning the rotor you instead stop the PWM inputs and then resume PWMming? Could you measure the hall input voltages during the time when you see this behavior? I would like to understand the actual voltages that are seen on the hall inputs during this type of behavior, and if perhaps one of the inputs is neither considered logic high or logic low due to the position of the rotor in relation to the halls. Is there a way to be able to adjust the hall configuration to achieve a less than 0.6V logic low signal?


    Anthony Lodi