本帖最后由 小恩GG 于 2021-9-28 11:38 编辑
最近有客户反映关于SCTimer模块产生PWM个数,LPC55s06用户手册和数据手册写的不一致。按照生成PWM格式分类,有多种,所以利用SCTimer 生成PWM的最大个数也不一样。个人认为用户手册和数据手册描述的不太清楚,所以本文做具体分析。主要看SCTimer资源,例如事件(EVENT)个数,输出通道个数。
对于LPC所有系列,SCTimer生成PWM的机制是相同的,此处用LPC55s6 为例分析。
LPC55s06用户手册:
• The SCTimer/PWM supports:
– Eight inputs.
– Ten outputs.
– Sixteen match/capture registers.
– Sixteen events.
– Thirty two states.
本文按照生成PWM波控制方式不同,分为单边控制,双边控制和中央对齐控制。
1.PWM单边控制
下图为不同占空比,相同频率的两路单边控制PWM波。 由上图可以得到,此两路PWM波共需要三个事件(Event):分别是计数器到41 ,65和100时。因为同频率,所以所有周期事件只需要一个。
总结:所有PWM的频率相同,共需一个频率事件(Event),每路PWM占空比不同,各需要一个事件触发。LPC55s06的SCTimer有16个事件,一个作为PWM频率事件,剩15个,理论上可以生成15路的PWM,但是LPC55s06只有10个输出通道(outputs),所以最多可以生成10路单边控制PWM波。
2.PWM双边控制
下图为不同占空比,相同频率的三路双边控制PWM波。
由上图可以得到,此三路PWM波共需要七个事件(Event):分别是计数器到1,27,41,53,65,78,100时。
总结:PWM频率控制需要用一个事件,每路PWM占空比需要两个事件触发。LPC55s06的SCTimer有16个事件,一个作为PWM频率事件,剩15个,所以最多可以生成7路双边控制PWM波。
3.PWM 中央对齐控制
中央对齐是双边控制的一种特例,下图为不同占空比,相同频率的两路中央对齐PWM波: 由上图可以得到,此两路PWM波共需要三个事件(Event),分别是PWM频率和两路PWM的占空比触发,因为左右对称,所以一路PWM只需要一个事件控制占空比。
总结:所有PWM的频率相同,所以需要一个事件(Event)。每路PWM占空比不同,但左右对称,各需要一个事件触发。LPC55s06的SCTimer有16个事件,一个作为PWM频率事件,剩15个,理论上可以生成15路的PWM,但是LPC55s06只有10个输出通道(outputs),所以最多可以生成10路单边控制PWM波。
总结:LPC55s6 SCTimer 生成PWM个数最大值: 单边控制:10 双边控制:7 中央对齐:10
不同芯片中SCTimer包含事件和输出通道个数不一样,但分析方法是一样的,客户可以据此自己分析某款芯片中的SCTimer 是否满足需求。
|