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.

[参考译文] TMDSDOCK28379D:感应电机停止

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1213543/tmdsdock28379d-induction-motor-stops

器件型号:TMDSDOCK28379D
主题中讨论的其他器件: C2000WARE

您好、专家!

如需获取有关 用户报告的 TMDSDOCK28379D 电机驱动器问题的此设计帮助:

关于 TMS28379D 处理器、我在上述处理器上执行正弦 PWM 来驱动感应电机、我面临的问题是、电机在两者之间停止。

它发生了很多次。 然后、我发现只要电机停止、脉冲就会停止。 我使用的是 Semikron 制造的两级三相逆变器。

此处随附的是代码。 请注意、我没有使用任何 IQ 数学库来生成正弦函数。

此致、
阿奇·A·阿奇

/cfs-file/__key/communityserver-discussions-components-files/171/TMS_5F00_Code.txt

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

    您好、Archie。

    这是看门狗复位引起的问题吗? 您能否在 ISR 中禁用看门狗计时器和相关的寄存器设置?

    谢谢。

    嘉兴市

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

    嘉兴市

    您可以看到、我们已将上面的 TXT 格式的代码附加、表明 看门狗计时器已停用。 现在我们将尝试激活它吗?

    请提供帮助。

    此致、
    阿奇·A·阿奇

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

    您好、Archie。

    我没有 注意到  与看门狗的禁用相对应的行,通常它与 main ()函数中的初始化代码一起提供。 同样在函数"cpu_timer0_isr ()"中、有用于操作看门狗寄存器的代码。 您能否再次确认它是否已正确禁用? 因为在正常操作中没有任何跳闸的停止让我感觉发生了一些重置。

    谢谢。

    嘉兴市

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

    谢谢、 嘉兴。

    您是说默认情况下看门狗计时器处于活动状态吗? CX 在 main 函数中添加了一行来禁用看门狗、如下所示

    EALLOW;//写入 EALLOW 保护寄存器需要执行此操作
    WdRegs.WDCR.all = 0x0068;//禁用看门狗
    EDIS;//这需要禁用对 EALLOW 保护寄存器的写入

    修改这样的代码后、与禁用看门狗之前相比、电机的运行时间明显更长。
    但是、在这种情况下、电机在大约15 - 20分钟后停止。
    附加一个 CCS 窗口剪辑、在其中可以观察故障(正弦函数饱和至其极限。 这不应该发生)。

    此致、
    阿奇·A·阿奇

    e2e.ti.com/.../2023_2D00_04_2D00_10-09_2D00_44_2D00_57_5F00_Trim.mp4

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

    您好、Archie。

    您能否尝试使用 device.c 文件中的"Device_init ()"函数来禁用看门狗(内部为"sysctl_disableWatchdog ()")? 您可以参考 C2000Ware "\C2000Ware_4_02_00_00\driverlib\f2837xd\examples"中的任何示例代码。 另请确保在其他位置没有看门狗寄存器设置。

    谢谢。

    嘉兴市

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

    您好、 嘉兴!

    你好。

    我首先在代码中包含了以下行。

    #include "driverlib.h"
    #include "device.h"

    然后、我还在主函数中添加了以下行、

    device_init();
    SYSCTL_disableWatchdogs();

    后来我得到附件中所示的误差。

    谢谢你。

    此致、
    阿奇·A·阿奇

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

    您好、Archie。

    请检查您的  项目的 include 选项中是否有 driverlib。 您可检入项目属性:

    1.在 Project Explorer 中左键点击项目

    2.点击底部的"属性"

    3.转至"包含选项"

    4.检查是否包含"/driverlib"、如果未包含、请手动添加。  

    谢谢。

    嘉兴市

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

    谢谢、嘉兴。

    我之前添加了 driverlib。 但是我有一些误差。 所以、我删除了路径。
    添加 driverlib 后出现的错误是

    ****
    "C:/ti/C2000Ware_4_01_00_00/driverlib/f2837xd/driverlib/adc.h "、第174行:错误#41:需要一个标识符
    "C:/ti/C2000Ware_4_01_00_00/driverlib/f2837xd/driverlib/adc.h "、第175行:错误#41:需要一个标识符

    进一步支持。

    尊重,
    阿奇·A·阿奇

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

    您好、Archie。

    您是从模板还是从头开始创建项目? 您可能需要验证链接的资源和包含选项是否配置正确。 下面是一个工作示例的一些屏幕截图:

    让我知道这是否仍会产生误差。

    此致、

    Omer Amir

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

    尊敬的  Omer 和 嘉兴:

    已回复:

    我从示例中导入了工程并对其进行了编辑、以满足我的需求。 我将随附以下链接的文件屏幕截图。 我觉得一切都很好。 如果我缺少任何东西、请告诉我。

    此外、我还附加了项目文件夹、以便您可以在最终的 PC 上进行上传以进行交叉验证。

    Regars、
    阿奇·A·阿奇

    e2e.ti.com/.../adc_5F00_soc_5F00_epwm_5F00_cpu01.rar

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

    您好、Archie。

    我能够确认错误、但与示例相比、您的项目属性似乎已修改。 当我从我自己的 C2000Ware 导入示例工程时、它的构建过程没有任何错误。 作为完整性检查、您是否可以重新导入工程(File -> Import)并验证其构建过程没有出现任何错误? 如果是、请尝试将您的程序复制并粘贴到 adc_soc_epwm_cpu01.c 文件中、然后从该文件构建该程序。

    此致、

    Omer Amir

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

    您好、Amer:

    在客户离开并刚到这里时、对延迟更新表示歉意。

    正如您提到的、我们已经按照指示进行了操作。 我们将逐步编写所有内容。

    1.我导入了一个新的例子。
    2.它是正确的建筑。
    3.然后我添加了如屏幕截图所示的 driverlib 路径。
    4.它是正确的建设。
    5.现在添加了两行代码如下所示。
    #include "driverlib.h"
    #include "device.h"
    6、现在我正在重建时,我收到以下错误(见附件)。

    我们现在该怎么办?

    谢谢你。

    此致、
    阿奇·A·阿奇

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

    感谢 Archie。

    我将尝试请我们的一位软件专家了解这里发生的情况、看看他们是否有任何见解。

    此致、

    Omer Amir

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

    您好、Archie。

    该错误表明 ADC_resolution 枚举值是在其他文件中定义的。 在本例中、它在 F2837xD_ADC_defines.h 中定义 您可以注释掉该文件中的这些行、并在 F2837xD_ADC.c 文件中添加#include "adc.h"以消除进一步的错误。 它将删除您遇到的构建错误。  

    此致、

    Meghavi.

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

    您好、Meghavi:

    谢谢你。

    尝试了您建议的解决方案、现在正在构建示例代码、没有任何错误。 但是、我们仍需要使用自己的代码进行测试并运行电机、然后再确认其有效性。

    在另一个注意事项中、 我们遇到了一个小问题、即我们对新的.c 文件进行的任何更改也会影响现有.c 文件中的代码。 对于如何解决此问题、您有什么建议吗?

    此致、
    阿奇·A·阿奇

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

    您好、 Meghavi:

    似乎这现在是新问题。

    因此、我建议客户在 E2E 中创建一个单独的帖子(在他更改为有效的公司电子邮件帐户后)。

    感谢您的支持。

    此致、
    阿奇·A·阿奇

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

    您好、Archie。

    当然可以。 在这种情况下、我将锁定该线程。

    此致、

    Meghavi.