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:移植 TMS320F2800157

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1363339/drv8301-69m-kit-porting-with-tms320f2800157

器件型号:DRV8301-69M-KIT
主题中讨论的其他器件: TMDSCNCD2800157TMDSADAP180TO100、DRV8301 、TMS320F2800157、TMDSCNCD2800137、 TMDSHVMTRINSPIN

您好!

硬件:

- DRV8301-69M-KIT

- TMDSCNCD2800157

- TMDSADAP180TO100

DRV8301-69M-KIT --> TMDSADAP180TO100 --> TMDSCNCD2800157  

软件:

- CCS 12.7

-电机控制 SDK 4.2.1

我尝试使用 DRV8301运行 universal_motorcontrol_lab_f280015x、但始终会遇到过流故障。

下面我有两个问题:

故障不是来自 SPI、而是来自 HAL_getMtrTripFaults runMotor1Control 中的函数 motor1_drive.c 内的 func EPWM_getTripZoneFlagStatus 返回零。

static inline uint16_t HAL_getMtrTripFaults(HAL_MTR_Handle handle)
{
    HAL_MTR_Obj *obj = (HAL_MTR_Obj *)handle;
    uint16_t tripFault = 0;

    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));

    return(tripFault);
}


2.由于某种原因、我无法使用 SPI 与 DRV8301通信、因为 XTAL 使用/阻止 SPI CS 和 CLK 引脚。

我们曾尝试关闭开关、但随后代码卡在 XTAL 源时钟饱和期间。

请建议如何成功地将 DRV8301-69M-KIT 与 TMS320F2800157连接在一起。

提前感谢

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

    谢尔谢克、您好!

    1.您的 ADC 电流感应参考配置是外部的还是内部的?

    F2800157只有一个 SPI。 因此、如果您希望使用 SPI、则可能只能使用内部振荡器。

    谢谢。

    嘉兴市

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

    作为通用实验室控制器示例、ADC 电流感应参考配置为默认设置。

    请提供建议、我们如何使用/配置内部振荡器?

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

    谢尔谢克、您好!

    您是否参考了通用电机控制实验用户指南中有关设置控制卡上的开关的"第3.2.6节 TMDSCNCD2800137设置"? TMDSCNCDF2800157对开关具有不同的位置。 请参考原理图、确保开关位置与您的软件配置相匹配。

    由于您没有使用高压套件"TMDSHVMTRINSPIN"来驱动电机(采用 F280015x 的通用控制实验室软件项目中的那个)、请仔细检查 hal.c/h 中的外设初始化(例如 ADC、PWM 等)是否正确。

    谢谢。

    嘉兴市

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

    您好!

    我收到过流错误、因为 ePWM_getTripZoneFlagStatus 发出 OST、CBC、DCAEVT1、DCBEVT1错误。 我们在 TZFLG 寄存器中看到了这种情况。

    因此、我们在 hal.c 文件中禁用了 HAL_setupMtrFaults、并可根据需要运行电机。  

    您能解释一下为什么会出现这些错误吗? 禁用它会在将来产生任何其他问题吗?

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

    谢尔谢克、您好!

    "HAL_setupMtrFaults ()"是针对过流的 PWM 跳匣保护配置。  软件中的过流阈值设置是多少? 当您禁用保护功能时、是否会产生有害的大电流?

    谢谢。

    嘉兴市

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

     在 user_mtr1.h 中、我的 USER_MOTOR1_OVER_CURRENT_A 设置为50.0A、但我不知道它何时设置或比较 TripZone 中的此值。


    不可以,当我注释  HAL_setupMtrFaults()时,即使在电机高速运转时也看不到大电流。

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

    谢尔谢克、您好!

    函数"HAL_getMtrTripFaults()"位于"runMotor1Control ()"内,该函数位于后台循环中,并在 CPU 空闲时发生。 如果您在初始化时有"HAL_setupMtrFaults()",则将具有该外设级过流保护。  

    您也许可以根据您的系统技术规格来禁用这个保护、但是如果您仍希望启用和调试这个触发区功能、请确保 您 根据您的硬件修改"HAL_setupMtrFaults ()"中的设置。

    谢谢。

    嘉兴市

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

    是的、我想对它进行调试、这就是我需要您帮助的地方。 我们 仅使用 TI 提供的 DRV8301-69M-KIT。 我已经检查了所有设置、如 MTR_IU/V/W_XBAR_EPWM_MUX、MTR1_XBAR_TRIP 和 pwmHandles、但仍然遇到问题。 (我将大部分值保留为默认值、仅更改了  TMDSCNCD2800157控制卡上配置的 PWM 通道)

    我们非常感谢您在 Tripzone 中提供任何帮助。  
    谢谢!

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

    谢尔谢克、您好!

    当然可以。 您现在要测试什么构建级别? 您是否根据您的定制系统更改了 ADC 通道配置及其相应的比较器(CMPSS)模块?

    谢谢。

    嘉兴市