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: motor current control

Part Number: MCF8316A

Hi Team,

When driving motor motion with MCF8316A, the motor stops after a period of time.

The customer initially suspected that the motor might have entered MPET mode, so tried to disable MPET mode and set [MOTOR_RES], [MOTOR_IND], [MOTOR_BEMF_CONST], [SPD_LOOP_KP] and [SPD_LOOP_Ki] registers all to a non-zero value. The motor can be operated at the above settings, but the current will remain at 3.1-2.7A. Then they tries to control the current using parameters such as Curr_loop_KP and Curr_loop_Ki registers and SPD_loop_KP and SPD_loop_Ki, while the current will also remain at 3A.

Is the current too high due to incorrect setting of the motor resistance and inductance these basic parameters? Or is it controlled by other registers? Could you help check this case? Thanks.

Best Regards,

Cherry

  • Hi Cherry,

    Is the customer trying to read or write to the registers of the MCF8316A while the motor is operating? If they are then they may be running into Errata #8 in our product device information FAQ which would mean that any change they are attempting to make to the device is not taking effect. To avoid this Errata we advise only reading and writing to the device via I2C when the motor is not in operation.

    The CURR_LOOP_KP and CURR_LOOP_KI values can be kept as zero these two gain values will automatically be determined by the algorithm. For the Motor inductance, resistance, and BEMF constant we recommend measuring these values and then manually inputting these values (if this was not already done).

    Regards,

    Joshua

  • Hi Joshua,

    Thank you for the support.

    Is the customer trying to read or write to the registers of the MCF8316A while the motor is operating?

    No, the issue for now is how to exit MPET mode.

    so tried to disable MPET mode and set [MOTOR_RES], [MOTOR_IND], [MOTOR_BEMF_CONST], [SPD_LOOP_KP] and [SPD_LOOP_Ki] registers all to a non-zero value.

    With the MPET_R, MPET_L, and MPET_KE registers set to 0, the customer thinks that the motor will skip MPET mode at start-up, but it still enters this mode after the motor is started. and a HW_lock_ILIMIT register fault is detected for some time of operation. 

    Based on the tuning documentation, this problem can be solved by increasing dead time compensation. Can I share documentation on the registers that control dead-band compensation time?

    When the customer tries to set the MPET_IPD_select and MPET_key_MEAs_parameter_select registers to 0, the motor shows excessive current and the motor seems to skip MPET mode.

    Does the MCF8316A chip have registers to control the current directly? How to exit MPET mode completely?

    Thanks and regards,

    Cherry

  • Hi Cherry.

    1. When the motor current is at 3A what is the value in the ALGOITHM_STATE register?
    2. Can the customer provide the JSON file/register configuration they are currently using?
    Does the MCF8316A chip have registers to control the current directly?

    The device has the ability to set current limits, the limit used will depend on which ALGORITHUM state the device is in. The current in pre-startup can be set in the ALIGN_SLOW_CURRENT_ILIMIT. The current in open loop can be set using the OL_ILIMIT. The current in closed loop can be set using ILIMIT.

    The registers LOCK_ILIMIT and HW_LOCK_ILIMIT are intended to be used to set the max current limit.

    How to exit MPET mode completely

    To make it so that MPET is never run, the conditions bellow must not be met per sequence or that portion of MPET will run:

    So to make sure MPET will Not run you must have all the conditions met:

    • Set to a non-zero value: MOTOR_RES, MOTOR_IND, SPD_LOOP_KP, SPD_LOOP_KI, MOTOR_BEMF_CONST
    • disable: MPET_R, MPET_L, MPET_KE_ MPET_MECH

    You should also check that these register values are all still able to be read from the device after writing these conditions to EEPROM and power cycling the MCF8316A.

    Regards,

    Joshua

  • Hi Joshua,

    The customer tries to set the parameters you say to meet the condition that MPET is not running and write the values into EEPROM. The values read after power down appear to be normal, but it still cannot exit MPET mode.

    If there is a deviation between these setting parameters and the actual parameters of the motor, is it possible to cause the motor to enter MPET mode again when it is started?

    • ISD_CONFIG,0x44638C20
    • REV_DRIVE_CONFIG,0x283AF064
    • MOTOR_STARTUP1,0x0B6807D0
    • MOTOR_STARTUP2,0x23066000
    • CLOSED_LOOP1,0x0C3184B4
    • CLOSED_LOOP2,0x1AAD8896
    • CLOSED_LOOP3,0x08800001
    • CLOSED_LOOP4,0x0A00412C
    • ALGO_CTRL1,0x00000000
    • ALGO_CTRL2,0x00000020
    • FAULT_CONFIG1,0x5FE80206
    • FAULT_CONFIG2,0x74000000

    These are the main register parameters, could you help check which may cause MPET mode entry? 

    Thanks and regards,

    Cherry

  • Hi Cherry,

    I will need tome time to look into this. I will aim to get back to you by next Tuesday.

    Regards,

    Joshua

  • Hi Cherry, 

    Our team is currently out of office due to US holidays, and will be returning next week.
    Please anticipate a delayed response to your question - and feel free to share additional details which may be helpful to the analysis in the meantime.

    Best Regards,
    Andrew

  • Hi Cherry,

    1. Can the customer provide a capture of the phase current, input speed command, and FGOUT signal frequency  from startup to when it gets stuck at 3A?

    2. When the motor current is constantly at 3A is the motor spinning or stationary?

    3. How did the customers get the R, L, and BEMF constant (Ke) values, was it from the motor's datasheet or measurements?

    4. What is the value in the ALGORITHM_STATE register when the motor begins to spin?

    Regards,

    Joshua