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.

[参考译文] TMS320F28027F:DRV8301.

Guru**** 2540720 points
Other Parts Discussed in Thread: DRV8305, MOTORWARE, DRV8301, TMS320F28027F, C2000WARE, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1386718/tms320f28027f-drv8301

器件型号:TMS320F28027F
主题中讨论的其他器件:MOTORWAREDRV8301、DRV8305、 controlSUITE、C2000WARE

工具与软件:

我已举个例子

C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\boostxldrv8301_revB\f28x\f2802xF\projects\ccs\proj_lab5b

TMS320F28027F 与运行 BLDC 电机的 DRV8301不同

更改了 user.h 文件中的参数:

我已拿起 BLDC 电机。 位于 user.h 中  

我是定义人员

 #define USER_MOTOR My_Motor

#elif (USER_MOTOR == My_Motor)
#define USER_MOTOR_TYPE                      Motor_MOTOR Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS          (2)
#define USER_MOTOR_RR                         (null)
#define USER_MOTOR_Rs                         (0.3918252)
#define USER_MOTOR_LS_d                       (0.00023495)
#define USER_MOTOR_LS_q                      (0.00023495)
#define USER_MOTOR_RATED_FLUX                (0.03955824)
#define USER_MOTOR_MAGNETIZING_CURRENT     (null)
#define USER_MOTOR_RES_EST_CURRENT           (3.0)
#define USER_MOTOR_IND_EST_CURRENT          (-0.5)
#define USER_MOTOR_MAX_CURRENT             (20.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz         (20.0)

以上全部已声明。

我的 BLDC 电机(A2212/13T) 1000KV。  

如有任何更改、上述命令将声明计算值。 请告诉我 BLDC 电机(A2212/13T) 1000KV 的计算结果。  

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

    请查看 MotorWare 中以下文件夹中的指南、并按照指南设置套件并运行实验。 您可能需要先运行 lab02c 以识别电机参数、然后运行以下实验(如 lab05或 lab10)

    C:\ti\motorware\motorware_1_01_00_18\docs\labs\instaspin_labs.pdf

    C:\ti\motorware\motorware_1_01_00_18\docs\boards\kits\docs\readmefirst_instaspin_launchboost.pdf

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

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

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

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

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

    有关 PMSM 电机参数的更多信息、请参阅下面的用户指南。

    InstaSPIN-FOC 和 InstaSPIN-MOTION 用户指南

    https://www.ti.com/lit/spruhj1

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

    嗨、Yanming Luo

    我将替换发送的值、即以下值

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

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

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

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

    之后、您告诉  lab02c 首先在图下方识别电机参数。

    以上是我的图、有什么建议。

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

    我的电机最大电流如下所示

    单元格数:             2 - 3锂聚合物电池
                          6 - 10镍镉电池/镍氢电池


    kV:                     1000 RPM/V
    最大效率:             80%
    最大效率电流:      4-10A (>75%)
    空载电流:            0.5A @10V
    电阻:                0.090欧姆
    最大电流:                13a for 60s.
    最大功率:                  150瓦
    重量:                  52.7 g/1.86 oz
    尺寸:                   28 mm 直径 x 28 mm 钟形长度

    轴直径:            3.2毫米
    极点:                     14.
    型号重量:             300 - 800克/ 10.5 - 28.2盎司

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

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

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

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

    上述值是您发送的、但我的电机电流 为4-10A。 您定义了  #define USER_MOTOR_MAX_CURRENT          (20.0)   

    不是一个问题不是。 任何更改都会导致最大电流值不发生。

    最大电流20.0替代10A 不是。

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

    如下红色标记的值仅供参考、您应根据所用电机的规格设置这些值、并根据测试调整这些值以确保电机在识别过程中平稳运行。

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

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

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

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

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

    嗨、Yanming Luo

    非常感谢您的支持。

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

    您是否在使用自己的电路板? 或 TI EVM 板?

    顺时针和逆时针是可能的。 如果可能、上述代码将发送给它。 Re 将其修改为运行时钟和反时钟。

    这话什么意思? 您的问题是什么?

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

    我所使用的 TI 电路板

    上图发送它。 开发代码且无需使用任何工程实验室示例。

    带有 BLDC 电机的 TI Launchpad TMS320F28027F 和 DRV8301 (A2212/13T)

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

    您的问题是什么? 您在示例实验中进行了哪些修改?

    您是否已查看实验室用户指南并按照指南首先运行 lab02c 进行电机识别?

    请查看 MotorWare 中以下文件夹中的指南、并按照指南设置套件并运行实验。

    C:\ti\motorware\motorware_1_01_00_18\docs\labs\instaspin_labs.pdf

    C:\ti\motorware\motorware_1_01_00_18\docs\boards\kits\docs\readmefirst_instaspin_launchboost.pdf

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

    我正在开发自己的 BLDC 电机应用。 未使用任何实验示例。 上述代码正在开发此功能。  

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

    您是否参考过 motorWare 中的任何 TI 示例实验代码?

    您的问题是什么? 您在示例实验中进行了哪些修改?

    您能详细描述您的问题吗、而不是粘贴所有代码吗?  

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

    ****项目 motor_app 的配置调试构建****

    "D:\\Texas _Instrument\\CCS\\utils\\bin\\gmake"-k -j 12 all -O

    构建文件:"../i2ca.c"
    调用:C2000编译器
    "D:/texas-instrument/ccs/tools/compiler/ti-cgtc2000_22.6.1.st/bin/cl2000"-v28 -ml -mt --include_path="D:/texas-instrument/C2000Ware_5_02_00_00_00/libraries/math/IQmath/c28/include"
    已完成建筑:"../i2ca.c"

    构建文件:"../ringBuffer.c"
    调用:C2000编译器
    "D:/texas-instrument/ccs/tools/compiler/ti-cgtc2000_22.6.1.st/bin/cl2000"-v28 -ml -mt --include_path="D:/texas-instrument/C2000Ware_5_02_00_00_00/libraries/math/IQmath/c28/include"
    已完成建设:"../ringBuffer.c"

    构建文件:"../uart.c"
    调用:C2000编译器
    "D:/texas-instrument/ccs/tools/compiler/ti-cgtc2000_22.6.1.st/bin/cl2000"-v28 -ml -mt --include_path="D:/texas-instrument/C2000Ware_5_02_00_00_00/libraries/math/IQmath/c28/include"
    完成构建:"../uart.c"

    构建文件:"../main.c"
    调用:C2000编译器
    "D:/texas-instrument/ccs/tools/compiler/ti-cgtc2000_22.6.1.st/bin/cl2000"-v28 -ml -mt --include_path="D:/texas-instrument/C2000Ware_5_02_00_00_00/libraries/math/IQmath/c28/include"
    已完成建筑:"../main.c"

    构建文件:"../user.c"
    调用:C2000编译器
    "D:/texas-instrument/ccs/tools/compiler/ti-cgtc2000_22.6.1.st/bin/cl2000"-v28 -ml -mt --include_path="D:/texas-instrument/C2000Ware_5_02_00_00_00/libraries/math/IQmath/c28/include"
    已完成构建:"../user.c"

    构建文件:"../printf.c"
    调用:C2000编译器
    "D:/texas-instrument/ccs/tools/compiler/ti-cgtc2000_22.6.1.st/bin/cl2000"-v28 -ml -mt --include_path="D:/texas-instrument/C2000Ware_5_02_00_00_00/libraries/math/IQmath/c28/include"
    已完成建设:"../printf.c"

    构建目标:"motor_app.out"
    调用:C2000链接器
    "d:/texas-instrument/ccs/tools/compiler/ti-cgt-C2000_22.6.1.stps/bin/cl2000"-v28 -ml -mt -advice:performance=all -g -diag_warning=225 - diag_wrap=off - emit_warnings_as_errors--abi=linkrom-z -m"motor_app.map=-diag_arm"

    致命错误#16000:目标文件具有不兼容的格式("D:/texas-instrument/ccs/tools/compiler/ti-cgt-C2000_22.6.1.sts/lib/rts2800_fpu64_eabi.lib) "= ELF、"./i2ca.obj"= TI-COFF)

    >>编译失败
    Makefile:141:目标"motor_app.out"的配方失败
    gmake[1]:***[MOTOR_APP.OUT]错误1.
    Makefile:137:目标"全部"的配方失败
    gmake:***[All]错误2.

    ****构建完成****

    我正在使用该库 <boot28.asm.obj>端错误问题。 请对此提供建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    致命错误#16000:目标文件格式不兼容("D:/texas-instrument/ccs/tools/compiler/ti-cgt-C2000_22.6.1.sts/lib/rts2800_fpu64_eabi.lib "= ELF、"./i2ca.obj"= TI-COFF)[/QUOT]

    您是否能够尝试根据 C2000Ware 或 C2000电机控制 SDK 中的示例项目来设计项目? 您的工程似乎在 F28027中包含了一个错误的库、该库没有 FPU32和 FPU64。

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

    使用了哪个支持的库?  

    请提供建议、但任何受支持的库未下载。

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

    我正在使用 rts2800_ml_eab.lib 运行时支持库、但发生了错误。 解决方法。

    ****项目 BLDC_APPLICATION 的配置调试构建****

    "D:\\Texas _Instrument\\CCS\\utils\\bin\\gmake"-k -j 12 all -O

    构建目标:"bLDC_application.out"
    调用:C2000链接器
    "d:/texas-instrument/ccs/tools/compiler/ti-cgt-C2000_22.6.1.rts/bin/ccl2000"-v28 -ml -mt -g --"_diag_warning=225 - diag_wrap=off --display_error_number --abi=carerabi -z -m"BLDC_application.map

    致命错误#16000:目标文件具有不兼容的格式("D:/texas-instrument/ccs/tools/compiler/ti-cgt-C2000_22.6.1.sts/lib/rts2800_ml_eabi.lib) "= ELF、"./i2ca.obj"= TI-COFF)

    >>编译失败
    Makefile:140:目标"bLDC_application.out"的配方失败
    Makefile:136:目标"全部"的配方失败
    gmake[1]:***[BLDC_application.out]错误1.
    gmake:***[All]错误2.

    ****构建完成****

    解决方法。

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

    lhttps:/https://github.com/acvilla/BLDC-Motor-Control

    我将 TI 板 LAUNCHXL TMS320F28027F 与 DRV8301配合使用、以运行无传感器的 BLDC 电机(A2212/13T)。

    上述链接可以运行 BLDC 电机、也可以不运行代码中的任何更改。 请查看以上链接、以选择是否在无 BLDC 电机传感器的情况下运行 BLDC 电机。 代码中的任何更改或代码中的修改。 对此提供建议。

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

    如上所述、请尝试使用 motorWare 中的示例实验。 您在示例实验中进行了许多该器件不支持的更改。

    下载并安装 Motorware (其中包含许多示例工程以支持此套件)、并按照实验指南了解这些实验工程。

    MotorWare:http://www.ti.com/tool/motorware

     

    请查看 MotorWare 中以下文件夹中的指南、并按照指南设置套件并运行实验。

    C:\ti\motorware\motorware_1_01_00_18\docs\labs\instaspin_labs.pdf

    C:\ti\motorware\motorware_1_01_00_18\docs\boards\kits\docs\readmefirst_instaspin_launchboost.pdf

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

    lhttps:/https://github.com/acvilla/BLDC-Motor-Control

    我的器件不支持上述示例。 好的、但是如何开发自己的应用以运行电机。 开发是否可行。 请给我这方面的建议。  

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

    如上所述、请查看实验用户指南并使用 motorWare 中的示例实验来运行电机、因为您使用的是 motorWare 中的受支持套件。

    C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\boostxldrv8301_revB\f28x\f2802xF

    运行 lab02c 以识别电机参数、然后根据系统要求运行 lab05a、lab05b 或 lab10a。

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

    使用 lab2c 和 lab5b 集成以顺时针和逆时针运行我的电机。 是否可能。 请给我这个建议。  并设置 UART 命令来运行电机。 例如、我发送命令 R 来运行电机、并发送命令 S 来停止电机。 是否可能。

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

    使用 lab2c 和 lab5b 集成以顺时针和逆时针运行我的电机。 是否可能。 请给我这个建议。  并设置 UART 命令来运行电机。 例如、我发送命令 R 来运行电机、并发送命令 S 来停止电机。 是否可能。

    请给我任何建议。

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

    TI Launch Pad tms320f28027f)以及 drv8301来运行 BLDC 电机。 如果使用此 TI 电路板的不同应用中可能、则不可能。 请给我这个建议。

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

    请参阅上述示例实验。 此电路板和示例可以运行您使用的 BLDC 电机、只需按照指南进行操作即可设置相关参数。 它可能易于使用、并且比您下载的代码更好。 请首先使用示例实验而不进行更改、在您熟悉实验之前、只需更改"user.h"文件中的电机参数。

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

    好的、但已采用 lab2c、创建新项目、开始复制新项目中的 lab2c、但出现错误。 错误是运行时库、不支持目标文件、如下所示。

    ****项目 motor_8301****的配置调试构建

    "D:\\Texas _Instrument\\CCS\\utils\\bin\\gmake"-k -j 12 all -O

    构建目标:"motor_8301.out"
    调用:C2000链接器
    "d:/texas_instrument/ccs/tools/compiler/ti-cgt-C2000_22.6.1.rsts/bin/ccl2000"-v28 -ml -mt -g --diag_warning=225 - diag_wrap=off --display_error_number --abi=CodeStartabi -z -m"motor_8301.map pie

    致命错误#16000:目标文件具有不兼容的格式("D:/texas-instrument/ccs/tools/compiler/ti-cgt-C2000_22.6.1.sts/lib/rts2800_ml_eabi.lib) "= ELF、"./CodeStartBranch.obj"= TI-COFF)

    >>编译失败
    Makefile:161:目标"motor_8301.out"的配方失败
    gmake[1]:***[MOTOR_8301.OUT]错误1.
    Makefile:157:目标"全部"的配方失败
    gmake:***[All]错误2.

    ****构建完成****

    如何解决该问题。

    请给我这个建议。

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

    如何创建新工程? 与示例实验相比、您做了哪些更改?

    是否可以使用示例实验并根据您的项目仅添加新代码?

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

    我将 TI LaunchPad 与 TMS320F28027F 微控制器和 DRV8301闸极驱动器配合使用、以控制 BLDC 电机(A2212/13T)。 我已经安装了 MotorWare 软件版本1.01.00.18、并使用提供的项目实验示例(例如 Lab2c 和 Lab5c)成功测试了电机。

    我的问题是、此设置(TMS320F28027F 和 DRV8301)是否支持用于控制 BLDC 电机的定制应用的开发、还是仅限于提供的示例项目。 具体来说、我对创建我自己的应用程序来运行 BLDC 电机很感兴趣、想知道这是否可行、涉及哪些步骤或注意事项。

    您能否提供有关如何为该设置开发自定义应用程序的指导或建议?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能就如何为此设置开发自定义应用程序提供指导或建议吗?

    有。 它可以迁移到您自己的电路板、并针对客户应用支持您的电机。 您可以查看以下培训和指南。

    由于您使用的是自己的电路板、因此请在运行 lab02a/b/c 之前按照步骤更改示例实验并验证硬件板的电流和电压信号。 确保电流和电压采样效果良好。

     

    1.请参阅下面的指南 motorware_hal_tutorial.pdf、根据您的硬件板更改 hal.c 和 hal.h 中的外设配置、如 PWM 和 ADC。

    C:\ti\motorware\motorware_1_01_00_18\docs\tutorials

     

    2.根据 user.h 中的硬件板设置正确的参数 有关  如何计算和定义这些变量的值、请参阅"InstaSPIN-FOC 电机信号管理和 InstaSPIN-MOTION 用户指南"的第5章。

    #define USER_IQ_FULL_SCALE_VOLTAGE_V          (xx)

    #define USER_VOLTAGE_FILTER_POLE_Hz              (xx)

    #define USER_ADC_FULL_SCALE_VOLTAGE_V      (xx)

    #define USER_IQ_FULL_SCALE_CURRENT_A          (xx)

    #define USER_ADC_FULL_SCALE_CURRENT_A      (xx)

     

    3.确保 hal.h 中 HAL_readAdcData ()中电流系数的符号与电流检测电路匹配。 请参阅 InstaSPIN 用户指南(SPRUHJ1、 https://www.ti.com/lit/spruhj1)中的第5.2.2章"电流反馈极性"、以设置电流换算系数的符号。

     

    静态内联空 HAL_readAdcData (HAL_Handle handle、HAL_AdcData_t * pAdcData)

      _IQ Current_sf =(+/-) HAL_getCurrentScaleFactor (handle);

    }

     

    4.按照 instaSPIN 实验室指南操作、使用 lab01b 和 lab01c、验证您自己的硬件 (因为您没有使用 TI EVM 套件、因此请运行后续实验)。

     

     

    5.使用 lab02b 或 lab02c 调优下面的识别变量参数来识别电机参数、如果电流和电压感测信号经过验证且良好、则使用识别的参数来运行电机。

    #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    (40.0)                           // Hz -电机10~30%的额定频率

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

    您未添加 IQmath、FAST 库等相关库、并未设置正确的目录来搜索相关头文件。 看上去很难用几句话告诉您有关如何创建新工程和迁移算法的所有说明和步骤。  您可能必须查看该指南并参加上述培训。  

    或者、您可以使用示例实验、如果不想花费大量时间来学习上述内容、则只需根据您的应用程序添加/更改代码。

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

    嗨、Yanming Luo

    Lab2c 和5b 已经过测试、电机沿顺时针方向运行。 我现在正在着手修改电机、使其也以逆时针方向运行。 这是可行的吗?

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

    有。 只需为另一个旋转方向将目标速度设置为负值即可。

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

    有。 只需针对另一个旋转方向将目标速度设置为负值即可。

    给我解释一下

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

    软件将根据基准速度更改输出电压序列和方向。 您无需更改任何其他内容、只需设置如上所述的正向或反向旋转的正或负向基准速度。  

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

    "是否有任何可能的 UART 命令来控制电机、例如使用'rx_on'开启电机、使用'rx_off'关闭电机?"

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

    我已经编译好了、但当我将它上传到 GUI 时、出现了一个错误。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="600288" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1386718/tms320f28027f-drv8301/5352330 #5352330"]"是否有任何可能的 UART 命令来控制电机、例如用于打开电机的"rx_on"命令和用于关闭电机的"rx_off"命令?"

    否 您必须自己添加此内容。

    请查看 motorWare 中的指南、如下所示:

    \ti\motorware\motorware_1_01_00_18\docs\guis\universal

    此外、您还可以搜索并参考有关 E2E 上 GUI 连接的相关主题、如下所示。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/635255/ccs-launchxl-f28027f-boostxl-drv8301-universal-gui

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

    我正在开始开发用于控制电机的 UART 命令、例如"rx_on"用来打开电机、而"rx_off"来关闭电机。 我要将 Lab2C 平台用于该项目。

    我已经创建了一个新的源文件uart.c()和一个头文件uart.h()。

    在源文件中、我编写了如下代码:

    //#include "F28x_Project.h"//器件头文件和示例包含文件
    #include "uart.c"
    #include "uart.h"//包含头文件

    //#define UART_BAUD_RATE 115200
    #define SCI_baudrate_115_2_kBaud = 15 //!<表示115.2kBaud
    //#define SCI_BAUD_RATE_DIVENCH 194

    #define RX_ON_COMMAND "RX_ON"
    #define RX_OFF_COMMAND "RX_OFF"

    //存储 UART 接收到的数据的全局变量
    // volatile char uartRxBuffer[100];
    Volatile char SCIRXBUF[100];
    volatile uint16_t rxIndex = 0;

    void InitUART (void)

    //配置 UART 进行通信
    InitSciaGpio();
    SciaRegs.SCICCR.all = 0x0007;// 1个停止位、无奇偶校验、8个字符位
    SciaRegs.SCICTL1.all = 0x0003;//启用 TX、RX 并启用 SCI
    SciaRegs.SCICTL2.all = 0x0003;//启用 TX、RX 中断
    SciaRegs.SCIHBAUD.all =(uint16_t)((UINT32)(SYSCTL_getPeripheralClock (SCI_A)/(UART_BAUD_RATE * 8))- 1);
    SciaRegs.SCILBAUD.all =(uint16_t)((UINT32)(SYSCTL_getPeripheralClock (SCI_A)/(UART_BAUD_RATE * 8))- 1);
    }

    void InitSciaGpio (void)

    //初始化 SCI-A 的 GPIO
    EALLOW;
    GpioCtrlRegs.GPAMUX1.bit.GPIO29 = 1;//为 SCIA TX 配置 GPIO29
    GpioCtrlRegs.GPAMUX1.bit.GPIO928 = 1;//为 SCIA RX 配置 GPIO28
    EDIS;
    }

    void InitPWM (void)

    //初始化用于电机控制的 PWM
    EALLOW;
    Eqpwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;//递增计数模式
    Eqpwm1Regs.TBPRD = 1000;// Set PWM period (设置 PWM 周期)
    Eqpwm1Regs.CMPA.half.CMPA = 0;//将占空比初始化为0
    Eqpwm1Regs.TBCTL.bit.PHSEN = tb_disable;// Disable phase loading (禁用相位加载)
    Eqpwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;//无除法
    Eqpwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;//无除法
    Eqpwm1Regs.AQCTLA.bit.CAU = AQ_SET;// Set on Compare A up (在比较 A 递增时设置)
    Eqpwm1Regs.AQCTLA.bit.CAD = AQ_Clear;//在比较 A 递减时清除
    Eqpwm1Regs.CTL.bit.PHSDIR = PWM_UP_DOWN;//向上/向下计数模式
    EDIS;

    //为 PWM 配置 GPIO
    EALLOW;
    GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;// GPIO0 for PWM output
    EDIS;
    }

    void sciaRxISR (void)

    // SCI RX 中断服务例程
    char receivedChar = SciaRegs.SCIRXBUF.all;//读取接收到的字符

    //将接收到的字符存储在缓冲区中
    if (rxIndex < sizeof (uartRxBuffer)- 1)

    uartRxBuffer[rxIndex++]= receivedChar;
    }
    if (receivedChar =='\n"|| rxIndex >= sizeof (uartRxBuffer)- 1)

    uartRxBuffer[rxIndex]='\0';//空-终止该字符串
    rxIndex = 0;//重置下一条命令的索引
    //调用函数以处理接收到的命令
    HandleUARTCommand ();
    }

    SciaRegs.SCIFFCLR.bit.RXFFOVFCLR = 1;// Clear overflow flag (清除溢出标志)
    PieCtrlRegs.PIEACK.all = PIEACK_group9;//确认中断
    }

    void HandleUARTCommand (void)

    if (strcmp (uartRxBuffer、RX_ON_COMMAND)=0)

    TurnMotorOn();
    }
    否则、如果(strcmp (uartRxBuffer、RX_OFF_COMMAND)=0)

    TurnMotorOff ();
    }
    设计

    //处理未知命令
    }
    }

    空 TurnMotorOn (空)

    // Code (代码)以打开电机
    Eqpwm1Regs.CMPA.half.CMPA = 500;//示例占空比(50%)
    }

    空 TurnMotorOff (空)

    //代码以关闭电机
    Eqpwm1Regs.CMPA.half.CMPA = 0;//将占空比设置为0%
    }

    在头文件中、我编写了如下代码:

    /*
    * uart.h
    *
    *创建时间: 2024年8月10日
    *作者:戴尔
    */

    #ifndef UART_H_
    #define UART_H_


    #include

    //函数原型
    void InitUART (void);
    void InitSciaGpio (void);
    void InitPWM (void);
    void HandleUARTCommand (void);
    空 TurnMotorOn (空);
    空 TurnMotorOff (空);
    void sciaRxISR (void);

    //全局变量
    外部易失性字符 uartRxBuffer[100];
    extern 易失性 uint16_t rxIndex;

    #endif /* UART_H_*/

    但会发生错误。 上述开发代码适用于控制电机。 以及代码中添加的任何内容。

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

    "请检查我在上面提出的问题中是否有任何错误。"

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

    您可以查看以下指南(motorware_hal_tutorial.pdf)以添加所需的函数。 您可以在当前的 motorWare 中以相同的格式添加函数。

    C:\ti\motorware\motorware_1_01_00_18\docs\tutorials

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

    感谢您的支持。 但是、我正在使用中的函数motorware_hal_tutorial.pdf、但我遇到了一些错误。 您能否提供用于控制电机的 UART 命令的示例代码、例如用于打开电机的"Rx_ON"和用于关闭电机的"Rx_OFF"? 我正在使用 Lab2C 平台完成该项目。

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

    抱歉。 motorWare 中没有此类示例。 您可以按照本指南的说明、参考 C2000Ware 或 controlSUITE 中的 SCI 示例。

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

    请仅粘贴您所做的更改以及出现的错误或问题。 另外、请清楚地描述示例实验中的更改、以帮助我们理解您的问题。 不要如上所述粘贴所有代码和编译消息。 谢谢!

    请查看前面提到的 HAL 指南、然后按照该指南为 SCI 添加代码。  

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

    请在运行和调试代码后发布问题。 抱歉、我们无法帮助您检查和调试您自己的代码。

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

    请给我回复以上发送文件,hal.c 和 hal.h

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

    在运行添加的代码时遇到了哪些问题? 可以尝试运行和调试代码吗? 然后、如果执行结果不正确、则告知调试结果。 正如您的回复所述、我们无法帮助您检查您直接在 E2E 上添加的代码。