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.

[参考译文] DRV8301-69M-KIT:Instaspin 启动顺序、促销

Guru**** 2387830 points
Other Parts Discussed in Thread: MOTORWARE, DRV8301-69M-KIT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1374018/drv8301-69m-kit-instaspin-startup-order-proble

器件型号:DRV8301-69M-KIT
主题中讨论的其他器件:MOTORWARE

工具与软件:

您好!

我们正在运行 instaspin、通过 motorware lab20创建我们自己的项目、并添加 canbus、基本上是具有不同栅极驱动器和功率级的 DRV8301-69M-KIT。  

我们内部制作了一款96V 逆变器。 逆变器运行和 ID 完美、但是我们的系统启动方式存在问题。  

系统启动过程中出现问题。 我会尝试解释;

我们首先启动处理器的逻辑电源、然后按需通过 CAN 总线为逆变器的电源侧启用96V。 当我们尝试在系统启用后运行电机时、它会发出吱吱声、且不能正常运动。 但是、如果我们进行短路逻辑和96V 断开并重新连接、它会按预期启动、并且电机运行正常。 这是由于电容器保留了上一次启动时的电荷、因此在我们激活28F069M 的逻辑电源后仍然保留了96V。 因此、如果电源端没有96V、似乎某些东西在主 ISR 中运行、这会使系统不稳定。 对于如何缓解这种情况、您有什么想法吗? 主 ISR 中的哪些功能可能是问题的罪魁祸首、一旦我们启用逆变器和96V、我们如何从处理器内的 SW 重新启动这些功能?

谢谢!

/Mikael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

    这一专题的专家目前正在休假。 请在6月24日前收到他的回复。

    谢谢你

    侯赛因·阿米尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我设法解决了这个问题。 对于任何感兴趣的人、必须在软件主 ISR 中禁用但未"启用"以下各项;

    if(enAble==1){
    bool flag_enableSpeedCtrl;
    bool flag_enableCurrentCtrl;
    
    MATH_vec2 Idq_offset_pu;
    MATH_vec2 Vdq_offset_pu;
    
    
    // reset the isr count
    CTRL_resetCounter_isr(ctrlHandle);
    
    // run Clarke transform on current
    CLARKE_run(clarkeHandle_I,&gAdcData.I,&Iab_pu);
    
    // run Clarke transform on voltage
    CLARKE_run(clarkeHandle_V,&gAdcData.V,&Vab_pu);
    
    {
    // run the estimator
    EST_run(estHandle, \
    &Iab_pu, \
    &Vab_pu, \
    gAdcData.dcBus, \
    speed_ref_pu);
    
    flag_enableSpeedCtrl = EST_doSpeedCtrl(estHandle);
    flag_enableCurrentCtrl = EST_doCurrentCtrl(estHandle);
    }
    
    // generate the motor electrical angle
    angle_pu = EST_getAngle_pu(estHandle);
    speed_pu = EST_getFm_pu(estHandle);
    
    // compute the sin/cos phasor
    CTRL_computePhasor(angle_pu,&phasor);
    
    // set the phasor in the Park transform
    PARK_setPhasor(parkHandle,&phasor);
    
    // run the Park transform
    PARK_run(parkHandle,&Iab_pu,CTRL_getIdq_in_addr(ctrlHandle));
    
    // set the offset based on the Id trajectory
    Idq_offset_pu.value[0] = TRAJ_getIntValue(((CTRL_Obj *)ctrlHandle)->trajHandle_Id);
    Idq_offset_pu.value[1] = _IQ(0.0);
    
    Vdq_offset_pu.value[0] = 0;
    Vdq_offset_pu.value[1] = 0;
    
    
    CTRL_setup_user(ctrlHandle,
    angle_pu,
    speed_ref_pu,
    speed_pu,
    speed_outMax_pu,
    &Idq_offset_pu,
    &Vdq_offset_pu,
    flag_enableSpeedCtrl,
    flag_enableCurrentCtrl);
    }
    
    

            // run the offline controller
              if(enAble==1){
            CTRL_runOffLine(ctrlHandle,halHandle,&gAdcData,&gPwmData);
              }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很好。

    谢谢

    Amir