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.

[参考译文] CCS/MSP430G2533:使用 DRV8313EVM 独立进行有传感器 BLDC 电机编程的编码

Guru**** 1831610 points
Other Parts Discussed in Thread: DRV8313EVM, DRV8313, MSP430G2553, MSP430F5529, DRV8323, MSP-EXP430F5529LP
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/772680/ccs-msp430g2533-coding-to-program-a-sensored-bldc-motor-using-drv8313evm-stand-alone

器件型号:MSP430G2533
主题中讨论的其他器件:DRV8313EVMDRV8313MSP-EXP430G2MSP430G2553MSP430F5529DRV8323DRV832XMSP-EXP430F5529LP

工具/软件:Code Composer Studio

您好!

我目前正在研究一个使用 DRV8313EVM 模块在有传感器 BLDC 电机上运行简单程序的应用。 我想使用一组特定的算法在独立模式下运行电机。

这些算法将在 CW 下以40%的占空比持续1分钟、在 CW 下以100%的占空比持续3分钟、 在 CCW 下以80%的占空比持续2分钟、然后重复。  

1) 1)对于 BLDC 电机编程、通常需要输入6个输入(INHA、INLA、INHB、INLB、INHC、 INLc)、但是 对于 DRV8313EVM (MPS430G2553芯片)、只有 EN1、EN2、EN3、IN1、IN2和 IN3的点? 据我所知、通常需要为每个通道编程高电平和低电平、但在这种情况下、EN 对应一个、而 IN 对应一个。

那么、如何使用 DRV8313EVM 针对 CW 和 CCW 编程该序列以及使用计时器对时间进行编程。

我对 CCS 中的编程非常陌生。 感谢您的任何建议/帮助

谢谢、

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Thenagharan、
    虽然我不是 BLDC 和驱动器件方面的专家、但在图25中查看 EVM 用户指南时可以看到、该 DRV8313是一个更智能的器件、而只是一个纯 H 桥驱动器。 如器件的方框图所示、三个不同相位的每个 H 桥级只有一个输入信号。 许多现代智能 TI 电机驱动器就是这种情况。 它们附带集成逻辑、基于 PWM 信号生成所有必要的换向和高/低侧信号。 此器件也是如此。 这就是为什么您只看到使能和 PWM 输入信号的原因。

    对于所需的信号、我建议查阅 DRV8313EVM 的用户指南 www.ti.com/.../slvu815a.pdf。介绍了步骤、如何加载映像或将 EVM 随附的 CCS 工程导入 CCS。

    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Thenagharan、
    请告诉我们、您是否需要有关此方面的进一步支持。 非常感谢。

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

    感谢您的反馈。
    我理解只为 EN1、EN2、EN3、IN1、IN2和 IN3提供信号

    对于 BLDC 电机、我熟悉根据电机数据表为每个相位提供高电平和低电平信号(即总共6个引脚)。

    我按照用户指南中的示例操作、使用 GUI 运行电机、但我需要在没有 GUI 的情况下运行电机(提供电压、电机将根据算法运行)。 我尝试生成配置并检查代码、但这些代码是我获得的代码(见下面)。
    void proc_uart_Data 中没有任何代码。

    我的问题是:

    1) 1)它应该是这样吗? (为了将 CCS 作为独立器件进行编程、我需要 MSP-EXP430G2 (目前正在等待)
    2) 2)如何为下面的算法只为一个信号输入编写代码?
    这些算法将在 CW 下以40%的占空比持续1分钟、在 CW 下以100%的占空比持续3分钟、在 CCW 下以80%的占空比持续2分钟、然后重复。

    感谢你的帮助。 )


    /*
    #ifndef CONFIG_C_
    #define CONFIG_C_
    #include "msp430g2553.h"

    extern unsigned int integration_constant;
    extern unsigned char start_up_Duty;//%
    extern unsigned char start_up_MAX_Duty;//%
    extern unsigned char increed_Duty;//%
    extern unsigned char increed_time;//ms
    extern unsigned intwait_time;//ms
    extern unsigned char speed_Duty_MAX;//%
    extern unsigned char speed_Duty_min;//%%
    extern unsigned char speed_ram_cycles;
    extern unsigned char Speed_Control、State、Hysterite_Control、Rotation;

    空 Init_System_Variables (空)

    integration_constant = 20;
    START_UP_DUTY = 1;//%
    START_UP_MAX_DUTY= 15;//%
    Incremental Duty = 1;//%
    Incremental Time = 4;//ms
    WAIT_TIME = 200;//ms
    SPED_DUACT_MAX = 97;//%
    SPED_DUTY 最小值= 10;//%
    SPED_RAMP_CYCLES = 2;
    Hysterite_Control = 2;
    状态= 1;
    SPED_Control = 0;
    旋转= 0;


    void proc_uart_Data (void){}

    #endif

    *

    谢谢、
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Thenagharan、
    我了解了软件包、您是对的。 代码的电机控制部分在项目中包含的库文件中"隐藏"。 如您所示、带有可见代码的源文件仅包含对来自 GUI 的 UART 数据的处理、并基于接收到的数据、然后调用库中的相应函数。
    我已经联系了负责这些工具的同事、检查我们是否能够提供一些源代码、您可以将这些源代码用作起点。 我会在收到他们的反馈后尽快回复您。

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

    尊敬的 Peter:

    感谢您的信息和帮助。

    期待您的回复。 )

    谢谢、

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Thenagharan、
    为了给您一个简短的更新、代码的主要问题是 IP 保护。 在代码中隐藏在库中的大部分 IP 不是 TI 的财产。
    尽管如此、我还是与负责的同事交谈、他们正在努力将一些东西整合在一起、您可以将这些东西作为起点。 我应该在接下来的几天收到它。 我一收到它就会回来。

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

    尊敬的 Peter:

    感谢您的更新。 )

    另一个快速问题;

    我在下面看到了这个示例代码、只是对代码很好奇。

    在下面的代码中、其写入的 P2OUT &=~(BIT5);

    -->这意味着它清除/复位 P2.5的位,但在注释中它显示复位 P2.4、P2.5位。

    因此、代码应该是 P2OUT &=~(BIT4 | BIT4)吗?

    因为下面还有另一个代码-->P1OUT &=~(BIT4 | BIT4);这表示它清除/复位 P1.4和1.5

    /* U 相(高电平)的复位开关*/

    P2OUT &=~(BIT5);/*复位位位位位 P2.4、P2.5 */  

    P2SEL &=~(BIT5);//选择 P2.4、P2.5作为 U 相的 I/O 功能*/

    /* V 相(低-高)的复位开关*/

    P1OUT &=~(BIT4 | BIT4);//重置位 P1.4、P1.5 */

    P1SEL &=~(BIT4 | BIT4);//选择 P1.4、P1.5作为 V*/相位的 I/O 功能

    谢谢、

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Thenagharan、
    注释与实际代码指令之间肯定不匹配。 我假设代码正确、但注释不正确。 但它当然可以是另一种方法。
    遗憾的是、当用户在调试期间更改代码时、他们在更新注释方面并不总是足够严格。
    请将此代码的链接发送给我吗? 我们需要纠正它。 非常感谢。

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

    尊敬的 Peter:

    哈哈。 好的。 了解。

    不用担心。

    以下是我下载软件文件的链接-> http://www.ti.com/tool/BOOSTXL-DRV8323RS

    它来自 global.c 文件中文件夹"DRV8323_MSP430F5529_Trapezoide_Sensored_BLDC"-->提供的示例代码

    我从 zip 文件 DRV832x 软件(MSP-EXP430F5529LP)中下载了它->在安装了该 zip 文件中的"DRV832x_EVM_FW_1.0.0_windows-installer"后、我解压了该文件夹。

    谢谢、

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Thenagharan、
    非常感谢您提供的更多信息。 我们将此作为勘误表记录、以解决其校正问题。

    很抱歉、PWM 代码出现延迟。 同事似乎需要更多的时间来完成这项工作。

    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Thenagharan、
    很抱歉耽误你的回答。 遗憾的是、情况会更复杂一点、如前所述、由于外部 IP、BLDC 代码是绝密代码。
    我们还需要改变这条线程在我们一侧的责任、就像 TIDA 在使用 MSP430一样、问题与 TIDA 设计本身有关、而不是与 MSP430有关。 因此、负责 TIDA 的另一个团队必须接管。 我们正在联系该团队、并将尽快回复您。

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

    尊敬的 Peter:

    不用担心。 感谢您的更新、请告诉我这方面是否有任何进展。 感谢您的支持。

    谢谢、

    谢谢

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

    需要无刷电机驱动团队提供哪些帮助?

    此致、

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

    您好!

    对于 DRV8313EVM、我按照用户指南中的示例进行操作、我能够使用 GUI 运行电机、但我需要在没有 GUI 的情况下运行电机(提供电压、电机将根据算法运行)。 我尝试生成配置并检查代码、但这些代码是我获得的代码(见下面)。
    void proc_uart_Data 中没有任何代码。

    我的问题是:

    1) 1)它应该是这样吗?  --> void proc_uart_Data (void)中没有任何电机控制部分代码。
    2) 2)如何为下面的算法只为一个信号输入编写代码?
    这些算法将在 CW 下以40%的占空比持续1分钟、在 CW 下以100%的占空比持续3分钟、在 CCW 下以80%的占空比持续2分钟、然后重复。

    您的同事提到过、"代码的电机控制部分"隐藏"在项目中包含的库文件中。 如您所示、带有可见代码的源文件仅包含对来自 GUI 的 UART 数据的处理、并基于接收到的数据、然后调用库中的相应函数。"

    我是否能够在尝试生成配置文件时获取该部分?

    感谢你的帮助。 )


    /*
    #ifndef CONFIG_C_
    #define CONFIG_C_
    #include "msp430g2553.h"

    extern unsigned int integration_constant;
    extern unsigned char start_up_Duty;//%
    extern unsigned char start_up_MAX_Duty;//%
    extern unsigned char increed_Duty;//%
    extern unsigned char increed_time;//ms
    extern unsigned int wait_time;//ms
    extern unsigned char speed_Duty_MAX;//%
    extern unsigned char speed_Duty_min;//%%
    extern unsigned char speed_ram_cycles;
    extern unsigned char Speed_Control、State、Hysterite_Control、Rotation;

    空 Init_System_Variables (空)

    integration_constant = 20;
    START_UP_DUTY = 1;//%
    START_UP_MAX_DUTY = 15;//%
    Incremental Duty = 1;//%
    Incremental Time = 4;//ms
    WAIT_TIME = 200;//ms
    SPED_DUACT_MAX = 97;//%
    SPED_DUTY 最小值= 10;//%
    SPED_RAMP_CYCLES = 2;
    Hysterite_Control = 2;
    状态= 1;
    SPED_Control = 0;
    旋转= 0;


    void proc_uart_Data (void){}

    #endif

    *

    谢谢、

    谢谢

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

    我们已经提供了我们可以提供的所有信息和代码。 您是否解决了此问题?

    此致、

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

    谢谢。