SRPWM比较模式在各场景下不同表现的应用指南
1 功能说明
在ET600X系列的SRPWM中,可以对比较事件产生的模式进行设置。 在实际应用中,该模式在不同场景下的表现,呈现出不同的效果。 本文主要讨论主比较器在实时更新的过程中,不同比较模式以及不同更新时机下,比较事件的产生情况。
2 比较模式定义
2.1 模式一 时基计数器等于比较值时产生比较事件
即当时基计数器的计数值等于设置的比较值时,产生相应的比较事件。该事件可以用于动作矩阵的生成,也可以用于信号同步,具体可以参考对应芯片型号的用户手册。
注意
由于该模式为默认值,用户在开发时,常常将其忽略,从而导致产生的波形不符合期望。
2.2 模式二 时基计数器大于等于比较值或者小于等于比较值时产生比较事件
计数方向向上时:时基计数器大于等于比较值时产生比较事件
计数方向向下时:时基计数器小于等于比较值时产生比较事件
可以看到,模式二与模式一的区别在于,不再局限为等于时(时基计数器和比较值的关系),才产生事件。
重要
比较模式仅针对主比较器有效,从比较器不受这个模式约束,仅支持等于产生比较事件。
3 典型场景应用
上述章节讲述了比较模式的定义。为了更好地展现两者的区别,接下来,将以典型的场景为例进行原理性说明。
3.1 前置说明
该芯片支持多个主比较器和多个从比较器。若未提前说明,本文默认使用主比较器A。
本文默认使用支持产生多次比较事件的模式,以更好地展示不同场景下的表现。
比较事件次数模式:
一次比较事件:针对的是独立的A/B/C/D。即每个比较器都可以产生一次事件,但单个比较器单计数方向各仅能产生一次事件;
多次比较事件:即单计数方向各比较器可产生多次比较事件;
名词解释
- new:
主比较器A的新配置值
- old:
主比较器A的旧配置值
- update:
新配置值的更新时刻
- new_up:
向上计数方向时,主比较器A的新配置值
- new_down:
向下计数方向时,主比较器A的新配置值
- 实线红色箭头:
比较脉冲出现时刻
- 虚线红色箭头:
比较事件可多次产生模式下的比较脉冲出现时刻
- CNT:
时基计数器值
- ZERO:
零点时刻
- PRD:
周期时刻
- TB_PHASE:
移相时刻,改变当前CNT位置
- CMPA:
主比较器A的比较值
- CMPB:
主比较器B的比较值
- CMPx:
主比较器x的比较值,x为A~D
3.2 模式一 等于产生比较事件
主比较器和从比较器均支持该模式。不同计数模式下,模式一的表现如下:
计数方向:向上计数
向上计数: 等于产生比较事件的场景
计数方向:上下计数
上下计数: 等于产生比较事件的场景
值得说明
向上计数时:对于场景b在当前PWM周期内无法产生向上比较脉冲,因为新配置更新时刻,时基计数器已大于比较配置值,不符合等于产生比较事件的条件;
上下计数时:对于场景b在当前PWM周期内无法产生向上比较脉冲,但可以产生向下比较脉冲;
3.3 模式二 大于等于或小于等于产生比较事件
仅主比较器支持该模式,从比较器不受该模式约束,仅支持等于产生比较事件。不同计数模式下,模式二的表现如下:
计数方向:向上计数
向上计数: 大于等于产生比较事件的场景
计数方向:上下计数
上下计数: 大于等于或小于等于产生比较事件的场景
值得说明
向上计数时:对于场景b,在更新时刻可以产生向上比较脉冲,因为新配置更新时刻,符合大于等于产生比较事件的条件。
上下计数时:对于场景b,在更新时刻可以产生向上比较脉冲,在new_down时刻也可以产生向下比较脉冲。因为向下计数时,符合小于等于产生比较事件的条件。
4 场景汇总
上述章节对单个主比较器的场景进行了说明。在实际应用中,常常是多个比较器同时工作。 为了更好地展现不同场景的情况,本章节将以表格的形式,汇总多个比较器场景的情况。 由于模式一的使用和理解相对简单,本章节主要针对模式二的使用进行说明。
4.1 触发条件
满足模式二的触发条件。
①. 向上计数时:时基计数器大于等于比较值;
②. 向下计数时:时基计数器小于等于比较值;
CMPx事件产生一次后,需要以下任意条件,才能再次产生CMPx事件:
①. 满足一次CNT计数方向的切换;
②. 满足一次CNT区别于当前比较事件值的切换。如:
当前产生了一次向上计数的CNT大于等于CMPx事件,则需要满足一次CNT小于CMPx时刻,才能再次产生该方向的CMPx事件;
当前产生了一次向下计数的CNT小于等于CMPx事件,则需要满足一次CNT大于CMPx时刻,才能再次产生该方向的CMPx事件;
4.2 实现方式
本章节采用:仅修改CNT(TB_PHASE),不修改CMPx的方式。前述章节采用的方式为:修改CMPx,不改变CNT的方式。
小技巧
无论采用哪种方式,都需要关注其触发条件
4.2.1 计数方向:向上计数
向上计数:锯齿波模式
象限定义
- ①:
ZERO到CMPA的区间
- ②:
CMPA到CMPB的区间
- ③:
CMPB到PRD的区间
跳变情况
跳变点 |
象限变化 |
动作 |
电平变化 |
说明 |
|---|---|---|---|---|
ZERO |
①→③ |
CMPB CLR |
L → L |
无 |
ZERO |
③→① |
None |
L → L |
无 |
CMPA |
②→① |
None |
H → H |
无 |
CMPA |
①→② |
CMPA SET |
L → H |
无 |
CMPB |
③→② |
None |
L → L |
无 |
CMPB |
②→③ |
CMPB CLR |
H → L |
无 |
4.2.2 计数方向:上下计数
上下计数:三角波模式
象限定义
- ①:
ZERO到CMPA向上时刻的区间
- ②:
CMPA向上时刻到PRD的区间
- ③:
PRD到CMPB向下时刻的区间
- ④:
CMPB向下时刻到ZERO的区间
跳变情况
跳变点 |
象限变化 |
动作 |
电平变化 |
说明 |
|---|---|---|---|---|
ZERO |
①→④ |
CMPB CLR |
L → L |
无 |
ZERO |
④→① |
None |
L → L |
无 |
CMPA |
②→① |
None |
H → H |
无 |
CMPA |
①→② |
CMPA SET |
L → H |
无 |
PRD |
③→② |
CMPA SET |
H → H |
无 |
PRD |
②→③ |
None |
H → H |
无 |
CMPB |
④→③ |
None |
L → L |
无 |
CMPB |
③→④ |
CMPB CLR |
H → L |
无 |
5 实际应用场景参考
相关实际应用场景请参阅 SRPWM的比较模式设置对波形生成影响的应用指南。