MCPWM原理简述

主旨:从应用角度理解是通过定时器功能实现。MCPWM需高级配置高级定时器实现输出。
一,定时器原理
1.1 LKS 基本定时器和ST 基本定时器
LKS 有4个括 4 个独立的Timer(时基),都有2个通道,可以独立配置运行计数,0/1为16bit(65535) 2/3为32bit。每个Timer可以用于输出特定周期占空比的比较波形,也可以捕获外部波形进行周期占空比的检测。时钟由MCLK分频得到,通过AHB总线访问进行读写寄存器进,功能框图如下:
image
LKS 工作模式:计数器,Timer 中的计数器采用递增方向计数。计数器从0计数到TH值,再回到0重新开始计数,计数器在t0/t1时刻产生回零中断。实际计数周期为 clk_freq*(TH+1)。
LKS 工作模式:比较输出,Timer计数器计数到 UTIMER_UNTx_CMP 值时,产生比较中断。比较模式可以驱动一个比较脉冲发生,在回零时,向 IO 口输出一个电平(极性可配置),在比较事件发生时,电平翻转,向IO口输出另一个电平。计数器回零时,仍然会产生回零中断。回零事件优先于比较事件,因此,两者同时发生时候(CMP==0),输出回零的值,而不会输出比较事件的值。
LKS 工作模式:捕获输入,可以使用Timer对应的IO通道来检测输入信号的上升/下降或者双沿,发生捕获事件(即输入信号电平变化)时,定时器计数值存入 UTIMER_UNTx_CMP 寄存器,并产生捕获中断。计数器回零时,仍然会产生回零中断。
LKS 工作模式:编码器,其中 Encoder0 的两个输入信号 T1/T2 分别来自 Timer2 Channel0/1 对应的GPIO输入;
Encoder1 的 T1/T2 信号分别来自 Timer3 Channel0/1 对应的 GPIO 输入。开启编码器功能时并不影响Timer功能的正常使用。在对应得编码寄存器中计数。
imageimageimage
寄存器开发,以T2为例。UTIMER_CFG使能相应时基, UTIMER_UNT2_CFG配置其计数模式,时钟分频,工作模式(比较/捕获),通道输出极性/捕获事件使能,UTIMER_UNT2_TH配置计数器门限值,UTIMER_IE使能相应事件(计数溢出,比较捕获事件),UTIMER_IF中断发生时检查挂起标志位(溢出,比较捕获事件)。
1.1.2 LKS MCPWM模块和ST 高级定时器
LKS MCPWM模块由一个16位递增计数器和四组(8路)PWM模块组成。可通过触发ADC模块实现同步采样。存在4路急停信号,两路来自芯片IO,两路来自片内比较器的输出。当急停事件发生时(支持有效电平极性选择),把所有 MCPWM 输出信号复位到规定状态,以避免短路发生。MCPWM 的每个输出 IO 支持两种控制模式:PWM 硬件控制或者软件直接控制。image
LKS MCPWM时基是由一个递增计数器组成,其计数门限值为MCPWM_TH,计数器从t0时刻开始从-TH 递增计数,在t1时刻过0点,在t2时刻计数到TH完成一次计数循环,回到-TH,重新开始计数。计数周期为(TH×2+1)×计数时钟周期。在t0/t1(本次t0即上一次 t2)可产生定时事件中断,MCPWM_IF.T0_IF和MCPWM_IF.T1_IF会被挂起。
LKS MCPWM的更新和Fail事件逻辑框图如下:
imageimage
LKS MCPWM中心对齐模式,4个MCPWM IO Driver采用独立的控制门限,独立死区宽度(每一对互补IO的死区需要独立配置,即4个死区配置寄存器),共享数据更新事件。采用TH0和TH1控制第个MCPWM IO的启动、关闭动作,n为1/2/3/4。当计数器CNT值向上计数达到TH0 时,在t3时刻关闭CHN,经过死区延时DTH0,打开 CHP。当计数器 CNT 值向上计数达到 TH1时,在t4时刻关闭CHP,经过死区延时DTH1,打开CHN。采用独立的启动和关闭时间控制,可以提供相位控制的能力。死区延时保证CHP/CHN 不会同时为高,避免短路发生。t3/t4 时刻均会产生相应中断。在IO Driver模块中增加CHP/CHN冲突检测,发生冲突时,自动将IO拉低,同时给出错误中断标志位挂起(中断保持,直到CPU写0)。
image
image
imageimage
寄存器开发:MCPWM_TCLK使能工作时钟,设置分频系数,设置滤波系数。MCPWM_IO配置四组PWM模块的工作模式,IO电平极性来源(软件或计数器),IO极性通道交换或取反。MCPWM_TH配置时基计数门限值。MCPWM_TH00/01配置CH_0P/CH0N比较门限值。MCPWM_CNT可读写时基计数值。MCPWM_DTH00配置PWM模块死区时间。MCPWM_SDCFG使能过零,溢出事件,错位事件挂起是否自动清零。MCPWM_IE使能过零,溢出中断源,CH_P/CH_N比较中断,ADC中断。MCPWM_IF过零,溢出,比较中断事件挂起标志。MCPWM_EIE使能Fail源事件,P和N短路事件。 MCPWM_EIF Fail源标志位挂起,P_N短路标志位挂起。 MCPWM_FAIL配置Fail事件的使能,来源(比较器/IO)和极性,MCPWM状态,Fial事件的IO默认输出极性。

二,结合代码实际应用

posted @ 2025-11-11 15:41  yangyiBL  阅读(5)  评论(0)    收藏  举报