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.

MCF8316A: Accurate position control

Part Number: MCF8316A
Other Parts Discussed in Thread: DRV8316

My customer wants to use the MCF8316A for accurate position control

The target is a BLDC motor with 4 poles and 3 analog Hall sensors which are connected to a MCU (no DSP).

Requirements:

- Minimal angular resolution of < 1°

- Capability to hold any position (position hold)

As far as I understand, this chip is a speed controller and appropriated for application requiring constant speed such as fan control. So not that good for that.

After startup and alignment rotor position, the driver goes in open loop where the motor is accelerated to detect an back-emf. Only then, it goes in closed loop where speed is regulated and I can use output of analog hall sensors...So the FOC algorith applies in closed loop. But in open loop, the motor might move more than 1°...right ?

What kind of other driver would you propose ?

Regards

younes

  • Hi Younes,

    Thank you for your question!

    Today is a holiday for the US, but we will aim to get back to you later this week.

    Regards,

    Anthony Lodi

  • Hello Younes,

    The MCF8316A on its own cannot achieve an angular resolution of <1 degree. To achieve an angular resolution of <1 degree an encoder will need to be used. This encoder will need to be fed to an external microcontroller which will control the MCF8316A to achieve the desired position control.

    Alternatively a gearbox could be used to slow the movement of the load allowing the motor to spin more quickly which can allow for greater angular control

    The MCF8316A offers the option of align breaking which can be used to brake the motor at a given angle in increments of 10 degrees. Align braking can be used to hold the motor at these given angle increments. Using align braking will require a power draw to apply the holding torque, if this power consumption is not desired in the customers system then an external mechanism will need to be used to hold the position of the motor.

    After startup and alignment rotor position, the driver goes in open loop where the motor is accelerated to detect an back-emf. Only then, it goes in closed loop where speed is regulated and I can use output of analog hall sensors...So the FOC algorith applies in closed loop. But in open loop, the motor might move more than 1°...right ?

    You are correct that in open loop the motor's angle is not being estimated by the internal algorithm as this requires sufficient BEMF to be generated by the motor. I assume that the intention is to move the motor by about 1 degree from a stationary position, correct? If so I would recommend using the IPD startup method to avoid movement of the motor at startup, using a slow open loop acceleration, and an encoder to monitor the angle to achieve a small movement angle.

    What kind of other driver would you propose ?

    To achieve better position control, using the DRV8316 and developing a custom control solution based on example sensorless FOC code, available in the C2000WARE-MOTORCONTROL-SDK, may be a better solution.

    Regards,

    Joshua