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.

[参考译文] TMS320F280049C:将 LAUNCHXL-F280049C 与 BOOSTXL-DRV8320RS EVM 配合使用时的电机识别问题

Guru**** 2526700 points
Other Parts Discussed in Thread: LAUNCHXL-F280049C, BOOSTXL-DRV8320RS, C2000WARE, MOTORWARE, DRV8320, DRV8303, DRV8301

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/859726/tms320f280049c-issues-with-motor-identification-using-launchxl-f280049c-with-boostxl-drv8320rs-evm

器件型号:TMS320F280049C
主题中讨论的其他器件:LAUNCHXL-F280049CBOOSTXL-DRV8320RSC2000WAREMOTORWAREDRV8320DRV8303DRV8301DRV832X

您好!  

我在获取 LAUNCHXL-F280049C 和 BOOSTXL-DRV8320RS EVM 设置以识别特定的 BLDC 电机时遇到问题、如 InstaSPIN 实验5示例项目(is05_MOTOR_id)中所述。  我能够完成该过程、并为非常小的 BLDC 电机获得良好的结果、但当我对较大的电机重复该过程时、我无法使电机正常旋转。  

我一直在 user.h 中为较大的电机实验 USER_值。 我在 user.h 文件中定义了两个电机(对于所有 instaSPIN Lab 项目都是通用的)。  

两组电机定义如下所示:  

#Elif (USER_MOTOR== my_MOTOR_Rimfire)
#define USER_MOTOR_INERING_Kgm2 (0.00008)*5.
#define USER_MOTOR_TYPE MOTOR_TYPE_PM
#define USER_MOTOR_NUM_POLE_PAIRS (6)
#define USER_MOTOR_RR_Ohm (0.0)
#define USER_MOTOR_Rs_Ohm (0.0192190986)
#define USER_MOTOR_LS_D_H (2.77999152e-06)
#define USER_MOTOR_LS_q_H (2.77999152e-06)
#define USER_MOTOR_RAGE_VLUX_VpHz (0.00554466015)
#define USER_MOTOR_磁 化电流_A (0.0)
#define USER_MOTOR_RES_EST_CURRENT_A (5.0)
#define USER_MOTOR_IND_EST_CURRENT_A (-5.0)
#define USER_MOTOR_MAX_CURRENT_A (15.0)
#define USER_MOTOR_FLUX_EXC_FREQ_Hz (30.0)
#define USER_MOTOR_NUM_ENC_SLOTS (1000)//编码器插槽
#define USER_MOTOR_FREQ_MIN_Hz (5.0)
#define USER_MOTOR_FREQ_MAX_Hz (600.0)
#define USER_MOTOR_FREQ_LOW_Hz (20.0)
#define USER_MOTOR_FREQ_HIGH_Hz (400.0)
#define USER_MOTOR_VOLT_MIN_V (4.0)
#define USER_MOTOR_VOLT_MAX_V (24.0)

#elif (USER_MOTOR== my_MOTOR_KDE)
#define USER_MOTOR_INERING_Kgm2 (0.00008)*50
#define USER_MOTOR_TYPE MOTOR_TYPE_PM
#define USER_MOTOR_NUM_POLE_PAIRS (10)
#define USER_MOTOR_RR_Ohm (NULL)///ACIM
#define USER_MOTOR_Rs_Ohm (0.0056)//(0.381334811)
#define USER_MOTOR_LS_D_H (9.99999997e-07)//(0.000169791776)
#define USER_MOTOR_LS_q_H (9.99999997e-07)//(0.000169791776)
#define USER_MOTOR_RATLE_FLUX_VpHz 0.01 //(0.0398557819)
#define USER_MOTOR_磁 化电流_A (空)
#define USER_MOTOR_RES_EST_CURRENT_A (2.0)
#define USER_MOTOR_IND_EST_CURRENT_A (-1.95)
#define USER_MOTOR_MAX_CURRENT_A (160.0)
#define USER_MOTOR_FLUX_EXC_FREQ_Hz (40.0)
#define USER_MOTOR_NUM_ENC_SLOTS (1000)
#define USER_MOTOR_INERIING_Kgm2 ((7.06154e-06)*100)
#define USER_MOTOR_RATed_VOLTGE_V (68.0)
#define USER_MOTOR_RAGE_SPEED_KRPM (2.5)
#define USER_MOTOR_FREQ_MIN_Hz (15.0)// Hz
#define USER_MOTOR_FREQ_MAX_Hz (600.0)// Hz
#define USER_MOTOR_FREQ_LOW_Hz (20.0)// Hz
#define USER_MOTOR_FREQ_HIGH_Hz (400.0)// Hz
#define USER_MOTOR_VOLT_MIN_V (20.0)//伏特
#define USER_MOTOR_VOLT_MAX_V (50.0)//电压

我还在使用以下工具:  

#define USER_NOMINAL_DC_BUS_VOLTGE_V ((float32_t)(48.0))

#define USER_ADC_FULL_SCALE_VOLTGE_V ((float32_t)(57.528))

#define USER_ADC_FULL_SCALE_CURRENT_A ((float32_t)(160))//之前为42.843

较大的电机(_KDE)在识别过程中尝试旋转时几乎不消耗任何电流。  关于如何识别该电机以便我们可以处理它的任何想法。  

提前感谢、  

沃尔特  

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

    如果  您不更改硬件套件和 F280049C PGA 的增益、我无法理解为什么您更改 USER_ADC_FULL_SCALE_CURRENT_A。 请勿更改任何内容、只需调整以下四个参数、首先基于您的电机。

    #define USER_MOTOR_RES_EST_CURRENT_A (5.0)
    #define USER_MOTOR_IND_EST_CURRENT_A (-5.0)
    #define USER_MOTOR_MAX_CURRENT_A (15.0)
    #define USER_MOTOR_FLUX_EXC_FREQ_Hz (30.0)

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

    您好 、Yanming、感谢您的反馈。 我删除了大部分#defines、但必须保留以下列表、以便工程将编译。  此外、我应该注意到、我在这些实验中的进展是1、2、然后跳至5。  我在这个论坛上阅读了其他无法让电机在实验3中旋转的人的文章、然后在这里被告知、他们需要首先完成在实验5中完成的电机识别过程。   

    当我使用以下#defines 并正常设置其他所有内容时、设置 motorVars.flagEnableSys、后跟 flagRunIdentAndOnLine 时、整个过程将在大约1/2秒内停止、并且在不结束调试会话并重新启动新进程的情况下不会重新启动。   我没有看到任何报告的错误条件、但它不会在不重新启动调试会话的情况下重新启动。

    #elif (USER_MOTOR== my_MOTOR_KDE)   
    #define USER_MOTOR_INERING_Kgm2          (0.00008)*50
    #define USER_MOTOR_TYPE MOTOR_TYPE_PM
    #define USER_MOTOR_磁 化电流_A (空)
    #define USER_MOTOR_RES_EST_CURRENT_A (5.0)
    #define USER_MOTOR_IND_EST_CURRENT_A (-5.0)
    #define USER_MOTOR_MAX_CURRENT_A      (15.0)
    #define USER_MOTOR_FLUX_EXC_FREQ_Hz  (30.0)

    #define USER_MOTOR_NUM_POLE_PAIRS   (10)
    #define USER_MOTOR_RR_OHM              (空)       仅限//ACIM
    #define USER_MOTOR_Rs_Ohm             (空)
    #define USER_MOTOR_LS_D_H              (空)  
    #define USER_MOTOR_LS_q_H              (空)  
    #define USER_MOTOR_RAGE_VACK_VpHz  0.01   

    #define USER_MOTOR_FREQ_MAX_Hz      (600.0)
    #define USER_MOTOR_NUM_ENC_SLOTS   (1000)

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

    我将 CCS 9.2与 C2000Ware_MotorControl_SDK 搭配使用- v:2.01.00.00。  对于此配置、工程需要其他#defines 才能编译。  您能否查看我今天早些时候发布的设置并对此进行评论、如果您能提出任何建议、我应该尝试一下。  

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

    您好 、Yanming、我一直期待您的回复。  这个问题对项目至关重要,当然,时间是关键。

    同样、我将使用 CCS 9.2和 MotorWare 软件的全新安装、我们将按照指示关注 InstaSPIN 实验室。  该流程适用于小型 BLDC 外转式、但在较大的 BLDC 外转上应用时、该流程不成功。 我已经用一些参数进行了实验、以略微改善旋转结果、但它仍然无法很好地控制电机。

    使用小型电机、我可以在表达式表中设置 RPM、并观察系统控制负载电机的功率以保持速度设置。  对于较大的电机、它不会完成校准过程。   

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

    罗  

    我看到的是设置 motorVars.flagRunIdentAndOnLine = 1后发生 tripFault。  

    这是由于 HAL_getTripFaults (halHandle)!=0)、进而设置 motorVars.faultNow.bit.moduleOverCurrent = 1  

    (在 is05_motor_id.c 的第544行上)

    当我查看位于 hal.h 行1226-1233中的 HAL_getTripFaults()时,我看到它返回0x0C (或1100b)。  

    //! - ePWM_TZ_INTERRUPT -生成触发区中断
    //!                         TZ 事件导致的。
    //! - ePWM_TZ_FLAG_CBC -跳匣区域逐周期事件状态标志
    //! - ePWM_TZ_FLAG_OST -跳闸区域单次触发事件状态标志

    在深入探讨之前、如果可能、我希望获得一些指导、了解如何继续。  

    我再次尝试使用"开箱即用"软件运行电机识别实验(未做任何更改)。  我使用的是最新版本的工具、最近从 TI 网站下载、并遵循了实验步骤。  

    该电机虽然能够运行大电流(50V 时为~150+安培)、但由仅在50V 时产生6A 电流的电源供电、但电源永远不会接近该电平。  发生跳闸故障时、电源未记录单瓦电流。   

    非常感谢您的支持。  

    此致、  

    沃尔特

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

    您是对的、该标志由片上比较器输出或 DRV8320RS 的 nFault 引脚触发、以指示过流故障。 过流故障由电机相位的峰值电流生成、该峰值电流不等于电源的最大电流。 如果您禁用此过流保护、则电路板将损坏。 此套件的最大电流似乎不足以满足您的电机需求、如果您想使高电流电机旋转超过20A、则必须设计您自己的电路板。

    识别期间、您是否从电机上移除了负载? 您能否发布该规格。 您应用的电机和 user.h?

    您可以尝试在 HAL_setupDRVSPI (halHandle、&drvSPI8320Vars)之后添加以下 ccode 以增大限制电流。

    drvSPI8320Vars.ctrl_Reg_05.VDS_LVL = DRV8320_VDS_LEVEL_1P880_V;

    drvSPI8320Vars.writeCmd = 1;
    motorVars.dacValH = 4096 - 50;
    motorVars.dacValL = 50;

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

    您好、Yanming、  

    感谢您再次向我介绍这方面的内容。  

    以下是有关 KDE 马达的信息: www.kdedirect.com/collections/xf-single-rotor-brushless-motors/products/kde700xf-505-g3 

    我开发了一个电路板、通过使用能够满足该电机电流需求的去皮式 N-FET 来实现更高的电流驱动。  定制板是使用 DRV8303设计的、不使用支持 FOC 的处理器、而是执行简单的 BLDC 实现  、我可以使用定制板桥接 LAUNCHXL-F280049C、以便通过 KDE 电机运行更高的电流、从而进行一些短期测试。  但是、根据此参考设计、需要一个新的电路板来支持 FOC 的实现以及针对这个较大电机的设置。   

    同时、我期待着使用 LAUNCHXL 支持的功率级别(即50V、电流小于15A)进行一些基本的电机测试和软件开发。  为测试系统供电的实验室电源在50V 时无法为超过6A 的电流供电、因此我不认为在运行较大的电机时会使 LAUNCHXL 发热。

    我不确定我是否理解问题"识别期间、您是否从电机上移除了负载"。  电机是负载、我不明白如果从系统中移除电机、如何识别它?   

    随附的是我正在使用的 user.h 文件的副本,还有 user.c,该文件对构建和测试(适用于 Rimfire 和 KDE 电机)进行了几处微小的更改。  

    我将查看您描述的软件更改、看看我是否可以使用这些更改使系统以低功耗工作。   

    我将在深入了解这一点后进行跟进。   

    e2e.ti.com/.../0160.user.he2e.ti.com/.../user.c

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

    我还想讨论您提出的以下几点:  

    1:过流故障由电机相位的峰值电流产生、该电流不等于电源的最大电流。

    2.如果您禁用此过流保护、则电路板将损坏。

    关于#1)我们如何调节过流故障、以便将其设置为已知电流?  

    关于#2)假设我使用的是6A 50V 电源、如果在某个地方使用了错误的软件值、我是否需要担心烧毁电路板上的器件?  

    此外、我将进行以下更改:  

    ---- 是:

    //

    //打开 DRV8320 (如果有)
    //
    HAL_enableDRV (halHandle);

    //
    //初始化 DRV8320接口
    //
    HAL_setupDRVSPI (halHandle、&drvSPI8320Vars);

    drvSPI8320Vars.ctrl_Reg_05.VDS_LVL = DRV8320_VDS_LEVEL_1P300_V;
    drvSPI8320Vars.ctrl_Reg_05.dead_time = DRV8320_Deadtime_100_NS;
    drvSPI8320Vars.writeCmd = 1;

    ---- 更改为:

    drvSPI8320Vars.Ctrl_Reg_05.VDS_LVL = DRV8320_VDS_LEVEL_1P500_V; //而不是1P880

    drvSPI8320Vars.ctrl_Reg_05.dead_time = DRV8320_Deadtime_100_NS;

    drvSPI8320Vars.writeCmd = 1;


    //motorVars.dacValH = 4096 - 50;   //在 hal.c 行673中当前设置为2048
    //motorVars.dacValL = 50;          // 在 hal.c 行674中当前设置为2048

    motorVars.dacValH = 2048+1024;

    motorVars.dacValL = 2048 - 1024;  

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

    我研究了建议的代码更改:  

    drvSPI8320Vars.ctrl_Reg_05.VDS_LVL = DRV8320_VDS_LEVEL_1P880_V

    drvSPI8320Vars.writeCmd = 1;
    motorVars.dacValH = 4096 - 50;
    motorVars.dacValL = 50;

    在不进行此修改的情况下、高电平和低电平 DAC 设置都设置为2048。  这在代码中被标记为中点。  

    我想知道如何确定用于这些设置的刻度、如果我不应该从以下内容开始:  

    motorVars.dacValH = 2048+1024;  

    motorVars.dacValL = 2048 - 1024;  

    此外、如果我们需要担心损坏 LAUNCHXL 或升压硬件、还想知道测试设置是否在50V 时使用由6A 供电的电源?  

    您能不能让我指出任何描述 DAC 缩放计算方法的文献?

    提前感谢、  

    华特白  

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

    1.电机识别必须在没有负载或轻负载的情况下运行、因此您不能向电机添加任何负载、如果有、您应该从电机轴上取下负载、 因为控制器不知道在识别过程中使电机在负载下旋转的确切转子位置。 我认为应该使用此板识别电机或无负载运行电机。

    2.更改 DRV8320和 motorVars.dacValH/motorVars.dacValL 的 VDS 限制值 、仅用于增加最大电流保护值以避免过流故障。 比较器的内部基准 DAC 值将在 isxx_xx.c 中由 motorVars.dacValH/motorVars.dacValL 变量按照以下代码进行更改、因此这就是为什么要进行上述设置的原因。  

          for (cmpssCnt = 0;cmpssCnt < HAL_NUM_CMPSS_CURRENT;cmpssCnt++)

          {

            HAL_setCMPSDACValueHigh (halHandle、

                         cmpsCnt、motorVars.dacValh);

            HAL_setCMPSDACValueLow (halHandle、

                        cmpsCnt、motorVars.dacVall);

          }

    F280049C TRM 的第16章(比较器子系统)一样、基准 DAC 的输出可被连接至  相应比较器的负输入、所以设定  DACHVALA/DACLVALA  值来调整限制值。  

     DACHVALA/DACLVALA 的值为2048、这意味着基准电压为1.65V (VDDA 的一半)、限制电流为零、因为 F28049C 的 PGA 使用1.65V 偏移感测电机的双向电流、 DACHVALA 被设定为4095、这意味着正最大电流为 USER_ADC_FULL_SCALE_CURRENT_A 的一半、而 DACLVALA 被设定为0、这意味着负最大电流为 USER_ADC_FULL_SCALE_CURRENT_A 的一半

    因此、如果您将 motorVars.dacValH 设置为4095、则正峰值电流为+(USER_ADC_FULL_SCALE_CURRENT_A/2);如果您将 motorVars.dacValL 设置为0、则负峰值电流为-(USER_ADC_FULL_SCALE_CURRENT_A/2)。 但是、您必须为两个变量保留一个小的缓冲区、这就是建议使用上述值的原因。

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

    我遇到了类似你的问题。 但是、当我开始增加 PWM、然后固件开始计算 Ls 时、我能够旋转电机几秒钟。 此时过流故障变为1。 n´t 我尝试了一个小型电机、但我没有遇到问题。

    当 motorVars.flagMotorIdentify=1 motorVars.LS_d_H 时、motorVars.LS_q_H 会显示我 (9.9999999997e-07)

    我已将 PWM 频率更改为45khz

    USER_NUM_PWM_TICKS_PER_ISR_TICK     (3)

    USER_MOTOR_FLUX_EXC_FREQ_Hz    (80.0)

    USER_MOTOR_RES_EST_CURRENT_A   (4.0)

    USER_MOTOR_IND_EST_CURRENT_A   (-4.0)

    我还提高了直流总线电压。  

    USER_NOMINAL_DC_BUS_VOLTGE_V      ((float32_t)(32.0))

    我已阅读 MotorWare instaSpin Labs。 我们要控制低电感电机,我们必须增加 PWM 频率,也要增加 PWM 频率

    USER_MOTOR_FLUX_EXC_FREQ_Hz    

    我花了很多时间尝试识别电机、但在构建项目时、请先尝试"celan 项目"、然后在进行此类修改时构建项目。

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

    正确、低电感电机必须使用更高的 PWM 频率进行识别和旋转。 标识变量需要根据规格进行配置。 以使其在运行期间平稳旋转。 否则、标识将不正确。

     

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

    然而、即使在更高的 PWM 频率下、Juan 似乎仍然存在 PWM 故障跳闸问题、在发生相同故障之前、系统只会稍微进一步。

    我们在 TI ePWM 模块或3次输入故障跳闸中遇到类似问题、导致了奇数比较器行为。 此修复程序需要使比较器 GPIO 输出 OD、并为内部发生故障输入分配 WPU。 在修正之前、可以注意到两相位桥臂的比较器跳闸点灵敏度在中心大于250mV、在最后一个比较器大于500mV。 OD 改变后、所有比较器忽略初始启动瞬态、并仍在设置的跳变点保护逆变器 NFETS。

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

    奇怪的 ePWM 故障跳闸声明为 DCA 使用未滤波但它选择滤波。

     

    //将 DCA 路径配置为未过滤和异步
    ePWM_setDigitalCompareEventSource (obj->pwmHandle[cnT]、
    ePWM_DC_MODULE_A、
    ePWM_DC_EVENT_1、
    ePWM_DC_EVENT_SOURC_FILT_SIGNAL);
    
    //将 DCB 路径配置为未过滤和异步
    ePWM_setDigitalCompareEventSource (obj->pwmHandle[cnT]、
    ePWM_DC_MODULE_B、
    ePWM_DC_EVENT_1、
    ePWM_DC_EVENT_SOURC_FILT_SIGNAL);
    
    //! 信号源未滤波(DCAEVT1/2)
    EPWM_DC_EVENT_SOURC_ORIG_SIGNAL = 0、
    //! 信号源被过滤(DCEVTFILT)
    EPWM_DC_EVENT_SOURC_FILT_SIGNAL = 1 

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

    在 OD 配置中、我们使用3个来自3个模拟比较器的独立 ePWM 故障源 GPIO 输入。 对于具有电流传感器的 DRV8320RS、似乎不考虑图18-1输入 XBar 1、3。  

    DRV8320原理图没有外部指针 nFAULT LED 指示信号流入下面的 J1接头。 为什么您今天没有查看 Booster Pack 接头、谁知道?  

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

    当 TRIP 7、8、9是已配置的故障输入时、CMPSS (GPIO TZ2)的配置似乎是奇数的。

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

    TZ2 nFault 适用于 DRV8320、但不一定表示过流情况、因为 PGA1、3、5通过 CMPSS 1、3、5监控 OC 情况。 DRV8320 nFault 可能会在其他条件下发生、也可能会自动禁用 ePWM 驱动器。

    不同之处在于、如果 DRV8320驱动器或 SW 命令导致故障、Booster Pack 故障 LED 将亮起。 让 DRV8320和 ePWM 检测 OC 条件似乎有点多余。 但如果直流总线电压快速下降到 UVLO、则不会出现其他类型的驱动器问题。  我们似乎需要两个 LED 来了解是什么导致了 ePWM 故障。 替代方法是调用 printf()来指示 DRV8320的 nFault 状态寄存器。  

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

    来自 DRV8320的 nFault 信号和来自 CMPSS 的输出都链接到 ePWM XBAR 以禁用 C2000的 PWM 输出。 DRV8320RS 具有一些集成保护特性并在 nFault 引脚上输出状态、您可以在其数据表中找到详细信息、如下链接所示。 如果您想发布不同主题、以帮助其他设计人员轻松参考该主题、请创建新主题。

    http://www.ti.com/product/DRV8320R

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

    [引用用户="Yanming Luo") 来自 DRV8320的 nFault 信号 和来自 CMPSS 的输出都链接到 ePWM XBAR 以禁用 C2000的 PWM 输出。 DRV8320RS 具有一些集成保护特性、并在 nFault 引脚上输出状态、您可以在其数据表中找到详细信息、如下链接所示。

    他再次指出、DRV8320RS 未嵌入任何 OC 放大器。 DRV 数据表未明确标识在这种情况下禁用了哪些故障寄存器位。 因此、DRV 故障寄存器标志位不会在 Tz2输入上设置整个故障优先级。 PGA 放大器 TripN 仅在电机 OC 条件下禁用 ePWM 驱动器。 由于 DRV8320RS 没有电流放大器、因此不会发布相同故障条件的单独状态、这是怎么可能的。    

    从逻辑上讲、任何可立即停止电机运行的过流(OC)条件都不应启用 BoostXL 板上的 LED! DRV8320RS 仅通过 InsaSpin GUI 状态寄存器视图报告其他故障情况。 因此、OC 故障不应使 BoostXL LED 跳闸到导通状态、从而消除了这种故障源。

    同样、如果6A 电源在负载下突然突降、PWM 故障配置会使 DRV8320遇到 UVLO 或类似情况的可能性处于开路状态。  

    我的帖子最肯定与此主题相关。 不 包含红色框故障、而是绿色故障

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

    我想您应该已经查看了故障状态寄存器1和2、VDS 也可以检测到过流故障。

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

    正确、这似乎会导致故障状态、但不会影响 Tz2配置的单次触发、当时被认为是故障检测器。 奇怪的是、InstaSpin GUI 显示 DRV8320Rs 故障配置自动重试、在连接到目标后检查故障寄存器设置。 也许这并不重要、因为一旦触发 Tz2单次触发、目标 PWM 就会停止。 \

    因此、它有两种方法可以消除故障、稍后我将进一步介绍这一点、因为它从未因电流故障而跳闸并抽吸我的2A 峰值电动机。 OC 故障点是防止电机着火。 然而、当中心相位短路且从未触发过 OC 故障时、相位电压从+20V 降至+10V。 目标不断调制时髦的信号、A 相 具有反相的并且与 B 相的占空比不同

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

    DRV8320RS 的 nFault 引脚连接到 F280049C 的 GPIO。 相关 GPIO 连接到输入 XBAR 并配置为 TZ 以实现过流保护。 请参阅 hal.c 中的 HAL_setupFaults()

    好的、有两种方法可以对过流故障进行三角运算以关闭 PWM 输出。 默认值对于任何电机都不合适、您必须根据电机和电路板的最大容差电流来更改项目中的阈值。  

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

    [引用用户="Yanming Luo") DRV8320RS 的 nFault 引脚连接到 F280049C 的 GPIO。 [/报价]

    8320故障 LED 仅在加电时闪烁、并且 FaultFlags 变量中的 nFault 标志设置似乎不正确。 此外、切勿触发 Tz2子模块 OSHT 来禁用 ePWM 输出、使其始终保持高电平。 奇怪的是、大多数 drv8320寄存器具有栅极驱动和其他的最大设置。 当 Tz2配置 OSHT 时、为重试模式设置8320 nFault 操作似乎不正确。

    其他海报混淆了以相信8320 VDS 故障代表外部 NFET IDS 电流、VDS 仅表示内部图腾柱过流情况。 因此、drv8301不使用2个内部电流放大器无法检测到200安培的 VDS 故障、甚至考虑可能的或准确的情况也是荒谬的。

    某些电机套件在选择使用外部电流放大器时禁用了 drv832x 故障寄存器的某些部分。 然而、数据表仍然必须显示所有版本栅极驱动器的所有故障寄存器。 数据表需要做得更好、以阐明故障寄存器的各个部分何时对每个芯片选项有效。

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

    我认为数据表应该通过设置控制寄存器来具有此类功能、因为这些器件不受此 C2000论坛的支持。 您可以查看数据表。