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: 退出 MPET模式后,电机的电流会在3.1A-2.7A,电机控制电流的参数是否是CURR_LOOP_KP和CURR_LOOP_KI控制的?

Part Number: MCF8316A


我在使用MCF8316A驱动电机运动的时候,电机会运行一段时间后停止,加速度最大速度等参数会运行电机后续是否运行,之后我怀疑电机可能是进入了MPET模式,我尝试禁用MPET模式,并且把[MOTOR_RES]、[MOTOR_IND]、[MOTOR_BEMF_CONST]、[SPD_LOOP_KP]、[SPD_LOOP_Ki]这些寄存器都设置为了非0值,我这样做之后,电机运行一段时间后,电机没有停止了,但是电流会一直保持了3.1-2.7A,之后我尝试使用CURR_LOOP_KP和CURR_LOOP_KI寄存器和SPD_LOOP_KP和SPD_LOOP_KI等参数控制电流,电流也会保持在3A请问这个电流过大是我的电机电阻电感基础参数设置不正确导致的还是其他寄存器控制的呢?谢谢!

  • Hi,

    我们确认后给到您答复。

  • 我把 MPET_IPD_SELECT 和 MPET_KE_MEAS_PARAMETER_SELECT位设置为0后,电机才出现这种情况的,我把这两个位设置为1电机运行时我读取电机状态为MOTOR_MPET_KE_MEASURE,无法退出MPET模式,但是当我设置为0才会出现电路过大的情况 谢谢!

  • Hi,

    请问是否尝试在电机运行时读取或写入 MCF8316A 的寄存器? 如果是的话,那么应该是运行到了我们的product device information FAQ 中的Errata #8,意味着您尝试对器件进行的任何更改都无法生效。 为避免此Errata,我们建议仅在电机未运行时通过 I2C 读取和写入器件。

    CURR_LOOP_KP 和 CURR_LOOP_KI 值可保持为零,这两个增益值将由算法自动确定。

    对于电机电感、电阻和 BEMF 常数,我们建议您可以进行测量,然后手动输入这些值(如果尚未这样做)。

    您可以先参考下以上答复,如果您这边的问题不属于Errata #8,我们会帮助您进一步的debug。

    Thanks

  • 我没有在电机运行时读取或写入 MCF8316A 的寄存器,我现在无法退出MPET模式,我初始化电机参数时已经吧[MOTOR_RES]、[MOTOR_IND]、[MOTOR_BEMF_CONST]、[SPD_LOOP_KP]、[SPD_LOOP_Ki]设置为非0值。并且把MPET_R、MPET_L 和 MPET_KE寄存器都设置为了0,我想这样我启动的时候电机会跳过MPET模式,但是电机启动时还是有进入这个模式,并且运行一段时间会出现检测

    HW_LOCK_ILIMIT寄存器故障,我在调优文档中看到解决方法是增加死区补偿时间,但是我并没有看到控制死区补偿时间的寄存器。请问这个寄存器在文档那里?

    之后我尝试把

    MPET_IPD_SELECT和MPET_KE_MEAS_PARAMETER_SELECT寄存器设置为0时,电机会出现电流过大的现象,并且电机似乎是跳过了MPET模式,MCF8316A芯片是否有可以直接控制电流的寄存器?怎样彻底退出MPET模式?谢谢!

  • Hi,

    • 当电机电流为3A 时,ALGOITHM_STATE寄存器中的值是多少?
    • 能否提供您当前正在使用的 JSON 文件/寄存器配置?
    MCF8316A芯片是否有可以直接控制电流的寄存器?

    该器件可以设置电流限制,使用的限制取决于器件所处的 ALGORITHUM 状态。 您可在 ALIGN_SLOW_CURRENT_ILIMIT 中设置预启动的电流,可使用 OL_ILIMIT 设置开环中的电流,使用 ILIMIT 来设置闭环中的电流。

    寄存器 LOCK_ILIMIT 和 HW_LOCK_ILIMIT 用于设置最大电流限制。

    怎样彻底退出MPET模式?

    如果要使得 MPET 永远不会运行,每个序列都不能满足以下条件,否则 该部分的 MPET 将会运行: 

    因此如果想要MPET不运行,必须同时满足以下所有条件:

    • 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

    您还需要检查在将这些条件写入 EEPROM 并重新启动 MCF8316A 后,是否仍可以从器件中读取到这些寄存器值。 

  • 我有尝试将您说的这些参数设置为满足MPET不运行的条件,并且把这些值写到eeprom中,在断电后读出这些参数值,现在看来是一切正常的,但是我还是无法退出MPET模式,请问假如我设置的这些参数和电机的实际参数有偏差,会不会导致电机启动时再次进入MPET模式?

    • 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

    这些是我主要的寄存器参数,有哪些地方会导致进入到MPET模式呢?

  • 您好,

    感谢您提供的信息,工程师正在查看中,最晚会在下周三前给到您答复。

  • Hi,

    抱歉回复晚了。

    1. 请问是否可以分享下相电流、输入速度指令以及从启动到卡在3A 时的 FGOUT 信号频率的捕获截图等?

    2. 当电机电流持续为3A 时,电机是在旋转还是静止的?

    3. 请问下您是如何获得 R、L 和 BEMF 常数(Ke)值的,是从电机的数据表还是说实际测量获取到的?

    4. 当电机开始旋转时,Algorithm_State 寄存器中的值是多少?

    Thanks