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.

[参考译文] SVPWM 5-7相

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/865174/svpwm-5-7-phase

器件型号:TMS320F280049C
主题中讨论的其他器件:DRV8320C2000WARE

从之前的帖子看来、TI 工程师确实已经说过一个已知事实:"克拉克/帕克变换可以使用7相表"、但是...

问题是为什么 ePWM 似乎在 InstaSpin hal.c (iso1_intro_hal)中配置为5相调制。 这种情况变得显而易见、hal.c 声明了 ePWM 操作限定器强制3个 B 侧驱动器(AKA 低侧 MOSFET)进入强制开启状态(A-B-C 相)(在下表中)。 如下表中定义的似乎是5相 ePWM、类似于行业公认的 SVPWM 相位技术。 如果 hal.c 是7相 SVPWM 的示例、则嵌入式 SW 必须控制矢量、而不是配置的 HW!

也许只有在 FAST 估算器 InstaSpin lab1和 ePWM 动作限定器强制一侧 NFETS  危险地进入导通状态、然后在其他实验中更改为禁用状态期间?

这是一个非常重要的问题、需要诚实地回答、并通过 TI 工程师在不强制 hal.c 代码中使用 ePWM 操作限定符的情况下执行的实际和最近的测试来确认。 SVPWM 表应是 ePWM 的软件控制、而不是硬件控制、因为它已配置(source_board/hal.c)。 InstaSpin 分析 PDF 从未解释为什么硬件强制设置相位高/低、或者它如何导致电气问题!

//设置动作限定符连续软件强制寄存器
//(AQCSFRC)
ePWM_setActionQualifierContactSWForceAction (obj->pwmHandle[cnT]、
ePWM_AQ_OUTPUT _B、
ePWM_AQ_SW_OUTPUT 高电平); 

 

1、为什么选择 InsatSpin Lab1 hal.c 来配置5相 SVPWM?

2. InstaSpin 实验室是否已确认7相 SVPWM 可与多种不同的 PMSM 电机配合使用?

  

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

    我确实会意识到 hal.c 首先会禁用6个 ePWM 输出、但在某个时候会再次启用、并且不会在任何写入代码行中被 SW 反相。 这仍然会为随机发生的跨导(击穿)留出一个开放窗口、从而使分流器吹出、并使 NFETS 清理 PCB。

    请注意、启用未使用的 GPIO/ePWM 引脚会在 MCU 中创建许多小天线、以使杂散 EMI 向内流动、即使在输出引脚上也是如此! 在 BosstXL-8320RS 的多个实验室的软件开发中、似乎没有使用这种最佳做法。 似乎正在禁用直流/直流稳压器、但没有关于其他未记录的宏调用禁用了什么直流/直流的单个参考说明是微兹! 你们知道什么和在哪里,但其他人没有做。 简单地键入 DRV8320或其他驱动器是否是谨慎的?  

    //
    //写入0以启用位。
    //
    HWREG (ANALOGUESUBSYS_BASE + ASHSCTL_O_DCDCCTL)&=~ASHSCTL_DCDCCTL_DCDCEN; 

    此外、在 hal.c 中、没有配置 ePWM Xbar MUX 使能端、无论在什么地方可见、甚至是通过文本记录的。 如果 PDF 技术手册从未用简单的陈述进行记录、TI 如何期望它与书面代码保持一致?

    //关闭 EPWM 外设的输出,从而加电
    //切换到高阻抗状态。
    ePWM_forceTripZoneEvent (obj->pwmHandle[0]、ePWM_TZ_FORCE_EVENT_OST);
    ePWM_forceTripZoneEvent (obj->pwmHandle[1]、ePWM_TZ_FORCE_EVENT_OST);
    ePWM_forceTripZoneEvent (obj->pwmHandle[2]、ePWM_TZ_FORCE_EVENT_OST); 

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

    对于上面的问题1和2、如您发布的某些主题中所述。 所有 InstaSPIN 实验都使用由软件生成的7开关 SVPWM 模式、不能直接在所有 C28x 器件中通过 PWM 寄存器进行设置。

    对于 EPWMxBAR、您可以在技术手册中找到应用指南、也可以在 C2000ware 中找到一些应用示例。 您发布的与 EPWMxBAR 无关的代码 BTW 用于根据跳闸事件关闭 PWM、而跳闸事件是 来自 EPWMxBAR 和比较器的跳闸事件。

    我们尝试为代码添加一些注释、但无法解释参考中的每一行代码。 您可以在 C2000Ware 中找到每个外设的更详细的示例代码和相关指南、如下文件夹所示。 希望您可以查看这些内容。

    C:\ti\c2000\C2000Ware_2_00_00_03\device_support\f28004x\

    或  

    C:\ti\c2000\C2000Ware_MotorControl_SDK_2_01_00_00\c2000ware\device_support\f28004x\docs

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

    [引用用户="Yanming Lua"]所有 InstaSPIN 实验都使用由软件生成的7开关 SVPWM 模式,不能直接在所有 C28x 器件中由 PWM 寄存器设置。

    再次强调、如果软件强制硬件进入与 SVPWM 理论的文本披露不匹配的奇动作限定状态、则 InstaSpin 不会产生7相 SVPWM! 如果您不知道答案、请询问、因为此 SW 强制限定符看起来非常错误或措辞不正确!

    同样、在配置死区之前、操作限定器强制生成器输出为高电平(未反相)。 发生器递增/递减计数默认为中心对齐 ePWM、应产生互补的 A/B 输出、除非 F820049C 发生器具有奇数勘误表或最后反转 B 侧状态、而这在技术手册中没有记录。 SVPWM 7相 ROM 表期望正确的操作发生器能够正常工作,而不会强制硬件状态,正如软件通过 hal.c HAL_setupPWM ()所做的那样。   

    [引用用户="Yanming Lua"]您发布的与 EPWMxBAR 无关的代码是用于根据跳闸事件关闭 PWM、但如果是来自 EPWMxBAR 和比较器、则是跳闸事件。

    再次指向 SW 禁用的 PWM A/B 输出、以停止使 NexFET 与强制限定器的结果发生短路。 该事件似乎应该与比较器相关(CTR)或(T1/T2)、但 HWREG 会触摸->

    HWREGH (base + EPWM_O_AQCSFRC)=
    ((HWREGH (base + EPWM_O_AQCSFRC)&~EPWM_AQCSFRC_CSFB_M)|
    ((uint16_t)输出<< ePWM_AQCSFRC_CSFB_S); 

    这并不能解释为什么动作限定符会强制 B 侧进入导通状态。 在发生器负载计数中断期间、对于占空比更新、该操作似乎应该是比较事件。 除非强制低侧 NFETS 打开是对 Cboot 电容器进行充电的一种粗略方式、否则 DRV8320RS? 如果是这样、这不是为引导自举电容器进行预充电的正确方法、因为可能会发生击穿。 为了安全起见、必须从 PWM 微秒中断进行预充电!  

    软件强制操作是一个有用的异步事件。 此控制由 AQSFRC 和 AQCSFRC 寄存器处理。动作限定符子模块控制 EPWMxA 和 EPWMxB 两个输出在特定事件发生时的行为方式。 动作限定器子模块的事件输入由计数器方向(向上或向下)进一步限定。 这允许在递增和递减计数阶段对输出采取独立操作。
    施加到输出 EPWMxA 和 EPWMxB 上的可能操作包括:
    •设置为高电平:
    将输出 EPWMxA 或 EPWMxB 设置为高电平。
    •清除低电平:
    将输出 EPWMxA 或 EPWMxB 设置为低电平。
    •切换:
    如果 EPWMxA 或 EPWMxB 当前被拉高、则将输出拉低。 EPWMxA 或 EPWMxB 是否为
    当前拉至低电平、然后将输出拉至高电平。
    •不执行任何操作:
    将输出 EPWMxA 和 EPWMxB 保持在与当前设置的电平相同的水平。 虽然"do Nothing"选项可防止事件导致 EPWMxA 和 EPWMxB 输出端发生动作、但该事件仍可触发中断并启动 ADC 转换。 有关详细信息、请参阅第18.10节中的说明。

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

    已回复您发布的另一个主题。

    这是 PWM 输出和 SVPWM 输出之间的一个不同概念、PWM 输出由操作控制寄存器设置、无论如前所述的5-SW 或6-SW 如何、该寄存器都应始终保持相同。

    PWM 配置代码通常用于 InstaSPIN-FOC 作为参考。 当然、 您可以更改它以根据需要获得输出状态。