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驱动无刷三相电机时,使用模拟比较芯片对电机驱动板电压进行监控,并连接至PWM的TZ输入上,具体如下示意图。
经过示波器抓取信号发现,模拟比较器输出给PWM TZ的信号上有毛刺,且对应每一个PWM周期中,毛刺出现位置不固定,想通过PWM内数字比较模块DC中的滤波功能对TZ上的毛刺进行过滤。但是经过尝试后仍有问题,具体如下:
假设下图中T1和T2是两个相邻的PWM周期(T2在T1时刻后),根据TMS570LC4357 PWM模块DC章节的解释:
那么基于以上三点,假设在T1时刻,毛刺出现在TZ信号中间处左右,首先软件需要设置开启DC捕获功能,读取DCCAP寄存器的值,用DCCAP中捕获时基计数器的值来设置下图中OFFSET长度,同时根据毛刺宽度设置WINDOW区间,使得WINDOW过滤区间覆盖毛刺出现的区域,达到过滤毛刺的目的。但是如果在下一个周期时(T2时刻),TZ信号上毛刺出现的位置发生了改变,例如毛刺出现在TZ后部分区域,此时由于T1时刻配置的offsetn和window无法满足T2时刻,导致T1时刻配置的过滤区间无法过滤T2时刻的毛刺。
疑问:
1,PWM 模块中DC过滤毛刺功能是否只支持过滤位置固定出现在TZ信号上的毛刺?(例如上图中T1时刻的毛刺和T2时刻的毛刺如果出现在相同位置,此时如果用上述方法,则可以根据T1时刻捕获的值,合理设置上述几个参数,使得在T2时刻毛刺被滤除。但是如果毛刺出现在不同位置,按照上述算法,则无法过滤。)
2,如果每次毛刺出现的宽度不一致,软件应该如何动态调整WINDOW计数器的值,使其覆盖毛刺出现的区域?(不可能每次都用示波器测量毛刺宽度,太繁琐。)
您好,
1,PWM 模块中DC过滤毛刺功能是否只支持过滤位置固定出现在TZ信号上的毛刺?
是的,直流滤波器无法根据噪声毛刺动态地更改其窗口,它始终具有基于 DCFWINDOW 寄存器值的固定宽度,并将在 DCFOFFSET 之后立即启动,后者将在 CTR = PRD 或 CTR = 0后再次启动。
2,如果每次毛刺出现的宽度不一致,软件应该如何动态调整WINDOW计数器的值,使其覆盖毛刺出现的区域?
该WINDOW不能动态调整。 但可以建议您采用一种方法来消除此毛刺。 可以通过一个选项来控制 ePWM 输入,如下所示:
实际上您可以通过以上列出三种方法中的任何一种,使用 IOMM 模块来配置 ePWM nTZ 输入。
1. Asynchronous Input
2. Double-VCLK3-Synchronized Input
3. Double-VCLK3-Synchronized and 6-VCLK3-Filtered Input
1. Asynchronous Input:
使用该方法,输入信号的变化(nTZ)被直接传递到 ePWM 模块,无需任何滤波。
2. Double-VCLK3-Synchronized Input:
在这个方法中,在至少2VCLK3周期内输入信号的任何变化将只传递到 ePWM 模块。
例如: 假设 nTZ1长时间处于逻辑高电平,现在它已变为逻辑低电平,因此该低电平脉冲不会立即传递到 ePWM 模块,而 IOMM 模块将验证低电平脉冲持续时间是否至少为2VCLK3个周期。 如果低电平脉冲持续时间小于2VCLK3周期,IOMM 模块将不会把那个低电平脉冲传递到 ePWM 模块,所以 ePWM 模块将把 nTZ1读取为逻辑高电平。 因此在这个方法中,宽度小于2VCLK3周期的任何噪声将被 IOMM 模块消除。
3. Double-VCLK3-Synchronized and 6-VCLK3-Filtered Input:
在该方法中,在至少6个 VCLK3 (+2个 VCLK3)周期内输入信号的任何变化只会传递到 ePWM 模块。 这意味着大小为8VCLK3周期的脉冲宽度将仅通过 IOMM 模块传递到 ePWM 模块。
例如: 假设 nTZ1长时间处于逻辑高电平,现在它已变为逻辑低电平,因此该低电平脉冲不会立即传递到 ePWM 模块,而 IOMM 模块将验证低电平脉冲持续时间是否至少为8VCLK3个周期。 如果低电平脉冲持续时间少于8VCLK3个周期,那么 IOMM 模块将不会把那个低电平脉冲传递到 ePWM 模块,所以 ePWM 模块将只将 nTZ1读取为逻辑高电平。
因此在这个方法中,宽度小于8VCLK3周期的任何噪声都将被 IOMM 模块消除。
所以根据您在 nTZ 输入端看到的噪声毛刺大小,使用方法2或3中的任何一种。
详情请见英文论坛答复: