打印
[牛人杂谈]

M0518的PWM的几种模式

[复制链接]
1684|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xuanhuanzi|  楼主 | 2018-10-19 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PWM支持3种计数方式操作:向上计数,向下计数,上下计数方式。

PWM比较器
CMPDAT (PWM_CMPDATn[15:0])是PWM信道n的基本比较器寄存器。每个通道只有一个CMPDAT.
CMPDAT值一直与相应互补通道的计数器值作比较。当计数器值等于比较寄存器值,PWM产生一个事
件,并用事件产生一个PWM脉冲,中断,或者触发ADC。在上下计数方式中,一个PWM 周期将产生两个事件


PWM双缓存
双缓存是用两个缓存器来分开软件写和硬件操作时序。软件设置好寄存器后,硬件将按照装载模式时序
将寄存器值装载到缓存寄存器中。硬件的操作是基于缓存寄存器的值。这样可以避免软硬件不同步时的
操作问题。
PWM的PERIOD 和CMPDAT都具有双缓存功能。


沙发
xuanhuanzi|  楼主 | 2018-10-19 16:11 | 只看该作者
周期装载模式
周期装载模式是默认模式,在各个装载模式中的优先级最低。当一个周期完成后PERIOD 和 CMPDAT
都装载到他们的缓存。例如:在向上计数操作PWM计数器从零计数到PERIOD后或在向下计数操作从
PERIOD计数到零或在上下计数操作向上计数从零到PERIOD然后向下计数到零。

使用特权

评论回复
板凳
xuanhuanzi|  楼主 | 2018-10-19 16:18 | 只看该作者
立即装载模式
如果IMMLDENn (PWM_CTL0[21:16])中与PWM通道n相应的位被置1时,当软件更新PERIOD 或
CMPDAT后,软件立即将PERIOD和CMPDAT值装载到缓存。如果PERIOD更新值小于当前计数值,计
数器将循环计数。立即装载模式有最高优先级,如果设置IMMLDENn,通道n的其他装载模式将失效。

使用特权

评论回复
地板
xuanhuanzi|  楼主 | 2018-10-19 16:19 | 只看该作者
中心装载模式
如果CTRLDn (PWM_CTL0[5:0])的PWM通道n相应位被置1并处于上下计数模式,在周期的中点
CMPDAT值将装载到CMPBUFn,也就是说计数器计数到PERIOD点。PERIOD装载时序与周期装载模
式一样

使用特权

评论回复
5
xuanhuanzi|  楼主 | 2018-10-19 16:19 | 只看该作者
PWM脉冲发生器
PWM脉冲发生器是用计数器和比较器事件来产生PWM脉冲。这些事件包括:向上和向下计数方式的零
点或周期点,上下计数方式的中点,以及三种方式中的计数器等于比较值。作为上下计数方式,计数器
有两个等于比较器的点一个在向上计数,一个在向下计数。此外,互补模式有两个比较器值与计数器比
较,因此在上下计数方式中有四个相等值,向上或向下计数方式各有两个。
通过设定PWM_WGCTL0 和 PWM_WGCTL1,每个事件点可以决定PWM波形:不变(X),为低
(L),为高(H)或切换(T)。用这些点可以很容易产生一个不规则的PWM脉冲或可变波形,如图
6‑37.图中,PWM是互补模式,两个比较器n和m来产生PWM脉冲。n表示偶数通道0,2,4;m表示奇
数通道1,3,5。n和m通道是互补组。互补模式用两个信道((CH0 和 CH1, CH2 和 CH3, CH4 和 CH5)
作为一组PWM输出一个互补波形。CMPU表示当向上计数时CNT等于CMPDAT.CMPD表示当向下计数
时CNT等于CMPDAT。

使用特权

评论回复
6
xuanhuanzi|  楼主 | 2018-10-19 16:20 | 只看该作者
PWM输出模式
PWM支持两个输出模式:独立模式,可以应用于直流电机系统;带死区插入互补模式,可以由于交流感应电机和永磁同步电机。

使用特权

评论回复
7
xuanhuanzi|  楼主 | 2018-10-19 16:20 | 只看该作者
独立模式
默认PWM在独立模式,当信道n相应位PWMMODEn (PWM_CTL1[26:24])置0 独立模式被使能。独立模式中6个PWM信道:PWM_CH0, PWM_CH1, PWM_CH2, PWM_CH3, PWM_CH4 和 PWM_CH5 都运行在各自的周期占空比

使用特权

评论回复
8
xuanhuanzi|  楼主 | 2018-10-19 16:20 | 只看该作者
互补模式
当互补通道与PWMMODEn (PWM_CTL1[26:24])相应位被置1,互补模式被使能。互补模式有3个PWM
发生器,模块中总共3组PWM输出管脚。互补模式中内部奇数PWM信号必须与相应偶数通道的PWM信
号互补。PWM_CH1将互补于PWM_CH0, PWM_CH3将互补于PWM_CH2,PWM_CH5将互补于
PWM_CH4

使用特权

评论回复
9
xuanhuanzi|  楼主 | 2018-10-19 16:27 | 只看该作者
PWM 输出控制
PWM脉冲产生后,有4到6步来控制PWM通道输出。独立模式中,屏蔽,刹车,管脚极性和输出使能4
步。互补模式中,在以上4步前增加2步:互补通道和死区插入。

使用特权

评论回复
10
xuanhuanzi|  楼主 | 2018-10-19 16:28 | 只看该作者
死区插入
互补应用中,互补通道也许用来驱动外部设备例如开关电源,在互补输出通道间死区发生器插入一个低
电平周期叫(死区时间)来安全驱动设备,防止系统或设备烧坏。因此死区控制是正确操作互补系统的
重要机制。通过设置通道n DTEN (PWM_DTCTLn[16]) 的相应位来使能死区功能, 设置DTCNT
(PWM_DTCTLn[11:0])控制死区时间周期,死区时间可以通过以下公式计算:
死区时间 = (DTCNT[11:0]+1) * PWMx_CLK 周期

使用特权

评论回复
11
xuanhuanzi|  楼主 | 2018-10-19 16:29 | 只看该作者
PWM屏蔽输出功能
通过设置PWM屏蔽使能控制寄存器(PWM_MSKEN)和PWM屏蔽数据寄存器(PWM_MSK)可以对每个
PWM的输出手动覆盖。通过这些设置,PWM通道的输出可以被强制设定为特定的逻辑状态,而与比较
单元无关。PWM屏蔽位用于控制各类电子整流电机(ECM),如BLDC电机。PWM_MSKEN寄存器有六
个位,MSKENn (PWM_MSKEN[5:0]) 。如果MASKENn置高,通道n输出将被覆盖。PWM_MSK寄存器
有六个位,MSKDATn (PWM_MSK[5:0])。当通道被覆盖,MSKDATn位值决定PWM通道n的输出状态

使用特权

评论回复
12
xuanhuanzi|  楼主 | 2018-10-19 16:34 | 只看该作者
PWM刹车
每个PWM模块有两个外部输入刹车控制信号。外部信号将被一个3位噪音滤波器滤波。另外,外部信号
可以通过设置BRKxPINV (PWM_BNF[15, 7],(x表示输入管脚0或1)被翻转,来实现刹车控制型号的极
性设置。通过设置BRKxFCS (PWM_BNF[11:9, 3:1])可以根据不同的噪音选择合适的噪音滤波器的采样
时钟。另外,通过设置BRKxFCNT (PWM_BNF[14:12, 6:4])用户可以定义滤波器需要多少次采样来确认
有效刹车信号。配置BRKxFEN (PWM_BNF[8, 0])将使能噪音滤波器,默认是关闭的。

使用特权

评论回复
13
xuanhuanzi|  楼主 | 2018-10-19 16:35 | 只看该作者
极性控制
每个PWM端口从PWM_CH0 到 PWM_CH5都有一个独立极性控制模块来配置PWM输出的极性状态。
默认PWM输出时高,意味着PWM OFF状态时低 ON状态时高。PWM的极性可以通过PWM负极控制寄
存器(PWM_POLCTL)来设置。

使用特权

评论回复
14
xuanhuanzi|  楼主 | 2018-10-19 16:36 | 只看该作者
PWM中断发生器
每个PWM有三个独立中断。
第一个PWM 中断(PWM_INT) 来自PWM 互补组事件。计数器可以产生零点中断标志ZIFn
(PWM_INTSTS0[5:0])和周期点中断标志PIFn (PWM_INTSTS0[13:8])。当PWM通道n 计数器值等于存
在PWM_CMPDATn比较器值的时候,根据计数方向将触发不同的中断标志。如发生在向上计数则向上
中断标志CMPDIFn (PWM_INTSTS0[29:24])被置1,如果相反方向则向下计数中断标志CMPDIFn
(PWM_INTSTS0[29:24]) 被置1 。信道n 的互补信道m的比较器以同样的方法产生CMPUIFm 和
CMPDIFm中断。如果相应的中断使能位置1,事件触发将产生中断信号。
第二个中断是捕捉中断(CAP_INT) , 在NVIC 中与PWM_INT 共享中断入口。当CAPRIFn
(PWM_CAPIF[5:0])被触发并且捕捉上升沿中断使能位CAPRIENn (PWM_CAPIEN[5:0])置1可以产生
CAP_INT中断。或者在下降沿条件,当捕捉下降沿中断使能位CAPFIENn (PWM_CAPIEN[13:8])置1
CAPFIFn (PWM_CAPIF[13:8])可以被触发。
最后是刹车中断(BRK_INT),在PWM刹车部分有BRK_INT详细描述。

使用特权

评论回复
15
xuanhuanzi|  楼主 | 2018-10-19 16:43 | 只看该作者
捕捉操作
捕捉输入信道和PWM输出信道共享管脚和计数器。计数器可以是上或下计数方式。如果输入通道有上
升沿或下降沿跳变时捕捉功能将PWM 计数器值分别锁存到寄存器RCAPDATn
(PWM_RCAPDATn[15:0]) 和FCAPDATn (PWM_FCAPDATn[15:0])。如果上升沿或下降沿锁存发生并
且相应通道n的上升沿或下降沿中断使能位被设置,捕捉功能也将产生一个中断CAP_INT (使用
PWM_INT 向量) , CAPRIENn (PWM_CAPIEN[5:0]) 设置上升沿中断使能, CAPFIENn
(PWM_CAPIEN[13:8])设置下降沿中断使能。当上升沿或下降沿锁存发生,相应的PWM计数器是否将重
载PWM_PERIODn值,取决于设置RCRLDENn 或 FCRLDENn (RCRLDENn 和 FCRLDENn分别位于
PWM_CAPCTL[21:16] 和 PWM_CAPCTL[29:24])。注:相应的GPIO管脚必须通过使能CAPINENn
(PWM_CAPINEN[5:0])相应捕捉信道n来配置为捕捉功能

使用特权

评论回复
16
小灵通2018| | 2018-10-21 23:24 | 只看该作者
电机和照明经常用到。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

2225

帖子

3

粉丝