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.

[参考译文] TMS570LC4357:PWM 数字比较模块(DC)中已过滤毛刺脉冲问题

Guru**** 2451970 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1247609/tms570lc4357-filtered-glitch-issue-in-pwm-digital-compare-module-dc

器件型号:TMS570LC4357

大家好、

使用 PWM 驱动无刷三相电机时、使用模拟比较芯片监测电机驱动板电压、并连接到 PWM 的 TZ 输入:  

信号由示波器捕获、模拟比较器输出到 PWM TZ 的信号上存在干扰、并且在每个 PWM 周期中、干扰在非固定位置发生。 客户希望通过 PWM 中数字比较模块 DC 的过滤功能来过滤 TZ 上的毛刺脉冲。  

根据 TMS570LC4357 PWM 模块直流 部分、假设 T1和 T2是两个相邻的 PWM 周期(T2在 T1时间之后):

  • 在偏移计数器递减至0之后、窗口计数器开始计数
  • 窗口范围内的毛刺被过滤
  • DCCAP 寄存器捕获发生 DCEVFILT 事件时的时基计数器值。  

基于上述前提、假设瞬发性波动在 T1时间发生在 TZ 信号的中间、 首先、软件需要设置直流捕捉、然后读取 DCCAP 寄存器的值、从而使用在 DCCAP 中捕获的时基计数器的值设置下图中的偏移长度。 窗口范围也根据干扰的宽度设置、以便窗口滤波器范围涵盖发生干扰的区域、以过滤干扰。 不过、如果 TZ 信号上干扰的位置在下一个周期(T2时间)发生变化、例如、干扰会在 TZ 之后的区域中发生、因为配置的 T1时间偏移和窗口不能满足 T2时间、  导致 在 T1时间配置的滤波器间隔无法滤除 T2时间的干扰。  

1) 1) PWM 模块中的直流滤波器干扰功能是否仅支持滤除固定在 TZ 信号上的干扰?  

2) 如果每个干扰的宽度不同、软件应如何动态调整窗口计数器值以覆盖发生干扰的区域?  

您能帮助检查这个问题吗? 谢谢。

此致、

切里

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

    您好、Cherry:

    Unknown 说:
    1) PWM 模块中的直流滤波器毛刺脉冲函数是否仅支持滤除固定在 TZ 信号上的毛刺脉冲?  [/报价]

    是的、回答正确。 直流滤波器无法根据噪声干扰动态地更改其窗口、它始终具有基于 DCFWINDOW 寄存器值的固定宽度、并将在 DCFOFFSET 之后立即启动、后者将在 CTR = PRD 或 CTR = 0后再次启动。

    Unknown 说:
    2) 如果每个毛刺的宽度不同、软件应该如何动态地调整窗口计数器值以覆盖发生毛刺的区域?  [/报价]

    此窗口不能动态调整。

    但我可以建议您采用一种方法来消除此干扰。 可以通过一个选项来控制 ePWM 输入、如下所示:

    实际上、可以使用 IOMM 模块通过上面列出的三种方法中的任何一种来配置 ePWM nTZ 输入

    1. 异步输入

    2. 双 VCLK3同步输入

    3. 双 VCLK3同步和6VCLK3滤波输入

    1. 异步 输入:

    在这种方法中、输入信号的变化(nTZ)被直接传递到 ePWM 模块、无需任何滤波。

    2. 双 VCLK3同步输入:

    在这个方法中、在至少2VCLK3周期内输入信号的任何变化将只传递到 ePWM 模块。

    例如:

    假设 nTZ1长时间处于逻辑高电平、现在它已变为逻辑低电平、因此该低电平脉冲不会立即传递到 ePWM 模块、而 IOMM 模块将验证低电平脉冲持续时间 是否至少为2VCLK3个周期。 如果低电平脉冲持续时间小于2VCLK3周期、 IOMM 模块将不会把那个低电平脉冲传递到 ePWM 模块、所以 ePWM 模块将把 nTZ1读取为逻辑高电平。

    因此、 在这个方法中、宽度小于2VCLK3周期的任何噪声将被 IOMM 模块消除。

    3. 双 VCLK3同步和 6VCLK3滤波输入:

    在这个方法中、在至少6个 VCLK3 (+2个 VCLK3) 周期内输入信号的任何变化只会传递到 ePWM 模块。 这意味着大小为8VCLK3周期的脉冲宽度将仅通过 IOMM 模块传递到 ePWM 模块。

    例如:

    假设 nTZ1长时间处于逻辑高电平、现在它已变为逻辑低电平、因此该低电平脉冲不会立即传递到 ePWM 模块、而 IOMM 模块将验证低电平脉冲持续时间 是否至少为8VCLK3个周期。 如果低电平脉冲持续时间少于8VCLK3个周期、 那么 IOMM 模块将不会把那个低电平脉冲传递到 ePWM 模块、所以 ePWM 模块将只将 nTZ1读取为逻辑高电平。

    因此、 在这个方法中、宽度小于 8VCLK3周期的任何噪声 将被 IOMM 模块消除。

    因此、根据您在 nTZ 输入端看到的噪声干扰大小、使用方法2或3中的任何一种。

    --

    谢谢。此致、
    Jagadish。

    [/quote]