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-F28P55X:EPWM_getTripZoneFlagStatus +如何将 BoostXL-3PhGaN 配置为 LAUNCHXL-F28P55X

Guru**** 2553260 points
Other Parts Discussed in Thread: LAUNCHXL-F28P55X, BOOSTXL-3PHGANINV, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1534513/launchxl-f28p55x-epwm_gettripzoneflagstatus-how-to-configure-boostxl-3phgan-to-the-launchxl-f28p55x

器件型号:LAUNCHXL-F28P55X
主题中讨论的其他器件: BOOSTXL-3PHGANINVC2000WARE

工具/软件:

我在这里也有同样的问题: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1338224/tms320f280039c-epwm_gettripzoneflagstatus-api-throwing-error

用户写入 “我已根据 launch-XL-F280049C 映射引脚配置、以匹配 launch-XL-F280039C 的引脚配置。  我使用的是 ePWM 1、2、6 英寸

在这个初始步骤中、我不知道如何操作、我只是将 BoostXL-3PhGaN 连接到 LAUNCHXL-F28P55X、显然这与 3.3V、GND 等器件相匹配

LED 都亮起、并且我从升压转换器移除了跳线 J6(在升压用户手册中错误标记的 J5)、因为已从 USB 供电。

我正在尝试调试 dual_axis_servo_drive_FCL_QEP_f28p55x 工程的 FCL_LEVEL1、但正如我所说的、我遇到过流问题。

用户在他的帖子说:

  • Projectspec 文件经过编辑、可以指向 F28003x 器件支持文件和库。     
  • 我们编辑了链接器 cmd 文件来与闪存配合使用。
  •  dual_axis_servo_drive_user.h 中找到 、t ADC 通道和 ePWM 通道均按照 F80039C 的引脚配置进行了更改

我希望得到有关将 BoostXL-3PhGaN 配置到 LAUNCHXL-F28P55X 的指导、即我认为应设置以下引脚:

我通过 J1/J3 和 J2/4(即使用最靠近 USB 的连接器)连接了升压和 F28P55X。

根据连接情况、对两者进行了原理图比较:

- 启动的 PWM1A 连接到  升压的 J4-40 PWM/GPIO

-启动的 PWM1B 连接到 升压的 J4-39 PWM/GPIO

-启动的 PWM2A 连接到升压的 J4-38 PWM/GPIO

- 启动的 PWM2B 连接到 升压的 J4-37 PWM/GPIO

- 启动的 PWM6A 连接到升压的 J4-36 Timer_Cap / GPIO

- 启动的 PWM6B 连接到 升压的 J4-35 Timer_Cap / GPIO

我正在尝试 FCL_LEVEL 1、并出现过流跳闸故障。

完成编译和刷写后。 在更改后进行调试  enableFlag  最终目的  1.  和  flagSyncRun  最终目的  0.  。  motorVars[0].isrTicker   持续增加。  当  motorVars[0].ctrlState  第五个方框图  CTRL_run 、  motorVars[0].tripFlagDMC  变为高电平 (0x0001)、即  overCurrent_fault。   选中后、该 TRIP_FLAG 在时变为高电平  EPWM_getTripZoneFlagStatus()  返回高电平

另外考虑到我只使用一个电机(只有一个 Booster Pack)...另一个在代码级别激活、但我没有使用它

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

    好消息! 您不需要。

    在 C2000Ware 电机控制 SDK 中、已经有适用于 f28p55x 器件的 BOOSTXL-3PHGANINV 工程版本。 {C2000Ware MCSDK 安装位置}/solutions/boostxl_3phganinv/f28p55x

    此致、
    Jason Osborn

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

    谢谢、但我仍然有这里解释的错误: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1338224/tms320f280039c-epwm_gettripzoneflagstatus-api-throwing-error

    我正在尝试 FCL_LEVEL 1、并出现过流跳闸故障。

    完成编译和刷写后。 在更改后进行调试  enableFlag  最终目的  1.  和  flagSyncRun  最终目的  0.  。  motorVars[0].isrTicker   持续增加。  当  motorVars[0].ctrlState  第五个方框图  CTRL_run 、  motorVars[0].tripFlagDMC  变为高电平 (0x0001)、即  overCurrent_fault。   选中后、该 TRIP_FLAG 在时变为高电平  EPWM_getTripZoneFlagStatus()  返回高电平

    另外考虑到我只使用一个电机(只有一个 Booster Pack)...另一个在代码级别激活、但我没有使用它

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

    是否有任何更新?

    您是否尝试过重现此问题?

    我专门购买了 BoostXL 和 launchpad、它们彼此兼容、但已经达到了 FCL_Level 1、没有电机、我有过电流。

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

    您好、对延迟响应深表歉意。

    我没有意识到这是根本问题。 我在这里猜测您会遇到实际的过流情况、而不是与修改工程相关的情况、从而导致系统进入故障状态以保护您的硬件。

    • LaunchPad 板载开关的状态是什么?
    • LP 和 DRV EVM 之间是否断开任何引脚?

    此致、
    Jason Osborn

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

    尊敬的 Luca:

    如果在没有负载的情况下遇到 OCP 问题、主要原因可能是 CMPSS 配置导致的、请尝试为 ADC 匹配正确的 CMPSS 通道。 您可以在中找到相关信息  模拟引脚和内部连接  或详细说明部分。

    此致'

    Raghu

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

    我已断开 逆变器 BOOSTXL-3PhGanInv 的 J3-30 和 J7-70 以连接 DAC(请参阅中的第 6.1.1.1 节) dual_axis_servo_drive_fcl_qep_f28p55x")

    The states of the LaunchPad on-board switcheses are:

    - UART select switches S2 SEL1 and SEL2 are both DOWN (to 0)

    - PGA select S6 switche is 0

    - BOOT Mode S3 switches are both UP (to 1)

    - QEP select S5 switch UP

    - CAN route S4 switch UP

    see the images below

    当电路板到货时、我默认将它们全部保留下来

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

    感谢你的帮助。

    以下是我的代码中的语句(默认情况下):

    我也尝试了以下方法:

    #define M1_U_CMPSS_BASE CMPSS1_BASE     //在原始代码中进行注释

    #define M1_V_CMPSS_BASE CMPSS2_BASE    

    #define M1_W_CMPSS_BASE CMPSS3_BASE    

    但过流仍然存在 motorVars[0].tripFlagDMC = 0x0001

    以下是您引用的表格:

    您能告诉我是否一切正常或我应该更改什么吗?

    然而,这似乎奇怪的是,有些东西需要改变... 如果我没有误解 Jason 提到的内容、则应该已经配置 LAUNCHXL-F28P55X 和 BOOSTXL-3PHGANINV 之间的引脚排列并准备好使用

    Jason Osborn

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

    我没有附加.c 和.h 文件,因为它们正是我导入的 dual_axis_servo_drive_fcl_QEP_f28p55x 项目的文件...

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

    将根据 ADC 通道选择您的 CMPSS 通道。 确保使用的是正确的 CMPSS 多路复用器通道。

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

    我要问的正是这个、要检查 Texas Instruments 在评估板和逆变器之间提供的代码是否 根据其已定义的 ADC 通道使用正确的 CMPSS 多路复用器通道

    我不知道该怎么做,也不知道该怎么做  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.  您使用哪些 ADC 通道? 记下它们
    2.  在代码 ASysCtl_selectCMPHPMux 中使用此 API 检查 CMPSS 选择。  
    3.  检查 ADC 是否正确映射到所选的 CMPSS 多路复用器通道。
    4. 使用  XBAR_setEPWMMuxConfig  此 API 检查是否启用了正确的多路复用器。
    5. 然后、使用  XBAR_enableEPWMMux  此 API 映射相同的多路复用器通道。

    应该会解决这个问题。 祝你一切顺利

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

    以下是您要求我检查/更改的代码。

    1) ADC 通道

    #define M1_IU_ADC_CH_NUM       ADC_CH_ADCIN2       //A2, NC: Set up based board
    #define M1_IV_ADC_CH_NUM       ADC_CH_ADCIN3       //B3, NC: Set up based board
    #define M1_IW_ADC_CH_NUM       ADC_CH_ADCIN1       //C1, NC: Set up based board
    #define M1_VDC_ADC_CH_NUM      ADC_CH_ADCIN14      //D14, NC: Set up based board
    
    #define M1_IU_ADC_SOC_NUM      ADC_SOC_NUMBER1     //A2, NC: Set up based board
    #define M1_IV_ADC_SOC_NUM      ADC_SOC_NUMBER1     //B3, NC: Set up based board
    #define M1_IW_ADC_SOC_NUM      ADC_SOC_NUMBER1     //C1, NC: Set up based board
    #define M1_VDC_ADC_SOC_NUM     ADC_SOC_NUMBER1     //D14, NC: Set up based board
    
    #define M1_IU_ADC_BASE         ADCA_BASE           //A2*/B6/C9, NC: Set up based board
    #define M1_IV_ADC_BASE         ADCB_BASE           //B3*, NC: Set up based board
    #define M1_IW_ADC_BASE         ADCC_BASE           //C1*/E11, NC: Set up based board
    #define M1_VDC_ADC_BASE        ADCD_BASE           //A6/D14*/E14, NC: Set up based board
    
    // Shunt Motor Currents (M1-Iu) @ B2->SOCB0
    // SOC0 will convert pin B2, sample window in SYSCLK cycles
    // trigger on ePWM6 SOCA/C
    ADC_setupSOC(M1_IU_ADC_BASE, M1_IU_ADC_SOC_NUM, M1_ADC_TRIGGER_SOC, M1_IU_ADC_CH_NUM, 12);
    
    
    // Shunt Motor Currents (M1-Iv) @ C0->SOCC0
    // SOC0 will convert pin C0, sample window in SYSCLK cycles
    // trigger on ePWM6 SOCA/C
    ADC_setupSOC(M1_IV_ADC_BASE, M1_IV_ADC_SOC_NUM, M1_ADC_TRIGGER_SOC, M1_IV_ADC_CH_NUM, 12)
    
    
    // Shunt Motor Currents (M1-Iw) @ A9->SOCA0
    // SOC0 will convert pin A9, sample window in SYSCLK cycles
    // trigger on ePWM6 SOCA/C
    ADC_setupSOC(M1_IW_ADC_BASE, M1_IW_ADC_SOC_NUM,M1_ADC_TRIGGER_SOC, M1_IW_ADC_CH_NUM, 12);

    2A) CMPSS

    //#define M1_U_CMPSS_BASE CMPSS1_BASE //A2/CMP1_P0: Set up based board
    #define M1_U_CMPSS_BASE CMPSS3_BASE //Not used
    #define M1_V_CMPSS_BASE CMPSS3_BASE //B3/CMP3_P3: Set up based board
    #define M1_W_CMPSS_BASE CMPSS4_BASE //C1/CMP4_P2: Set up based board
    
    // initialize CMPSS handle
    obj->cmpssHandle[0] = M1_U_CMPSS_BASE;
    obj->cmpssHandle[1] = M1_V_CMPSS_BASE;
    obj->cmpssHandle[2] = M1_W_CMPSS_BASE;

    2B) CMPSS ASysCtl_selectCMPHPMux

    typedef enum
    {
        ASYSCTL_CMPHPMUX_SELECT_1 = 0U, //!< CMPHPMUX select 1
        ASYSCTL_CMPHPMUX_SELECT_2 = 3U, //!< CMPHPMUX select 2
        ASYSCTL_CMPHPMUX_SELECT_3 = 6U, //!< CMPHPMUX select 3
        ASYSCTL_CMPHPMUX_SELECT_4 = 9U  //!< CMPHPMUX select 4
    } ASysCtl_CMPHPMuxSelect;
    
    
    #if defined(LPVER_RELEASE)
        if(handle == &halMtr[MTR_1])
        {
            //B3*->CMP3_HP3, CMP3_LP3
            ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_3, 3);
            ASysCtl_selectCMPLPMux(ASYSCTL_CMPLPMUX_SELECT_3, 3);
    
            //C1*/E11->CMP4_HP2, CMP4_LP2
            ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_4, 2);
            ASysCtl_selectCMPLPMux(ASYSCTL_CMPLPMUX_SELECT_4, 2);
    
    //        //A2*/B8/C9->CMP1_HP0
    //        ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_1, 0);
    //
    //        //B3*->CMP3_HP3, CMP3_LP3
    //        ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_3, 3);
    //        ASysCtl_selectCMPLPMux(ASYSCTL_CMPLPMUX_SELECT_3, 3);
    //
    //        //C1*/E11->CMP4_LP2
    //        ASysCtl_selectCMPLPMux(ASYSCTL_CMPLPMUX_SELECT_4, 2);
        }

    3 )..如何?.

    4)+ 5)  XBAR_setEPWMMuxConfig + XBAR_enableEPWMMux  

    #if defined(LPVER_RELEASE)
            // Enable Muxes for input of CMPSS3H and CMPSS3L, mux for MUX04
            XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX04_CMPSS3_CTRIPH_OR_L);
    
            // Enable Muxes for input of CMPSS4H and CMPSSS4L, mux for MUX06
            XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX06_CMPSS4_CTRIPH_OR_L);
    
            //inputxbar2 trip
            XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX01_INPUTXBAR1_INPUT1);
    
            // Disable all the muxes first
            XBAR_disableEPWMMux(XBAR_TRIP4, 0xFFFF);
    
            // Enable MUX00, MUX04, MUX07 OR MUX01 to generate TRIP4
            XBAR_enableEPWMMux(XBAR_TRIP4, XBAR_MUX04 | XBAR_MUX06 | XBAR_MUX01);
    
    //        // Enable Muxes for input of CMPSS1H, mux for MUX00
    //        XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX00_CMPSS1_CTRIPH);
    //
    //        // Enable Muxes for input of CMPSS3H and CMPSS3L, mux for MUX04
    //        XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX04_CMPSS3_CTRIPH_OR_L);
    //
    //        // Enable Muxes for input of CMPSSS4L, mux for MUX07
    //        XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX07_CMPSS4_CTRIPL);
    //
    //        //inputxbar2 trip
    //        XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX01_INPUTXBAR1_INPUT1);
    //
    //        // Disable all the muxes first
    //        XBAR_disableEPWMMux(XBAR_TRIP4, 0xFFFF);
    //
    //        // Enable MUX00, MUX04, MUX07 OR MUX01 to generate TRIP4
    //        XBAR_enableEPWMMux(XBAR_TRIP4, XBAR_MUX00 | XBAR_MUX04 | XBAR_MUX07 | XBAR_MUX01);

    你告诉我,我平静地检查代码的这些部分

    感谢您的耐心

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

    对于开关、请注意您使用的是顶部 BoosterPack 连接器 J1-J4。 如果您查看 UART 开关、请注意设置[0、0]意味着 IO28 和 IO29 路由到 XDS110 调试器、而不是 BoosterPack 连接器。 如果更改此设置、是否能够运行电机?

    此致、
    Jason Osborn

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

    假设我正在调试电机尚未连接的 FC_LEVEL1

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

    S1 和 S2 的所有 4 种可能组合仍然存在误差:

    我提醒您、我移除了跳线 J5 和 J3-30 (DACB_OUT)、也许需要重新戴上它?

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

    我在另一条评论中上传了代码 、但附上了图 14-2。 pdf 模拟子系统(QFP A 100 引脚)的方框图

    你有没有机会检查我的代码?

      Jason Osborn 您确定 F28P55X 和 BoostXL 之间的初始化是正确的吗? 我在上面的注释中使用代码发布了它们、您能再次检查它们吗?

    我没有修改代码

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

    Luca,

    如果您未修改代码、则该问题不会出现在代码方面。 我已经再次介绍了我们示例的固件、我不一定会看到发生这种情况的任何原因。

    p55x 项目上 CMPSS 的过流情况表示 9A 电流尖峰。 如果我们在代码中根本找不到任何内容、要么是硬件配置尚未完成、要么是一个板损坏、要么是两个板损坏、要么是您遇到了我们之前在本工程中没有看到的一些问题。

    如果可能、请浏览一些 C2000Ware 基本示例工程、尤其是 ePWM、ADC 和 CMPSS 的工程、以便验证电路板是否没有损坏。

    此致、
    Jason Osborn

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

    您好 Jason、感谢您的回复。

    我已尝试连接两个或三个 boostXL-3PhGaN、但错误仍然存在。

    因此、我订购了一个新的 LAUNCHXL-F28P55X、前提是我目前拥有的 LAUNCHXL-F28P55X 存在硬件问题。

    我将尝试您提到的示例、一旦新示例到达、我将返回此处提供反馈。

    您能否确认这些步骤正确无误

    1)  我移除 BoostXL 上的跳线 J5(如指南中所述,当我使用 USB 为 LAUNCHXL 供电时)

    2) 我移除了 J3-30 (DACB_OUT) 和 J7-70、以便能够使用 DAC 并通过内部示波器显示信号。

    3) 如您所述、我使用上部 BoosterPack 连接器 J1-J4、因此必须将 UART 开关路由到 BoosterPack 连接器。

    ...我忘了别的什么吗?

    唯一可能损坏 LAUNCHXL 的事情是、在 USB 连接到 LAUNCHXL 时、最初几次我忘记移除 BoostXL 上的跳线 J5。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. J5 从 BOOSTXL-3PhGaNInv 向 LAUNCHXL-F28P55x 提供 3.3V 电压。 我们建议使用该断开连接、以实现更好的隔离并避免如果通过 USB 为电路板供电、出现任何争用问题。 如果 F28P55x 损坏、除非 BoosterPack 上的 3V3 电源轨存在重大问题、否则 J5 不太可能是根本原因。
    2. 交换机配置、再次确保一切正常:
      1. S2 - SCI/UART 选择开关
        1. [1、x]将 GPIO28/29 路由至上部 BP 接头
      2. S3 — 引导模式选择开关
        1. [1、1]从闪存引导
      3. S4 - CAN 选择开关
        1. [1/BP]将 GPIO4/GPIO5 连接到上部 BP 接头
      4. S5 - QEP 选择开关
        1. [0]将 QEP3 路由到 J13。 请注意、这适用于 MTR2、而不是 MTR1。 MTR1 的 QEP1 始终路由到 J12。
      5. S6 - PGA 选择开关
        1. [1/左]、以将支持 PGA 的模拟信号路由至 BP 接头而不是 J10 连接器

    我想不出现在还能有什么。 请告诉我您的测试结果。

    此致、
    Jason Osborn

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

    我重新安装了 c2000ware SDK 并重新导入了一个新项目...问题消失了、我不确定为什么。 我确定我没有更改代码中的任何内容、但不管怎样、重要的是它现在可以正常工作。

    非常感谢您的帮助和耐心

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

    很抱歉耽误你的时间。 我在办公室里工作了一段时间。 很高兴听到问题得到解决。 重新安装 C2000Ware 后、您是看到新硬件还是旧硬件上的代码正常工作?

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

    重新安装 C2000Ware 后在旧硬件上运行的代码

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

    哦、还可以。 那么 CCS 可能会有问题。 不确定、但我遇到过类似的问题。 重新启动 CCS/PC 后、一切正常运行。