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.

[参考译文] TMS320F280041C:使 Instaspin 实验适应定制设计

Guru**** 2524550 points
Other Parts Discussed in Thread: LAUNCHXL-F280049C, BOOSTXL-DRV8320RS, C2000WARE, TMS320F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/911930/tms320f280041c-adapting-instaspin-labs-to-a-custom-design

器件型号:TMS320F280041C
主题中讨论的其他器件:LAUNCHXL-F280049CBOOSTXL-DRV8320RSC2000WARETMS320F280049C

您好!

我使用 TMS320F280041CPMS 微型和 DRV8353RS 栅极驱动器进行了定制电机驱动设计。 我需要将为 LaunchXL-F280049C + BoostXL-DRV8320RS 套件编写的实验修改为我的定制硬件。 硬件的主要区别在于、我使用的是栅极驱动器芯片中的电流感应放大器与 EVAL 套件上的 PGA。

我需要调整文件夹 C:\ti\c2000\C2000Ware_MotorControl_SDK_3_00_00\solutions\common\sensorless_foc\source 中的实验1到7、以验证我的硬件是否正常工作并创建我的最终应用。 我修改了 GPIO 配置以及每个引用模拟通道的位置(因为我使用不同的引脚)。 数字 IO、I2C 和 SCI 工作正常。 我使用示例中的代码来验证 I2C 和 SCI。 为了使电机旋转、我还需要进行哪些其他更改?

Alex

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

    在电机控制侧、使用外设包括用于电流/电压检测的 ADC、用于栅极驱动器的 PWM、用于 DRV 接口的 SPI 和 GPIO、以及用于在不需要片上 PGA 时提供过流保护的 CMPSS。 因此、您只需根据逆变器板更改 hal.c、hal.h 和 user.h 即可。

    是的、您可以使用 lab01~ab03首先验证器件配置和硬件板。

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

    您好、Luo、

    我认为我了解我需要对 user.h 文件进行哪些更改。 但是、我正在努力更改 hal.h 和 hal.c 文件。 如果与故障相关、我需要了解更多有关如何配置外设比较器、数字比较、跳闸区域、DAC 的详细信息。 我注释了 PGA、DAC、CMPSS 设置函数以及与它们相关的所有函数、但我保留了函数 HAL_setupFc库(halHandle)不变。 我不知道该函数中的代码。 我无法理解。 LAB2在我的电路板上看起来工作正常。 我已验证与栅极驱动器的 SPI 通信。 我将栅极驱动器寄存器的设置方式与 TI 实验室中有关 DRV8353RS_EVM 的设置方式相同。 此 EVAL 套件与我现在尝试旋转的电机配合使用。 但是、如果我尝试使用 Lab7旋转电机、则在电机开始旋转时会出现过流故障(0.2-1 秒)。 如果您需要原理图页面或任何文件、我们的 TI 销售代表 Viktorija Cecil 可以通过电子邮件将这些文件发送给您。 我还希望您通过电子邮件将任何专有细节发送给 Viktorija、而不是在此处发布。

    Alex

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

    您可以按照所附文件中的步骤根据电路板更改相关功能、更改将标记为红色。

    您应该首先使用 lab02、lab03和 lab04来验证器件配置和硬件板、然后使用 lab05来识别电机参数。 在运行上述实验之后、您可以使用确定的电机参数在电路板上运行 lab07。  

    e2e.ti.com/.../HAL-module-in-MotorControlSDK.pdf

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

    您好、Yanming、

    感谢您的详细回答。 我的电机现在在旋转。 我对我要做的修改有一些疑问。

    1. 实验7中的哪一行代码为比较器设置了电流保护值? 正如我所理解的、DAC 用于设置这些值。 对吧?
    2. 是否应该对某些文件进行任何更改、因为我的 micro 是 F280041C、而不是像实验中那样是 F280049C?
      1. 项目属性中有任何内容?
      2. TMS320F280049C_LaunchPad.ccxmlTM  
      3. 在 src_device 文件夹中的文件中?

    3. 我今天运行了一个标称转速为3400的电机、但它在没有任何负载的情况下不会超过2900 RPM。 我应该采取什么方法来解决这个问题? 我应该检查哪种设置可能是错误的? 此电机不是在美国制造的。 是否有方法验证电机是否符合其规格? 我将电源上的电流限制设置为5A。 转速为2900 RPM 时、电机消耗的电流约为该值的一半。 PS 上的电流限制是否会导致 RPM 限制?

    Alex

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

    您可以在 is07_speed_control.c 中找到以下代码、更改 motorVars.dacValH 和 motorVars.dacValL 以设置电流保护阈值。

    //
    //为片上比较器设置内部 DAC 值以实现电流保护
    //
    {
    uint16_t cmpssCnt;
    
    for (cmpssCnt = 0;cmpssCnt < HAL_NUM_CMPSS_CURRENT;cmpssCnt++)
    {
    HAL_setCMPSDACValueHigh (halHandle、
    cmpsCnt、motorVars.dacValh);
    
    HAL_setCMPSDACValueLow (halHandle、
    cmpsCnt、motorVars.dacVall);
    }
    } 

    2.可以、在 TMS320F280049C_LaunchPad.ccxml 中选择正确的器件、并在链接器文件(.cmd)中相应地配置存储器映射。

    如果您没有机会查看研讨会材料、我认为这将有助于揭秘一些术语和架构。

    https://training.ti.com/c2000-mcu-device-workshops

    http://www.ti.com/tool/CCSTUDIO-C2000#supportandcommunity

    3.请按照实验指南至 lab05以首先识别电机参数、并根据规范在 user.h 文件中设置正确的最大电流(USER_MOTOR_MAX_CURRENT_A)。 电流。

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

    1. 我在  表达式窗口中向 motorVars.dacValH 和 motorVars.dacValL 写入不同的值、但没有发生任何情况。 我想我的电流保护在某个位置设置不正确。 如何解决此问题?
    2. 我会在有时间时查看这些网站。 我必须首先解决问题。
    3. 我在实验5中识别了一个电机。  在 两个实验中、USER_MOTOR_MAX_CURRENT_A = 15A。 但是、在所有情况下、电机在实验5中的转速均为3600 RPM、在实验7中的转速仅为3000 RPM。 我应该怎么做?

    Alex

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

    您好、Yanming、

    今天、除了上一帖子中的问题外、我还发现了一个新问题。 当我增加速度基准加速度时、立即开始、但当我降低速度基准时、电机开始减速之前会有延迟。 这是实验7的工作方式还是错误? 您能告诉我应该在哪里查找问题吗?

    Alex

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

    问题。   user.h 中的 USER_ADC_FULL_SCALE_VOLTGE_V、USER_NOMINAL_DC_BUS_VOLTGE_V 和 USER_MAX_VS_MAG_PU 是什么? 当电机高速运转时、什么是直流总线电压? lab05和 lab07中电流控制器的输出电压限制不同、因此这两个实验中的最大运行速度可能不同。

    如果 将相同的加速值(motorVars.accelerationMax_Hzps)设置为速度轨迹、我认为加速和减速之间没有任何差异或延迟。 您可以检查 traj_spd 和 pi_spd 对象中的值是否与观察窗口中的设置相同。

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

    您好、Yanming、

    USER_ADC_FULL_SCALE_VOLTGE_V =((float32_t)(82.5))、 USER_NOMINAL_DC_BUS_VOLTGE_V = ((float32_t)(48.0))和 USER_MAX_VS_MAG_PU = 0.5。  电机高速运行时的直流总线电压为48VDC。 我使用的是稳压 PS。 现在、我切换到实际的50VDC 电池、但它没有产生任何影响。 我尝试更改下一行中的值、但也没有任何不同。 我的项目基于 Lab7、因此我必须找到一种方法来达到应用所需的 RPM。 您是否可以进行电话会议? 我还有很多其他问题。 我将把我的项目(我需要进行一些清理以方便阅读)复制到云中、并向我们的 TI 代表 Viktorija 发送链接、以便她可以将其转发给您。 然后、我将以相同的方式发送会议邀请。

    Alex

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

    抱歉、我忘记粘贴我上面提到的行:

    //#define USER_MAX_VS_MAG_PU (0.66)
    //#define USER_MAX_VS_MAG_PU (0.57)
    #define USER_MAX_VS_MAG_PU (0.5)


    //! \brief 以允许的单位定义参考与幅度
    //! \将最大 Vs 幅度的值设置为0.5至0.95
    // Alex
    #define USER_VS_REF_MAG_PU ((float32_t)(0.8)* USER_MAX_VS_MAG_PU)
    //#define USER_VS_REF_MAG_PU (((float32_t)(0.95)* USER_MAX_VS_MAG_PU)

    Alex

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

    USER_VS_REF_MAG_PU 用于 lab13中的高速磁场减弱控制。   如果您没有像 lab08那样实施过调制、则应将 USER_MAX_VS_MAG_PU 保持在0.5以下。

    因此、如果 直流总线电压不够、您可以参考实验13来实现磁场减弱控制以实现高速运行。

    如果您有其他问题、请告诉我。