MCF8316A: MCF8316A: How to implement reciprocating BLDC motion, toggle DIR pin, and handle decel/stop/brake before reversing?

Part Number: MCF8316A
Other Parts Discussed in Thread: MCF8316D

Tool/software:

Hi TI team,

I am using the MCF8316A driver with a 3-phase BLDC motor, and I want to implement a simple reciprocating motion:
Run forward for some time → stop → run in reverse → repeat continuously.

I would like to clarify a few points:

  1. What is the recommended method to configure the MCF8316A for this kind of periodic forward/reverse operation?

  2. Is it sufficient to simply toggle the DIR pin (e.g., controlled by an MCU GPIO), or is it safer to first decelerate/stop (or apply brake) before toggling DIR?

  3. How exactly should the DIR pin be toggled in practice? For example, is it typically controlled by a microcontroller GPIO, or are there recommended circuits/examples for doing this?

  4. If deceleration or braking is recommended:

    • Which parameters in the GUI (Accel/Decel ramps, Brake settings, Active Brake Current Limit, etc.) should be adjusted?

    • Is the typical sequence: decelerate → (optional brake) → DIR toggle → accelerate?

  5. Are there any example JSON files, app notes, or reference designs that demonstrate reciprocating operation with MCF8316A?

Thanks a lot for your support!

Junsung Yoo

  • Hi Junsung Yoo,

    Before starting with answer to the questions, we recommend using MCF8316C or MCF8316D versions.

    Please refer to the errata link for MCF8316A (+) [FAQ] Production device information - Motor drivers forum - Motor drivers - TI E2E support forums

    Can you share motor specification and application requirement , what is the rate at which direction to change?

    We need to consider speed, kinetic energy during speed reduction or reversal.

    Please provide motor spec, I will send reference JSON with answers to the questions.

    Thanks and Best regards

    Venkatadri S

  • Here are my motor specifications and application requirements:

    • Motor specification:
      • Rated voltage: 24 V
      • Output power: 100 W
      • Rated speed: 3000 rpm
      • Type: 3-phase BLDC motor without gearbox (direct shaft output)
    • Application requirement:
      • The application requires reciprocating motion (forward for a few seconds, stop, then reverse, repeatedly).
      • However, I have never tested the motor in reverse, so I am not sure what the rate of direction change would be in practice.

    I would also like to mention that I am proceeding with the MCF8316C device.

    Please let me know if this information is sufficient. I would also appreciate it if you could share a reference JSON file with recommended settings for reciprocating operation.

  • Hi Junsung Yoo,

    Can you share the JSON obtained from the SamrtTune? 

    I will make modification on that and send again.

    You can also follow method mentioned below,

    1. Enable ISD, RVS_DR_EN, RESYNC_EN, (BRAKE_EN can also be used, we will apply this later)

    2. Direction changes mode (DIR_CHANGE_MODE) to "Follow motor stop options and ISD routine on detecting DIR change"

    3. DIR_INPUT to either pin based or I2C based on your requirement.

    4. Enable AVS (Safety), this will be slow as compared without AVS. But, without AVS when motor is decelerated at faster rate kinetic energy may kick back to DC bus.

    Then, tuning required for Hand off to open loop from closed loop from reverse direction. Recommended setting is open loop to closed loop hand off threshold should be same as REV_DRV_HANDOFF_THR.

    Thanks and Best regards

    Venkatadri S