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.

[参考译文] LAUNCHXL-F28P65X:无法运行 BLDC 电机

Guru**** 2813875 points

Other Parts Discussed in Thread: DRV8316, LAUNCHXL-F28P65X

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1616374/launchxl-f28p65x-unable-to-run-the-bldc-motor

器件型号: LAUNCHXL-F28P65X
主题中讨论的其他器件: DRV8316C2000WARE

MCU:TMS320F28P65X

增压板:Drv8316R

电动机: LVBLDC MTR (dn4240S24-026 24V)


由于此设置没有直接的示例、因此我遵循 通用电机控制工程和实验用户指南、 对于此设置、我已选择 f28p65x 作为基础工程。在中、我更改了 MCU IN 和 OUT 引脚、并在 f28p65x 的工程规格中添加了 drv8316 文件、并根据引脚布局配置了 ADC、PWM、SPI 的引脚、我已更改电机电阻值和所有均基于电机数据表...
我有几个问题或疑问:
1) 我可以使用快速算法来运行电机还是应该运行 motor_isbldc ?

2) 配置针脚本身是否足够或必须进行任何更改才能运行马达?

3) 获取 f28p65x 的基本设置是否正确,或者我们是否必须移动到其他基本设置?

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

    您好、

    1) 我可以使用快速算法运行电机吗?还是应该运行 motor_isbldc 吗?

    只要提供正确的电机规格、您就应该仍然能够快速驱动电机

    2) 是否对引脚本身进行了足够的配置、或者是否必须进行任何更改才能运行电机?

    引脚是最大的、您可能需要根据电路板参数调整一些失调电压和故障保护

    3) 使 f28p65x 的基本设置正确、或者我们应该移动到其他基本设置吗?

    F28P65x 的默认设置可以正常工作。 我们提供了一些适用于其他器件的 DRV8316 示例、我想是 F28002x 和 F28003x、因此您可以同时参考这些工程

    此致、

    彼得

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

    您好、Peter:  

    我们能够在 2 级(开环)旋转电机,同时验证参数  

    1.将 VDC_BUS 作为实际电压电源 (24V) 的值 (1/2)。  

     值=(float32_t) ADC_readResult (MTR1_VDC_ADCRES_BASE、MTR1_VDC_ADC_SOC_NUM);

       pADCData->VdcBus_V = value * pADCData->dcBusvoltage_sf;--> vdcBus_V 值占电源电压 (12V) 的一半

     pADCData->dcBusvoltage_sf = 44 (USER_M1_ADC_FULL_SCALE_VOLTAGE_V)/4096.0f

    HVKIT_R1p1_HV Luo、Yanming:在 J1/J2/J3/J4 上组装跳线、用于短接低压电机的 R20/R23/R26/R37 HVKIT_R1p1_LV BST8323RS_revA BST8323RH_revA BST8353RS_revA BST_3PhGAN BST8316_revA
    最大采样电压[v] 409.900660066007. 112.210891089109. 57.5284569138277 57.5284569138277 132.797950819672 81.4990521327014 44.276821192053

    根据 Excel 工作表、我们设置 USER_M1_ADC_FULL_SCALE_VOLTAGE 为 44 (DRV8316)。  我们使用的 ADC 的基准电压为 3.3V、

    2.我们在旋转时观察到电机过热、而在观察窗口中我们看到欠压设置为 1、当欠压阈值为 10 时、欠压设置为 1、我们得到的电压为 5V、这是匹配的。 过流设置为 1、但不在 faultmtruse!=16 中、因此 PWM 正在运行、我们设置的过流值为 10.45安培、小于 10.45。PWM 在 faultmtr=16 时停止。 额定电机电流为 3A。



    在这里、

    1.为什么 ADC_BUS 值是电源 (12V) 的一半,即使我们提供直流电源至 24V(电机额定电压)?  
    2.过热的原因可能是什么? ->有一个标志 motorovertemp、但基本代码中未实现 (f28p65x)
    3.我们能够以 60Hz 的速度旋转电机,但当更改为 100,而在开始尝试抽取电流的高,并停止时,此级别 2 支持任何特定的速度吗?

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

    您好、  

    1.为什么 ADC_BUS 值得到一半的电源电压 (12V)、即使我们将直流电源供应到 24V(电动机额定电压)?  [/报价]

    我假设您使用 LAUNCHXL-F28P65X 进行评估。 在这种情况下、由于您使用 3.3V 内部基准、因此需要断开连接到板载外部基准的跳线。 即使使用内部基准、VREFHI 引脚上是否存在电压也可能会导致电压读数出现问题。

    [引用 userid=“680138" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1616374/launchxl-f28p65x-unable-to-run-the-bldc-motor/6252707 ]2.过热的原因可能是什么? ->有一个标志 motorovertemp、但未在基本代码 (f28p65x)
    中实现

    过热故障由用户自行实施、因为这可能因使用的硬件/驱动器/热敏电阻而异。 这可能与前面所述的 ADC 检测有关、也可能是电路板配置的结果。 请确保您遵循该电路板的用户指南

    [引述 userid=“680138" url="“ url="~“~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1616374/launchxl-f28p65x-unable-to-run-the-bldc-motor/6252707。]3. 我们能够以 60Hz 的速度旋转电动机、但当更改为 100 时、当开始尝试降低电流并停止时、此级别 2 是否支持任何特定的速度?

    构建 2 是开环的、因此很难保持更高的速度、除非您专门调整了开环参数。 我们建议仅使用构建 2 进行电机验证、您可以利用构建 3 中的闭合电流环路以更高的速度运行

    此致、

    彼得

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

    您好、

    偏移值由三相电流的 ADC 检测决定、但这是您没有说的。 请验证它们是否已正确分配到正确的引脚。 此外、您需要验证 PWM 是否在偏移计算阶段正确切换、然后再关闭。 您能否将示波器连接到 PWM 输出并验证这一点?

    对于板级参数、我相信您可以直接从 F280049C 的 8316R 工程中获取它们、因为不同 C2000 器件的电路板参数是一致的

    此致、

    彼得

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

    您好、Peter:

    ADC 值在 60 到 145 之间变化、能够在具有万用表的引脚上看到 0.1162 ((145*3.3)/4096) 的电压。 在这里、我附加了 PWM 开始关闭、然后在校准阶段后运行。
    中没有 f280049C 工程 “C2000 Ware_Motor Control_SDK_5_04_00_00\solutions\universal_motorcontrol_lab“ 、我们从 f28003x 获取了 drv8316 的数据。

      

    这些值为 ISENA、ISENB、ISENC 和 Vdc_Bus。

    PWM:-



     

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

    您好、

    波形看起来良好、并表明 ePWM 和 ePWM XBAR 的路由正确、从而触发 ePWM 跳闸。 然后、您需要仔细检查 电路板上的满量程范围是否正确。 请查看代码中的注释、查看可用代码是否需要对电路板进行任何修改。 然后、您可以更新电路板或直接更改代码设置

    此致、

    彼得

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

    您好、Peter:

    在 3 级、由于触发过流电机停止、  

    我们怀疑的价值是  
     USER_M1_ADC_FULL_SCALE_CURRENT_A、  根据下面添加的注释(注释)、我们设置的值为 22.0f   

    //! \brief 定义了 AD 转换器的最大电流
    //! DRV8316 = VREF = 3V、增益= 0.15V/A || 3.3V / 0.15V/A = 22.0A
    //! GAIN = 0.30V/A || 3.3V/0.30V/A = 11.0A
    //! GAIN = 0.60V/A || 3.3V/0.60V/A = 5.50A
    //! GAIN = 1.20V/A || 3.3V / 1.20V/A = 2.75A
    //! 更改该 ADC 标度电流值、该值必须与 hal.c 中的 CSA 增益匹配

    ->但在 Excel 工作表中、满量程电流的值如所示 17.0f 此计算基于  ADC 最大输入电压/实际放大增益(OPA 输出/反馈电阻千欧)/电流输入电阻器,我们没有找到任何有关 OPA 输出值或任何与满量程电流计算相关的值在 drv8316 原理图中,您能帮助我们根据电路板配置正确设置该值.
    ->还有一件事是当我们将偏移计算设置为 true 时,在偏移计算后,值将设置为  


    ->如果我们将其设置为“错误“、  
    obj->adcData.offset_I_ad.value[0]= USER_M1_IA_offset_ad;
    obj->adcData.offset_I_ad.value[1]= USER_M1_IB_offset_ad;
    obj->adcData.offset_I_ad.value[2]= USER_M1_IC_offset_ad;
    //! \brief:A、B 和 C 相位的 ADC 电流偏移
    #define USER_M1_IA_OFFSET_AD (1869.6f)
    #define USER_M1_IB_OFFSET_AD (1877.3f)
    #define USER_M1_IC_OFFSET_AD (1876.9f)
    因此、 当失调电压计算为 true 时、获取值的原因是如此之低、我们怀疑满量程电流。  

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
    ->我们已验证板级设置 (drv8316) 是否正确映射  
    ID 设置名称 desscritpion 程序 而变化 测量输出 映射
    a. 用户将 L1、L2 或 R1 填充到
    为选择开关元件
    降压稳压器
    顶部 顶部 L1=47uH 电感器 电感器模式 映射正确
    b. VREF/ILIM 选择使用板载
    VREF 或 ILIM 基准电路
    顶部 J1=左侧 VREF 跳线连接到 Vref
    c. ILIM_SEL 为选择 ILIM 电压基准
    逐周期电流限制
    顶部 J2=正确 ILIM 来自 R4/R7 分压器 跳线连接到 ILIM
    d. HALL_PWR_SEL 选择霍尔电源电压 顶部 J8=左侧 霍尔功率来自 3.3VBK 跳线连接到 J8 左侧
    e. VREF 选择 选择 VREF 源 顶部 R54 pop、R51 DNP 与 EVM 相比 VREF = 3V 映射正确
    f 修订版 pol。 旁路   绕过反极性
    保护和 π 型滤波器
    Botttom R20 为 DNP 使用了 RPP 和 π 型滤波器 映射正确
    g 3.3V(来自)
    到此结束
    “将降压电压连接到
    LaunchPad 3.3V“
    Botttom R13 为 DNP 之间无连接
    3.3VBK 和 LaunchPad
    3.3V
    映射正确


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

    您好、

    您是否修改了 DRV8316 电路板来利用硬件接口? 否则、默认情况下它应该是一个 SPI 接口、在这种情况下、增益在写入 SPI 的软件中控制。 因此、如果您不调整 DRV 上的增益寄存器、则默认值为 6.67x 增益、因此满量程的 22.0f 值是正确的。

    此致、

    彼得

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

    您好、Peter:

    MCU:F28P65X
    Booster Board: DRV8316RT

    这里的问题,我们面临的级别 3 :


    if (HAL_getPwmEnableStatus (obj->halMtrHandle)== true)
    if (HAL_getMtrTripFaults (obj->halMtrHandle)!= 0)
    obj->faultMtrNow.bit.moduleOverCurrent = 1
    }
    }
    从触发过流并获取 FAULT 信号  

    tripFault =(EPWM_getTripZoneFlagStatus (obj->pwmHandle[0])&
    (EPWM_TZ_FLAG_OST | EPWM_TZ_FLAG_DCAEVT1 | EPWM_TZ_FLAG_DCAEVT2)|
    (EPWM_getTripZoneFlagStatus (obj->pwmHandle[1])&
    (EPWM_TZ_FLAG_OST | EPWM_TZ_FLAG_DCAEVT1 | EPWM_TZ_FLAG_DCAEVT2)|
    (EPWM_getTripZoneFlagStatus (obj->pwmHandle[2])&
    (EPWM_TZ_FLAG_OST | EPWM_TZ_FLAG_DCAEVT1 | EPWM_TZ_FLAG_DCAEVT2);

    ->什么可能是导致跳闸故障的原因?  
     
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sri:

    3 级是电流控制模式、因此电流消耗会更高。  您要在构建 2 中进行测试并检查电流检测电平以确保其与实际电流电平相匹配、例如通过与电流探头进行比较。 如果存在差异、则需要调整电流检测(满量程值)。 然后、您还需要确保峰值电流(由 USER_MOTOR1_OVER_CURRENT_A 定义)与电机峰值电流匹配。 在构建 3 中、电流控制环路将强制的电流幅度将由 USER_MOTOR1_STARTUP_CURRENT_A 定义 因此、如果在较高的电流值下出现问题、您可以尝试降低启动电流

    此致、

    彼得