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.

[参考译文] DRV8301:InstaBLDC 何时进入中断程序

Guru**** 2455560 points
Other Parts Discussed in Thread: DRV8301, INSTASPIN-BLDC

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1333126/drv8301-when-does-instabldc-enter-the-interrupt-program

器件型号:DRV8301
主题中讨论的其他器件: INSTASPIN-BLDC

大家好、

在 DRV8301的 Insta-PM_sensorless 例程中、写入以下代码:

//使用 EPWM1时基启用 CNT_ZERO 中断
EPwm1Regs.ETSEL.bit.inten = 1;//启用 EPWM1INT 生成
EPwm1Regs.ETSEL.bit.INTSEL = 1;//启用中断 CNT_ZERO 事件
EPwm1Regs.ETPS.bit.INTPRD = 1;//在发生第一个事件时生成中断
EPwm1Regs.ETCLR.bit.INT = 1;//启用更多中断

此时、ePWM 模块的实际波形生成模式为向上向下模式。  能否理解为每个控制周期都会触发一个中断、进入中断的时刻对应于时基模块发送一个三角载波进行复位的时刻?

在 InstaeBLDC 中、不存在这样的代码、相反、与中断设置相关的代码为:

/重新分配 ISR。
//为 TINT0重新分配 PIE 矢量以指向不同的
// isr 然后是在 DSP280x_DefaultIsr.c 中找到的 shell 例程。
//如果用户不想使用 shell ISR 例程,则执行此操作
//但希望使用自己的 ISR。

EALLOW;//需要执行此操作才能写入 EALLOW 保护的寄存器
PieVectTable。 ADCINT1 =维护 ISR(&M);
EDIS;//这是禁用对 EALLOW 保护寄存器的写入所必需的

//启用全局中断和更高优先级的实时调试事件:
EINT;//启用全局中断 INTM
ERTM;//启用全局实时中断 DBGM

在此例程中、ePWM 的设置

用于 PWM 生成的 F280x 时基控制寄存器的初始化常量。
在仿真挂起、递增模式时设置计时器自由运行
预分频器1。

#define PWM_CNTL_INIT_STATE (FREE_RUN_FLAG +\
PRDLD_shadow +\
Timer_CNT_UPDN +\
HSPCLKDIV_PRESCALE_X_1 +\
CLKDIV_PRESCALE_X_1 +\
PHSDIR_CNT_UP +\
CNTLD_DISABLE)             客户指出这是 TI 的错误。 代码被写为 Timer-CNT_UPDN、但注释指出这是一种向上计数模式。

客户的问题是:在 insta-BLDC 例程中进入 ISR 的时刻是否对应于重置三角载波的时刻?  或者在其他某个时间?  这对于他控制扭矩和减少扭矩纹波非常重要。

此致、

安妮

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

    尊敬的 Annie:

    我将把您的问题重新分配给我们的 C2000团队、请给他们足够的时间来回答您的问题。

    此致、

    亚拉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 DRV8301的 Insta-PM_sensorless 例程中,以下代码被编写:

    没有您在上面提到的这样的示例可以

    Insta-PM_sensorles。

    [quote userid="41964" url="~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1333126/drv8301-when-does-instabldc-enter-the-interrupt-program 是否可以理解每个控制周期都触发了一个中断、且进入中断的时刻对应于时基模块发出三角载波进行重置的时刻?

    可以。 是的。

    [quote userid="41964" url="~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1333126/drv8301-when-does-instabldc-enter-the-interrupt-program 客户的问题是:在 insta-BLDC 例程中输入 ISR 的时刻是否对应于重置三角载波的时刻?  或者在其他某个时间?  这对于他控制扭矩和减少扭矩波动非常重要。

    您能提供更多详细信息吗? 我无法完全理解您的问题。 您能不能让您的客户先看一下应用手册? 然后、他可以理解示例工作流程、并在之后提出问题。

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

    您好、Yanming:

    以下是客户的回应:

    PM_sensorless 示例代码的中断由 CNT_ZERO 事件触发。 然而、对于 Insta_BLDC 示例代码、不存在指示中断由同一事件触发的此类代码或注释。 因此、我想知道:在 Insta_BLDC 中、主中断是由   CNT_ZERO 事件触发(与 PM_sensorless 相同)还是由一些其他事件触发?  

    这两个示例是:DRV830x-HC-C2-KIT_V105\PM_Sensorless 和 DRV830x-HC-C2-KIT_V105\InstaSPIN_BLDC。

    此致、

    安妮

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此,我只想知道:在 Insta_BLDC 中,主中断是由   CNT_ZERO 事件触发(与 PM_sensorless 相同),还是由一些其他事件触发?

    可以。 这与 PWM 触发的中断相同。

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

    您好、Yanming:

    如何从示例代码中看到这一点? Insta_BLDC 中没有类似的代码。 此外、客户希望确认:

    用于 PWM 生成的 F280x 时基控制寄存器的初始化常量。
    在仿真挂起、递增模式时设置计时器自由运行
    预分频器1。

    #define PWM_CNTL_INIT_STATE (FREE_RUN_FLAG +\
    PRDLD_shadow +\
    Timer_CNT_UPDN +\
    HSPCLKDIV_PRESCALE_X_1 +\
    CLKDIV_PRESCALE_X_1 +\
    PHSDIR_CNT_UP +\
    CNTLD_DISABLE)

    TI 在此处的注释错误、它应该是递减计数模式、而不是先递增模式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何从示例代码中看到这一点?

    我完全不理解您的问题。 您希望更改什么并获取示例代码? 为什么需要更改示例代码?

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

    您好、Yanming:

    这可能会被误解。  客户没有尝试更改示例代码。  他想知道、InstaSPIN_BLDC 代码中的中断触发例程不如 PM_sensorless 代码中的明显。

    此致、

    安妮

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

    如下所示、InstaSPIN-BLDC 使用 PWM 事件触发 ADC SOC、ADC EOC 将触发 ADC 中断。

    EALLOW;//需要执行此操作才能写入 EALLOW 保护的寄存器
    PieVectTable。 ADCINT1 =维护 ISR(&M);
    EDIS;//这是禁用对 EALLOW 保护寄存器的写入所必需的

    PM 传感器使用 PWM 事件直接触发 PWM 中断。 这些可以在示例代码中找到。

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

    您好、Yanming:

    客户知道 ADC 中断由 PWM 零事件触发。 他的问题是:InstaSPIN_BLDC 的 PWM 中断由什么触发? 它是否也由 PM_sensorless 等零事件触发?

    此致、

    安妮

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

    可以在 f2803xidc_vemf.h 和 SOCB (TBCNTR = CMPB)中将其清除、以触发 ADC 及其中断。 请看一下代码。 如果客户不想更改代码、则无需关注此设置、只需在后台循环或 ISR 中查看自己的代码。