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-F280049C:LAUNCHXL-F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件: BOOSTXL-DRV8320RSC2000WAREDRV8320

你好。

我有一个带有 BOOSTXL-DRV8320RS 的 LAUNCHXL-F280049C,并尝试完成《适用于 F28004xC 的 InstaSPIN-FOC 实验指南》的所有步骤,但我卡在 is02_OFFSET_GAIN_CAL (CPU 的偏移/增益校准)。

当我将 motorVars.flagEnableSys 设置为1时,表达式监视窗口中没有任何 PWM 比较寄存器(CMPA)值。 相反,在((EPwm1Regs.CMPA).bit、(EPwm2Regs.CMPA).CMPA).bit 和(EPwm3Regs.CMPA).bit 和(EPwm3Regs.CMPA)中找不到„bitfield‘bit'。位错误和最终偏移值在 motorVars.offsetVs.offset1和 offsetV 后不会更新 motorVars.I 偏移值。

在附件中、有一个包含这些错误的表达式监视窗口的屏幕截图。

 我使用的是 Code Composer Studio 版本:12.1.0.00007和 C2000Ware_MotorControl_SDK_4_01_00_00。 并尝试在两台不同的计算机上工作、一台使用 Windows 11 Pro、另一台使用 Windows 10 Pro。 这两个问题是相同的。

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

    您好 Janusz、

    供参考:CCS12与 Win10不向后兼容。 您是否还为调试观察窗口 lab-2加载了正确的*。asp 脚本文件? 您必须向下钻取树、以搜索/Debug 脚本文件目录。

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

    你(们)好,GI

     在我的 Win 10计算机上、我有 CCS 版本12.0.00009、在 Win 11计算机上、我有12.1.0.00007 CCS 版本、但两台计算机都出现问题。

     项目从此处导入到 CCS:C:\ti\c2000Ware_MotorControl_SDK_4_01_00_00\solutions\boostxl_drv8320rs\f28004x\ccs\sensorless_foc\is02_offset_gain_cal_eabi.projectspec、变量从以下位置导入:C:\ti\c2000Ware_MotorControl_SDK_sensorless\j02_sensorless_gors\cal\s\con_offset

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

    可能是 Windows 7无法安装 CCS 12。  看起来 DRV8320RS 未安装在所选的升压器接头上、可选择 USER.h 顶部 DRV 可能会按排针引脚偏移、如果在黑暗区域工作、则可能会发生偏移。 您是否更改了 lab2项目属性以从闪存运行?

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

    是的、CCS 12与 Win 7不兼容。

    我是否应该更改 user.h 头文件中的内容以使 DRV8320RS 正常工作?

    在 lab2中、我从 RAM 运行项目。

     我刚刚将 lab2导入 CCS 中,但没有改变它的内容。 刚刚尝试从 RAM 调试运行它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4386793 #4386793"]刚尝试从 RAM 调试运行它[/quot]

    用户实验指南建议将所有其他实验的项目属性更改为闪存。

    [报价 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4386793 #4386793"]我是否应该更改 user.h 头文件中的内容以使 DRV8320RS 正常工作?

    过去、我们必须注释掉 Booster 头文件定义、对于未安装的 DRV、请查看 top user.h 回想一下、这两个站点都是在早期 SDK 版本中定义的。 因此、如果 define 起作用、hal.c 应在未使用的备用 Booster 接头上进行颜色选择。 在实验2之后、您必须在实验5中为电机进行识别、添加您自己的电机名称定义。  检查 ADC 最大电压、电流值、对于导入的 DRV8320RS 项目文件、这些值应接近正确的<45vdc 电源42安培。

    祝你好运  

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

    好的、当我 从 RAM 切换到闪存并在调试模式下运行实验2时、并且在我将 motorVars.flagEnableSys 设置为1之后、我在控制台上显示以下消息:

    C28xx_CPU1:JTAG 通信错误:(错误-1044 @ 0x0)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包9.9.9.0.0.00040)

    C28xx_CPU1:在断开连接之前无法从目标中删除调试状态。  程序存储器中仍可能嵌入了断点运算代码。  建议您在连接之前重置仿真器、并在继续调试之前重新加载程序

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

    我还有另外一个问题。 您提到了禁用 user.h 文件中的定义、因此、请查看这些设置。 如果 DRV 连接到站点1、它们是否正常:

     #define BOOSTX_TO_J1_J2    0

    #define BOOSTX_TO_J5_J6    1.

     

    #define BOOSTX_TO_J1_J2        

    //#define BOOSTX_TO_J5_J6        

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

    回想一下、我使用站点2更轻松地查看 DRV 下的 LED、并使电源、电机相位远离 MCU。 将 S6倒置安装、将 GPIO 28/29重新路由至 BP。  不要忘记将 JP2自举从+3V3上拉、这样 DRV 就提供了 Launch Pad 3V3、而不是 USB 降压稳压器。  

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

    若要在站点2上设置 DRV、请执行以下操作:

    - JP2 -关闭

    - S6–打开还是关闭?

    -JP8如何?

     

    您是否更改了其他 JP? 您是否更改了代码中的某个内容以使 DRV 在站点2上正常工作?

     

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

    S6到 BP 还是 UART? 您可以使用 DMM 振铃过多的 MCU 引脚来验证 GPIO 是否在站点2上。 检查为 DRV 用户 LED 分配的 hal.c GPIO、并且 DRV 故障引脚具有设置 PWM() XBAR 的输入定义顶部。 JP8至 J5通过 DRV 为 Lauch pad 提供+3V3、而+5V J7 (on)可以 具有 NexFET 冷却风扇。 对于大多数10mm +5V 风扇、必须通过 USB JP3 (on)+5V、JP9 (off)降压稳压器为风扇供电。   

    BTW LaunchPad 演示是否在 PC 屏幕上打印了 TI 标识? 默认 S6应已设置为 UART SCIA 进行演示、当使用站点2进行 DRV 时、可以为 XDS110 VCOM 切换备用 GPIO。 查看 PDF Launch Pad 用户指南、表3和表4以了解正确的开关设置、并验证 hal.c 是否具有正确的站点 ADC 输入。  TI 应该已经修复了任何 ADC 输入引脚问题(SDK4.0)、但是检查以确保 DRV 被放置在任何 BP 站点上。

    /cfs-file/__key/communityserver-discussions-components-files/171/TI_2D00_DRV8320-BoostXL-F280049C-QuickStart.pdf 

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

    请勿在示例实验中更改任何内容、并按照实验用户指南运行相关示例实验。

    1.在 LAUNCHXL-F28004x 的站点1 (J1/J3和 J4/J2)上安装 BOOSTXL-DRV8320RS。

    将直流电源添加到  BOOSTXL-DRV8320RS 、作为运行本实验的实验室用户指南。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4387934 #4387934"]请勿在示例实验中更改任何内容,

    用户必须通过 user.h 为 DRV 选择所需的 Booster Site 1或2、或 hal.c 默认为 Site1。  该海报并未改变示例实验中的任何内容仅检查项目属性实验2使用了实验指南建议的闪存。

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

    PWM 从一开始就工作、但转速为零。
    当我想转动车桥时、我可以感觉到电机振动。
    这意味着驱动器正在工作、但它们无法执行任何操作。

    当我将 motorVars.flagEnableSys 设置为1时,表达式监视窗口中没有任何 PWM 比较寄存器(CMPA)值。 相反,在((EPwm1Regs.CMPA).bit、(EPwm2Regs.CMPA).CMPA).bit 和(EPwm3Regs.CMPA).bit 和(EPwm3Regs.CMPA)中找不到„bitfield‘bit'。位错误和最终偏移值在 motorVars.offsetVs.offset1和 offsetV 后不会更新 motorVars.I 偏移值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4386812 #4386812"]C28xx_CPU1:JTAG 通信错误:(错误-1044 @ 0x0)调试探针报告了错误。 确认调试探针配置和连接、重置调试探针、然后重试此操作。 (仿真包9.9.0.0.00040)[/quot]

    我忘记了检查项目仿真器 XML 文件文件夹、确保在 XDS110高级选项卡中为2线模式设置调试仿真。 从 RAM 更改为闪存时、CCS 可能已在项目根目录中放置了另一个 XDS110 XML。

    因此、不建议将 XDSxxx XML 文件放入项目文件夹。 您可以在将工程切换到闪存后删除 RAM 文件夹、也可以通过工程属性和工程根目录中的任何其他 XML 文件来排除。 好的做法是在从 RAM 切换到闪存后清理项目并重新编译。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4387995 #4387995"]当我将 motorVars.flagEnableSys 设置为1[/quot]

    上面发布的图片中显示的同一问题非常奇怪、但注意到您选择了 eabi.lib 实验版本。 我无法通过 eabi.lib 获取早期版本的实验以进行编译、并将其保留为传统 COff.lib。 想知道 eabi.lib Lab2在编译期间是否向 CCS12发出任何警告?  也许可以导入 LAB2 (COff.lib)版本 CCS12、并查看 CMPA 位是否存在未显示任何数据的相同问题。

    [引用 userid="286831" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4387995 #4387995]'当我想转动车桥时、我可以感觉到电机振动。
    这意味着驱动程序正在工作、但它们无法执行任何操作。

    LAB2偏移校准电机可能会振动、但仅在短时间内、轴(轴向)不应旋转。 Instaspin 支持指南建议您可以在以下情况下降低 user.h 中的 R/L 300Hz 频率:如果电机在 LAB5电机 ID 中高声嗡嗡声或变热。   文献编号:SPRUHJ1I 2013年1月–2021年10月修订

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

    在"is02_offset_gain_cal_eabi"实验中、您无需将电机连接到  BOOSTXL-DRV8320RS、只需添加一个+24V 等直流电源即可。

    您应该监控  站点1的 EPWM6、EPWM5和 EPWM3。 将以下变量添加到表达式监视窗口中。

    EPwm6Regs.TBPRD

    EPwm6Regs.CMPA.CMPA

    EPwm5Regs.CMPA.CMPA

    EPwm3Regs.CMPA.CMPA

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

    罗  @Gi 您好。   和我一起从事这个项目。
    我开始进行"is02_offset_gain_cal_eabi"实验、并将 BOOSTXL-DRV8320RS 放在站点1上。 我不会更改代码中的任何内容、也不会进行任何硬件修改。 然后、我输入:

    [引用 userid="35051" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4389509 #4389509"]

    EPwm6Regs.TBPRD

    EPwm6Regs.CMPA.CMPA

    EPwm5Regs.CMPA.CMPA

    EPwm3Regs.CMPA.CMPA

    [/报价]

    进入表达式观察窗口并从闪存运行调试、结果如下:

    如您所见、我在 PWN 寄存器中有一些值、但在我将 flagEnableOffsetCalibration 从1切换为0后、不会计算 motorVars.offset_I_A 和 motorVars.offset_V_V 变量。

    该实验文档说:

    完成后,将“flagEnableOffsetCalibration”值从1更改为0以完成偏移
    校准。 最终偏移值将在 motorVars.offset_I_A 和中更新
    motorVars.offset_V_V、如图25所示

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

    刚刚重新测试了该实验、似乎它运行良好。

    1.在 LAUNCHXL-F280049C 的站点1上安装 BOOSTXL-DRV8320RS。  向  BOOSTXL-DRV8320RS 添加24V 直流电源。

    构建并加载"is02_offset_gain_cal_eabi"项目。

    3.运行实验, 并将"motorVars.flagEnableSys"设置为"1"。

    4.按如下方式监控 ADC 结果

    5.将"flagEnableOffsetCalibration"从"1"更改为"0", 当 offsetCalcCount 等于"0"时,偏移校准值将如下所示

    将 "motorVars.flagEnableSys"设置为"1"后、请检查"motorVars.faultNow.All"是否等于"0"。 如果不是、您使用的套件上存在问题。

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

    当我将 flagEnableOffsetCalibration"从"1"设置为"0"时、offsetCalcCount 变量不等于"0"、但值不同。 每次运行该项目时、"offsetCalcCount"变量在我将 flagEnableOffsetCalibration"从"1"设置为"0"后具有随机值。

    至于"motorVars.faultNow.All"变量... 当我将"motorVars.flagEnableSys"更改为"1"时、"motorVars.faultNow.all"变量的值为"0"、但经过一段时间(几秒钟)后、该值变为"16"。

    更新:

    我切换到另一个 LAUNCHXL-F280049C、变量"motorVars.faultNow.all"具有"0"、但 offsetCalcCount 变量具有 "23819"值、较新的变量等于"0"。

    我有 Code Composer Studio 版本:12.1.0.00007和 C2000Ware_MotorControl_SDK_4_01_00_00。 在 Windows 11 Pro 上工作。

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

    当 您将 flagEnableOffsetCalibration"从"1"设置为"0"时、"offsetCalcCount" 等于" offsetCalcWaitTime"(50000)并倒数到"0"、然后  motorVars.offset_I_A.value[n]和 motorVars.offset_V_V.value[n]将更新。

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

    您好、Wojciech、

    [引用 userid="542186" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4393355 #4393355"]"0"但经过一段时间(几秒钟)、该值变为"16"。

    失调电压计算函数内的一个总线电压导致 CCMP 每次触发故障。 您可以将自动清除故障标志16添加到0、对我来说似乎可以。 想要了解您正在编译的 SDK 库版本、旧版 COff.lib 或 eabi.lib?  

        void runOffsetsCalculation(void)
    {
        uint16_t cnt;
        float32_t Vin;
        float32_t invVdcbus;
        volatile static uint32_t Count;
          	//
            // set to the half of inverse dc bus voltage
            // 0.04761904761904761904761904761905
            invVdcbus = 1.0f / adcData.dcBus_V;//1.0f
      
            // enable the PWM
            HAL_enablePWM(halHandle)
          	
          	/* Clear DACH/L latches and any
          	 * Trip Zone CBC/OSHT fault flags */
            /* Has fault bits need clearing */
            if(motorVars.faultNow.all != 0)
      		{
               	/* Clear DACH/L lathes
              	 * and Trip Zone OSHT faults */
              	HAL_clearPWMfaults(halHandle);
              	/* clear fault status bits */
              	motorVars.faultNow.all = 0;
              	SCIprintf(">> OffsetFaults \n");
              	/* Clear DACH/L lathes
              	 * and Trip Zone OSHT faults */
              	HAL_clearPWMfaults(halHandle);
              	//
              	SCIprintf(">>ClearAllFaults \n");
    			// enable the PWM
    			HAL_enablePWM(halHandle);
      		}
      		
    //hal.h:
    
    //! \brief	Clears Tripzone & CMPSSx latched devices
    //! \details    Clears A/B fault flags of the EPWM peripheral which will allow
    //!             the power switches to be controlled. Clears TzFlags and
    //!				CMPSS High/Low digital filter output latch/s
    //! \param[in]  handle  The hardware abstraction layer (HAL) handle
    static inline void HAL_clearPWMfaults(HAL_Handle handle)
    {
    	 HAL_Obj *obj = (HAL_Obj *)handle;
    
        // SW clear high comparator digital filter output latch
        CMPSS_clearFilterLatchHigh(obj->cmpssHandle[0]);
        CMPSS_clearFilterLatchHigh(obj->cmpssHandle[1]);
        CMPSS_clearFilterLatchHigh(obj->cmpssHandle[2]);
        // SW clear low comparator digital filter output latch
        CMPSS_clearFilterLatchLow(obj->cmpssHandle[0]);
        CMPSS_clearFilterLatchLow(obj->cmpssHandle[1]);
        CMPSS_clearFilterLatchLow(obj->cmpssHandle[2]);
    
       // Force clear CBC/OST asserted flags.
    	EPWM_clearTripZoneFlag(obj->pwmHandle[0], HAL_TZ_FLAGS_ALL);
    	EPWM_clearTripZoneFlag(obj->pwmHandle[1], HAL_TZ_FLAGS_ALL); 
    	EPWM_clearTripZoneFlag(obj->pwmHandle[2], HAL_TZ_FLAGS_ALL); 
    
    	return;
    }// end of HAL_clearPWMfaults() function
      		
     

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

     这是我之前将 "motorVars.flagEnableSys"设置为"1"

    接下来、当我将"motorVars.flagEnableSys"启用为"1"时、我具有以下内容:

    您可以看到"offsetCalcCount"有一些值、但该值正在变化-增大和减小(例如"12828"、"34701"、"19104")、当我将"flagEnableOffsetCalibration"从"1"更改为"0"时、offsetCalcCount 值会停止、如下所示:

    因此"offsetCalcCount"较新、等于"offsetCalcWaitTime"、较新的计数递减到"0"。

    还有一件事... 我在"Expressions"视图窗口中也有此错误:

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

    你(们)好,GI 我的 runOffsetsCalculation 函数与您的函数不同、请查看:

    void runOffsetsCalculation(void)
    {
        float32_t invVdcbus;
        uint16_t cnt;
    
        if(motorVars.flagEnableSys == true)
        {
            //
            // enable the PWM
            //
            HAL_enablePWM(halHandle);
    
            //
            // set the 3-phase output PWMs to 50% duty cycle
            //
            pwmData.Vabc_pu.value[0] = 0.0;
            pwmData.Vabc_pu.value[1] = 0.0;
            pwmData.Vabc_pu.value[2] = 0.0;
    
            //
            // set to the inverse dc bus voltage
            //
            invVdcbus = 1.0f / adcData.dcBus_V;
    
            for(cnt = 0; cnt < USER_NUM_CURRENT_SENSORS; cnt++)
            {
                //
                // reset current offsets used
                //
                motorVars.offsets_I_A.value[cnt] = 0.0;
    
                //
                // run current offset estimation
                //
                FILTER_FO_run(filterHandle_I[cnt],
                              adcData.I_A.value[cnt]);
            }
    
            for(cnt = 0; cnt < USER_NUM_VOLTAGE_SENSORS; cnt++)
            {
                //
                // reset voltage offsets used
                //
                motorVars.offsets_V_V.value[cnt] = 0.0;
    
                //
                // run voltage offset estimation
                //
                FILTER_FO_run(filterHandle_V[cnt],
                              adcData.V_V.value[cnt] * invVdcbus);
            }
    
            offsetCalcCount++;
    
            if(offsetCalcCount >= offsetCalcWaitTime)
            {
                for(cnt = 0; cnt < USER_NUM_CURRENT_SENSORS; cnt++)
                {
                    //
                    // get calculated current offsets from filter
                    //
                    motorVars.offsets_I_A.value[cnt] =
                            FILTER_FO_get_y1(filterHandle_I[cnt]);
    
                    //
                    // clear current filters
                    //
                    FILTER_FO_setInitialConditions(filterHandle_I[cnt],
                                                  motorVars.offsets_I_A.value[cnt],
                                                  motorVars.offsets_I_A.value[cnt]);
                }
    
                for(cnt = 0; cnt < USER_NUM_VOLTAGE_SENSORS; cnt++)
                {
                    //
                    // get calculated voltage offsets from filter
                    //
                    motorVars.offsets_V_V.value[cnt] =
                            FILTER_FO_get_y1(filterHandle_V[cnt]);
    
                    //
                    // clear voltage filters
                    //
                    FILTER_FO_setInitialConditions(filterHandle_V[cnt],
                                                  motorVars.offsets_V_V.value[cnt],
                                                  motorVars.offsets_V_V.value[cnt]);
                }
    
                offsetCalcCount = 0;
                motorVars.flagEnableOffsetCalc = false;
    
                //
                // disable the PWM
                //
                HAL_disablePWM(halHandle);
            }
        }
    
        return;
    } // end of runOffsetsCalculation() function

    我使用 eabi.lib、C2000Ware_MotorControl_SDK_4_01_00_00。

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

    我切换到 C2000Ware_MotorControl_SDK_3_00_01_00、结果相同、这里是表达式值窗口:

    "motorVars.faultNow.All"值为"16"。

    Gi、您使用的是哪个版本的 MoorControlSDK?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="542186" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4395277 #4395277"]我的 runOffsetsCalculation 函数与您的函数不同

     没有太大的区别、但如果单步执行代码、则 PWM 使能50%占空比会导致故障。 当我减小(invVdcbus = 1.0f / adcData.DCBus_V)比例因子时、CCMP (CBC)停止被故障触发。 OFFSET 函数可重入、ISR 周期计数必须达到50K ISR 周期、PWM 在等待期间驱动。 PWM 占空比会导致电压尖峰、需要软启动占空比例程。  

    [引用 userid="542186" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4395309 #4395309"]我切换到了 C2000Ware_MotorControl_SDK_3_00_01_00[/quot]

    也许可以尝试导入旧版 COff.lib 版本、看看它是否提供相同的结果。

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

     采用全新的 Windows 10 Pro 机器。

    安装了 CCS 12.0.0.00009和 C200Ware_MotorControl_SDK_4_01_00_00。

    2.将"is02_offset_gain_cal_eabi"导入 CCS。

    3.已通过"Texas Instruments XDS110 USB Debug Probe"检查目标连接。

    4.切换到闪存、清理和重建项目。

    5.我已将"is02_offset_gain_cal.js"上载到表达式视图窗口中。

    6.点击 debug、启用"Silicon Real-Time Mode"并在"Expressions"视图窗口中启用"Continuous Refresh"、然后继续项目。

    7.接下来,我将 flagEnableSys 从0设置为1,将 flagEnableOffsetCalc 从1设置为0。

    但结果与我之前的机器相同。 最终偏移值不会更新、offsetCalcCount 较新、等于 offsetCalcWaitTime、较新的计数递减到"0"、motorVars.faultNow.all 等于16。

    我不进行任何硬件修改、也不更改代码中的任何内容。 在附件中、您可以找到我的代码-无需任何修改。

    我的电路板是连接到站点1的 LAUNCHXL F280049C REVA 和 DRV8320RS。

    在我的 LAUNCHXL F280049C 上、我具有:

    JP1 -关闭、JP2 -关闭、JP3 -关闭。

    2. JP4 -关闭、JP5 -关闭、JP6 -关闭、JP7 -关闭

    3. JP8 -关闭/关闭,JP9 -关闭

    我使用的是"InstaSPIN 项目和实验用户指南"。 适用于 F28004xC 版本1.00.00.00的 InstaSPIN-FOC、2018年3月起"

    e2e.ti.com/.../is02_5F00_offset_5F00_gain_5F00_cal.zip

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

    跳过上面的步骤6、只需点击"调试"并继续、即可加载并运行程序。

    2.不要在本实验中将"motorVars.flagRunIdentAndOnLine"设置为"1",只需将"motorVars.flagEnableSys"设置为"1"。

    3.在 BOOSTXL-DRV8320RS 上向 J6添加直流电源、如+24V。  

    4. 检查 motorVars.VdcBus_V 的值是否等于  您添加到 BOOSTXL-DRV8320RS 的直流电源的电压。

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

    好的、我是按照你的写操作的。 motorVars.VdcBus_V 等于直流电源的电压、那么接下来我应该做/检查什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="542186" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4395695 #4395659"] motorVars.faultNow.all 等于16。[/quot]

     BOOSTXL-DRV8320RS 或其连接似乎有问题。

       当 motorVars.flagEnableSys=1和 EnableCalibration=1时、AdcResultRegs.ADCRESULT1、AdcbResultRegs.ADCRESULT1和 AdccResultRegs.ADCRESULT1的值应等于 AdcbResultRegs.ADCRESULT2值的一半。

    您能否检查相关 GPIO 上是否存在 PWM 输出、 以及 BOOSTXL-DRV8320RS 上的 MOTA/MOTB/MOTC 测试点?

     您可以点击"CPU reset"和  "Restart"来再次运行代码、看看会发生什么情况。

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

    1、是的、相关 GPIO (MOTA/MOTB/MOTC)上的 PWM 输出为0至24V 和40kHz 频率、并且当    标志为1且 AdcResultRegs.ADCRESULT1、AdcbResultRegs.ADCRESULT1和 AdccResultRegs.ADCRESULT1的值等于 AdcResultRegs.AdcableCalibrations.ADCRUS=1和 AdcEnableResetars.AdcEnableReset1的值的一半。

    在 J3接头(GPIO 23、24、25)上、我们有0.65V 电压(没有正弦波、因为电机由 PWM 累积、并且具有0rpm)。

    3.至于电流和电压值,请在屏幕上检查,它们是否正常?

    此外、当我们通过示波器触摸 J3接头(GPIO 23、24、25)时、motorVars.faultNow.all 上的值为"16"。

    我们在没有 LAUNCHXL F280049C 的情况下检查了 BOOSTXL-DRV8320RS 硬件、一切都很好。 BOOSTXL-DRV8320RS 工作正常、功率晶体管正常、三相电压测量正常、三相电流测量正常。

    6.我们不知道为什么 offsetCalcCount 会发生变化,而是像前面提到的那样倒数到0。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="542186" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4400134 #4400134"]3. 至于电流和电压值、请在屏幕上检查、它们是否正常?

    没错。

    [引用 userid="542186" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4400134 #4400134"]6. 我们不知道为什么 offsetCalcCount 会发生变化、而是像您之前提到的那样倒数到0。

    通常,offsetCalcCount 将向上计数到 offsetCalcWaitTime (50000),然后在 将 flagEnableOffsetCalibration 更改为0时重置为“0”。 motorVars.offset_I_A.value[0/1/2] 和  motorVars.offset_V_V.value[0/1/2]将更新为新值。

    请检查 user.h 中的以下设置、确保 USER_PWM_FREQ_kHz/USER_NUM_PWM_TICKS_PER_ISR_TICK 小于20K。

    //! \brief 定义每个 ISR 时钟节拍的 PWM 时钟节拍数
    //! 注意:有效值为1到15
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (1)

    //! \brief 定义脉宽调制(PWM)频率、kHz
    //!
    #define USER_PWM_FREQ_kHz ((float32_t)(15.0))//15KHz PWM 频率

    您可以按照实验室用户指南运行 lab03和 lab04、看看会发生什么情况。

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

    嗨、大家好、

    昨天 调试了单步执行 RunOffsetCalculation (),并注意 到 invVdcbus =值大部分时间为+NaN,甚至具有非常高的步进值。

    在增补2x (浮点)并使计数保持静态后、它仍然非常接近预期值50K 计数、并且 CMPSS 在进入时停止故障 PWM。 最好是静态值,因为 mainISR()正在循环进入调用,静态十进制以0值初始化。 使其变得易失性、以便编译器优化设置不会尝试对其进行优化。 在该值之后添加(f)不会停止+NaN。 奇怪的是、贴图具有 float32_t、但它对 NaN 值没有任何影响。

     volatile static float32_t invVdcbus;

    //
    //设置为反向直流总线电压的一半
    // 0.04761904761904761904761904761904761905
    invVdcbus =(float) 1.0 /(float) adcData.DCBus_V;

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

    需要向逆变器添加正确的直流总线电压、 并在 示例实验室中使用正确的套件时配置 ADC 通道以进行直流总线电压检测。

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

    大家弄错了。

    我有两个:LAUNCHXL-F280049C
    我已经进行了工作和电气检查:BOOSTXL-F8320RS


    我们在一台干净的计算机上下载该软件、并自动安装。
    我们完全按照文档中的内容进行操作。
    我们无法启动 Lab2。
    无法识别电机。
    我尝试一些电机。
    offsetCalcCount 变量会一直变化、不会减至0。
    是否有任何可用的错误信息?
    为什么我在 motorVars.faultNow.all 上有"16"。
    我能否找出程序在 Lab2中到底停止了什么?
    什么超出范围?
    我已经在 F280027、 F280069上使驱动器正常工作、现在我想在 F280049C 上启动项目。
    我们有什么问题?
    如果程序在 LAB2中停止、您如何知道它停止的位置。 有可能吗???????????
    或更高的功耗...?
    它是在高电压电源上吗...?
    它是否位于功耗架上...?
    我们不知道 LAB2的停止位置。

    是否从服务器自动下载了不正确的库...?
    我是否需要配置一些文件...?
    "16"在 motorVars.faultNow.all 上意味着什么。 (笑声) 它说了什么,关于错误的描述...?
    其他人是否与 TI 有相同的推进方案??????????????????

    我们已经工作了数天、但没有任何变化。 我们不会浏览 Lab2。

    我希望德州仪器和友好的人们提供帮助。

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

    您好 Janusz、

    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4404771 #4404771"]我们无法启动 Lab2。
    无法识别电机。

    您是说 LAB5用于电机识别。 LAB2偏移计算可能会导致过流故障。 奇怪的是、在我添加了两个非易失性静态浮点值(发布在代码 snip 上方)之后的某个时间、即使在 Lab7速度控制中、PWM 也会再次开始出现故障。

    我在上面添加的第一个补丁会自动清除 CCMP 故障标志、以便能够进行偏移计算(offsetCalcCount++) 50K。 当从高阻抗状态启用 PWM-A/B 输出时、可能会由于初始电感尖峰而发生故障。 我从未在 DRV8320上测试过无电机的 Lab2、因此在未连接电机的情况下可能不会出现故障。 DRV8320在 ABC 驱动输出上没有电感尖峰缓冲器电路。 因此、电感尖峰会进入由3个 PGA 放大器驱动的 CCMP、并触发初始 PWM 故障。

    16似乎 针对任何 故障显示、可在调试表达式框 motorVars.faultNow.bit[16]中清除。 展开数组并将异常标志显示为1的位置为0。 大多数情况下,对于其它实验>2,如果在以峰值速度驱动电机时发生故障,user.h USER_MOTOR_MAX_CURRENT_A 可能会设置为高电平。 这也可能会导致 LAB5电机 ID 出现问题、具体取决于电机负载和 user.h 设置。 如果发生这种情况、请减小 user.h 中的电机电流设置

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4404771 #4404771"]我们无法启动 Lab2。
    无法识别电机。

    您是指 lab05进行电机识别吗?  

    如上所述、您无需连接电机即可运行 lab02、只需 在 BOOSTXL-F8320RS 上添加正确的直流总线电源、DND 也无需将"motorVars.flagRunIdOnLine"设置为"1" 。

    在 lab02中、三相 PWM 占空比将达到50%要验证偏移校准、 BOOSTXL-DRV8320RS 的电源逆变器上没有电流。

    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4404771 #4404771"]是否有任何错误信息?
    为什么我在 motorVars.faultNow.all 上有"16"。[/quot]

    您可以查看:motorVars.faultNow"的位定义,只需在表达式监视窗口中添加"motorVars.faultNow.bit",扩展该变量即可查看哪个位设置为"1",以了解触发的故障。 如果 motorVars.faultNow.all 等于"16"、则意味着触发"moduleOverCurrent"故障。

    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4404771 #4404771">是否自动从服务器下载了错误的库...?
    我是否需要配置一些文件...?[/quot]

    这话什么意思? 您是否正在使用"C:\ti\c2000\C2000Ware_MotorControl_SDK_version\solutions\boostxl_drv8320rs\f28004x\ccs"中的示例实验室? 或者您对示例实验室进行了任何更改吗?

    如果 您将 LAUNCHXL-F280049C 与 BOOSTXL-DRV8320RS 套件配合使用、则无需更改任何内容。

    如果您要运行 lab05进行电机识别、请勿在电机上添加任何负载以进行识别、 并根据电机规格在 user.h 文件中设置正确的识别变量值、以确保电机 在磁通测量和 LS 识别状态期间平稳旋转。

    #define USER_MOTOR_RES_EST_CURRENT    (1.0)                              // A -电机额定电流的10-30%

    #define USER_MOTOR_IND_EST_CURRENT    (-1.0)                            // A -电机额定电流的10-30%、足以实现旋转

    #define USER_MOTOR_MAX_CURRENT          (5.0)                              // A -电机额定电流的30~150%

    #define USER_MOTOR_FLUX_EST_FREQ_Hz    (20.0)                          // Hz -电机额定频率为10~30%

    [引用 userid="286831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1165995/launchxl-f280049c-launchxl-f280049c/4404771 #4404771"]我们已经工作了数天、但没有任何变化。 我们不会浏览 Lab2。

    您拥有的套件上的偏移校准似乎是正确的。 您可以尝试将低压电机连接到  BOOSTXL-DRV8320RS、并尝试运行 lab04以查看发生了什么。