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.

MCT8316A: Whether this chip can do full closed-loop control

Part Number: MCT8316A
Other Parts Discussed in Thread: MCF8316A, MCT8316Z, , MCF8316AEVM

Hi,

I see there are new products, MCT8316A, MCF8316A, MCT8316Z. I want to do small servo, and I want to know , can this do full closed loop conyrol? I want to add the position ring.

Thanks!

  • Hi Rhea,

    Is this a BLDC motor? Are you looking for position control? Position control using an external MCU can be achieved using MCF8316A but we need to look into the specifications to tell exactly if MCF8316A will be able to meet all the system requirements or not. Can you share below details?

    1. Motor type  - BLDC or Brushed DC?

    2. Motor speed and pole pairs

    3. Max Voltage and current rating 

    4. Position accuracy. (A block diagram of the system would help us understand better).

    Regards,

    Vishnu 

  • I want to do small servo, and I want to know , can this do full closed loop conyrol? I want to add the position ring.

    Hi, This sounds like a stop and go position control application, and the part is a sensorless so it is not good for this application, unless the host uses the position encoder for BLDC motor commutation.

    Position ring: you meant the encoder?

    Brian

  • Hi Vishnu,

    BLDC.

    Other parameters can be found in the following attachments.

  • Hi Rhea,

    Thanks for sharing the motor datasheet. We could do position control using MCF8316A but as I mentioned  earlier, we need an external MCU to read the rotor angle from the MCF8316A and process the angle to distance and issue a stop command to MCF8316A. Also, we need to check the position accuracy and resolution to see if MCF8316A can meet the goals. I would recommend you to firstly try spinning the motor using MCF8316AEVM and let us know if you will be using an external MCU in your system. 

    Regards,

    Vishnu

  • Hi, Vishnu, thank you for your reply,I am the customer of Rhea, and I consulted her on all the above questions. Yes, we will use an external MCU and a high precision magnetic encoder, such as a 17bit magnetic encoder, and we need to control the motor to turn to the exact position and speed, because I see that the MCF8316A does not have an internal position loop and speed loop, and there is no hardware interface for the encoder, so the question which I want to ask is if this is feasible. Thank you.

  • Hi Jeffery,

    Yes, we will use an external MCU and a high precision magnetic encoder, such as a 17bit magnetic encoder, and we need to control the motor to turn to the exact position

    Does the motor stop at that exact desired position? If it does, then using a sensorless as the MCT8316A is not a good choice, as it will not be able to commutate due to no zero-cross BEMF detection for a proper commutation. Using sensored driver is a better choice. One option that you can use the sensorless driver: after the running the Align Mode to find the rotor position, then rotate the motor until the encoder Index signal is detected, then the encoder position can be used to map the motor rotor position, then the MCU can commutate the BLDC motor by reading the encoder counts. This method can save you from having to connected the 5wire for Hall sensors.

    Brian

  • Jeffery,

    Good to know that the customer will use an external MCU. MCF8316A does not have a position loop but it does have an internal speed loop. The encoder outputs have to be interfaced to the MCU and the MCU should process the angle information and send a stop command to the MCF8316A. With this implementation, motor can be controlled to the commanded position. 

    Regards,

    Vishnu

  • Hi Vishnu

    Thank you all, Based on your answers above, this looks like a viable solution for us, and we will apply for a DEMO board to test and verify it. by the way, there are 3 solutions, MCT8316A,MCF8316A,MCT8316Z, which one do you recommend for us? is MCF8316A the best? 

  • Jeffrey,

    Yes, I would recommend MCF8316A for your application. 

    Regards,

    Vishnu

  • We could do position control using MCF8316A

    Hi Vishnu,

    MCF8316A is a sensor-less driver which requires a motor rotating to generate BEMF for zero-cross in order to have a smooth commutation to the motor. In this application, the motor is required to perform servo position controlled loop, which means there are many stop and go motion, and every the motor is stopped, the driver will loose the position of the motor rotor that it learned during Alignment or IPD, and so during the servo position control, after the motor is stopped, the driver has to repeat the IPD or Align process again before it can drive the motor. This will cause delay or hiccup in a servo position control. This is why I had suggest not to use sensor-less driver in this application.

    Brian

  • Hi Brian,

    Is there any similar recommended product with sensor input? 

    Thanks~

  • Hi, this one is a good candidate:

    MCT8316Z Sensored Trapezoidal Integrated FET BLDC Motor Driver

    Brian

  • We could do position control using MCF8316A

    Hi Vishnu,

    MCF8316A is a sensor-less driver which requires a motor rotating to generate BEMF for zero-cross in order to have a smooth commutation to the motor. In this application, the motor is required to perform servo position controlled loop, which means there are many stop and go motion, and every the motor is stopped, the driver will loose the position of the motor rotor that it learned during Alignment or IPD, and so during the servo position control, after the motor is stopped, the driver has to repeat the IPD or Align process again before it can drive the motor. This will cause delay or hiccup in a servo position control. This is why I had suggest not to use sensor-less driver in this application.

    Brian

    Could someone at TI please comment on this -- could the MCF8316A be used for stop-and-go position servo loop control?

    I'm interested to know can a sensor-less driver be used for this kind of applications.

    Brian

  • Brian,

    A standalone Sensorless driver cannot achieve stop-and-go position control but it can be done with the help of an external MCU. The external MCU can be interfaced with the Hall or encoder and the MCU can do the position control and issue start/stop command to the Sensorless driver. 

    Regards,

    Vishnu

  • Hi Vishnu,

    A standalone Sensorless driver cannot achieve stop-and-go position control but it can be done with the help of an external MCU. The external MCU can be interfaced with the Hall or encoder and the MCU can do the position control and issue start/stop command to the Sensorless driver. 

    Even with the external MCU reading the 3 Hall signals, the MCU cannot control the 3 output A, B, C for brushless commutation. The 8316A driver has only one PWM input for speed control, and so it's impossible for the MCU to control the motor commutation. Am I missing something here?

    I believe Rhea Gao, the user here, will find out that this driver chip fails to do stop and go closed loop servo control. 

    Brian

  • In other words, the BLDC motor is commutated by the 8316A and not by any other means, because one has to choose one of the the start up modes:  Align or IPD, and cannot disable it and use an external MCU to perform the commutation task.

  • The external MCU is used only to send start/stop command to the Motor driver IC. It is not used to execute the motor control algorithm. Are you working on any position control application using MCT8316A?

  • Hi Vishnu,

    What I was saying is the MCT8316A cannot drive a motor in position control application as the customer , even with the Hall signals or position encoder read by the external MCU, as the MCU cannot control the 3 phase wirings for proper commutation.

    Good to know that the customer will use an external MCU. MCF8316A does not have a position loop but it does have an internal speed loop. The encoder outputs have to be interfaced to the MCU and the MCU should process the angle information and send a stop command to the MCF8316A. With this implementation, motor can be controlled to the commanded position.
    The external MCU is used only to send start/stop command to the Motor driver IC. It is not used to execute the motor control algorithm.

    The given advice to use this driver MCF8316A for position servo loop control is an ill advice, because:

    1. The MCF8316A cannot be used for stop and go motor application. This driver is for speed control only, meaning for motor that continuely running most of the time, i.e. electric pump, fan, etc. 

    2. Even using BRAKE  to stop the motor at the desired position, the BRAKE function cannot gaurantee to stop the motor at the precise position, as it only shorts out the 3 lower FETs to short out the motor 3 phases, which does not stop the motor at a precise position. Say when the MCU read the encoder and it wants to stop the motor at encoder position count of 500, it commands the BRAKE signal to the 8316A, but the 8316A will not be able to stop right at encoder count 500, because the motor momentum will overshoot even with the 3 phases are shorted together.

    Are you working on any position control application using MCT8316A?

    No, all varieties of 8316x will not work for position control application. They are only for speed control.

    Brian 

  • Hi Rhea & Jeffery,

    I see there are new products, MCT8316A, MCF8316A, MCT8316Z. I want to do small servo, and I want to know , can this do full closed loop conyrol?

    All of these chips will not work for position servo closed loop control. There is no way to stop the motor at a specific encoder position count. These drivers are for speed control only.

    Sorry that I had given advice to use the 8316Z which can drive the motor in stop and go mode with Hall sensor feedback, but it cannot stop the motor at the position you want. Please look for other driver chip with 3 or 6 PWM inputs so the MCU can control the motor 3 phases independently.

    Brian

  • Even using BRAKE  to stop the motor at the desired position, the BRAKE function cannot gaurantee to stop the motor at the precise position, as it only shorts out the 3 lower FETs to short out the motor 3 phases, which does not stop the motor at a precise position. Say when the MCU read the encoder and it wants to stop the motor at encoder position count of 500, it commands the BRAKE signal to the 8316A, but the 8316A will not be able to stop right at encoder count 500, because the motor momentum will overshoot even with the 3 phases are shorted together.

    MCF8316A has a braking feature called "Align braking" which can brake the motor at configured align angle. It applies DC current to the motor phases and brakes the motor at the configured align angle. Please refer to section 7.3.19.6 in the datasheet for more details.

    Regards,

    Vishnu

  • Please refer to section 7.3.19.6 in the datasheet for more details.

    I have tried to search for section 7.3.19.6 in this datasheet - revised February 2022, but cannot find it. What's a waste of time as I think it's a typo.

     https://www.ti.com/lit/ds/symlink/mct8316a.pdf?ts=1670459875841&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FMCT8316A

    Regardless, the MTR_STOP only has 5 setting option and none of them can stop the motor at a specific encoder count as the user desired. These stop modes only can slow the motor down and stop, but it doesn't guarantee to stop at a specific position encoder count. How fast it can stop depends on the motor load inertial.

    Please, I think you're speculate instead of giving a concrete solution to the customer. The only way to do a position servo loop control is to have a control loop such as PID control loop in the MCU, which calculate the phase voltage for the motor based on the position error = desired position - feedback encoder position, then applies the PID filter to the error value.

    Brian

  • Hi Brian,

    Please refer to section 7.3.19.6 in MCF8316A datasheet. I mentioned "MCF8316A" in my previous post but looks like you are looking into MCT8316A datasheet. 

    Regards,

    Vishnu

  • Hi Vishnu,

    Please refer to section 7.3.19.6 in MCF8316A datasheet.

    Thank you for pointing me to the MCF8316A datasheet, as I overlooked the variety option. So here is the Align Brake feature:

    "7.3.19.6 Align Braking Align braking mode is configured by setting MTR_STOP to 101b. The MCF8316A can also enter align brake state through the BRAKE pin. In this mode, the MCF8316A aligns the motor by injecting a DC current through a particular phase pattern for a certain time configured by MTR_STOP_BRK_TIME. The phase pattern during align is generated based on the angle at which align needs to be performed and this angle can be configured through ALIGN_ANGLE or the last commutation angle. ALIGN_BRAKE_ANGLE_SEL can be configured to decide which align angle is to be used by MCF8316A . The current limit threshold during align braking is configured through ALIGN_OR_SLOW_CURRENT LIMIT."

    I understand this feature, which is similar to the Align mode when the Driver starts the sensorless motor in order to synchronize with the motor rotor before spinning it. Again, the injected DC current into a particular motor phase cannot stop the motor right at the desired position encoder count as the user want, because the driver has no information of the target position encoder count, and what if the braking phase current causes the rotor to be locked at encoder count of 400 instead of the desired count of 500? Keep in mind that the injected current to a motor phase will only lock the rotor at a discrete location or angle, depending on the number of the rotor magnets -- more magnets then better lock angle resolution and less magnets have less angle resolution. Consider the customer objective below: they want to stop the motor at a precise location based on the 17bit encoder -- 128K counts per 360*, or better than 0.003 degrees accuracy, and the best the Align Brake could do is 1/8 of a turn = 45 degrees resolution for a 16 magnets motor!!! (Depends on the motor load inertia, the momentum of the rotating load will overshoot the intent braking position and so the rotor might end up stop after passing the next magnet, or 90 degrees or 135 deg.) Therefore, this driver cannot work for the customer's position servo control. 

    Yes, we will use an external MCU and a high precision magnetic encoder, such as a 17bit magnetic encoder, and we need to control the motor to turn to the exact position

    Regards,

    Brian